mirror of
https://github.com/ganelson/inform.git
synced 2024-06-26 12:10:44 +03:00
Better imperative verbs and special meanings
This commit is contained in:
parent
c6766f6f95
commit
df4cfd0d84
|
@ -496,8 +496,8 @@ now absolutely any non-empty word range is accepted as the property name.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BUILTIN_VERBM:</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">MW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><verb-implies-sentence-object></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::sm_by_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">MW</span><span class="plain-syntax">)), &</span><span class="identifier-syntax">priority</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Wordings::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">MW</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">VerbMeanings::is_meaningless</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">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SpecialMeanings::find_from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">MW</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">smh</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">ifndef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pos</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::file_of_origin</span><span class="plain-syntax">(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">MW</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Extensions::corresponding_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">pos</span><span class="plain-syntax">);</span>
|
||||
|
@ -508,6 +508,9 @@ now absolutely any non-empty word range is accepted as the property name.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"and should be one of the ones used in the Preamble to the "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"Standard Rules."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::regular</span><span class="plain-syntax">(</span><span class="identifier-syntax">R_equality</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="identifier-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::special</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">priority</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SpecialMeanings::get_metadata_N</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -785,52 +788,52 @@ foreign verbs (4).
|
|||
<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::bootstrap</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">NewVerbs::bootstrap</span></span>:<br/>Nonstructural Sentences - <a href="7-ns.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="6-nv.html#SP14" class="function-link"><span class="function-syntax">NewVerbs::verb_means_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"verb-means"</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="6-nv.html#SP14" class="function-link"><span class="function-syntax">NewVerbs::verb_means_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"verb-means"</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="6-nv.html#SP12" class="function-link"><span class="function-syntax">NewVerbs::new_verb_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-verb"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="3-pd.html#SP2" class="function-link"><span class="function-syntax">Plurals::plural_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-plural"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-ac.html#SP4" class="function-link"><span class="function-syntax">Activities::new_activity_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-activity"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="6-nv.html#SP12" class="function-link"><span class="function-syntax">NewVerbs::new_verb_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-verb"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-pd.html#SP2" class="function-link"><span class="function-syntax">Plurals::plural_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-plural"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-ac.html#SP4" class="function-link"><span class="function-syntax">Activities::new_activity_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-activity"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Actions::new_action_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-action"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Actions::new_action_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-action"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="6-nv.html#SP22" class="function-link"><span class="function-syntax">NewVerbs::new_adjective_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-adjective"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="9-pd.html#SP2" class="function-link"><span class="function-syntax">Assertions::Property::either_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-either-or"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="19-tod.html#SP5" class="function-link"><span class="function-syntax">Tables::Defining::defined_by_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"defined-by-table"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-rps.html#SP4" class="function-link"><span class="function-syntax">Rules::Placement::listed_in_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-listed-in"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="6-nv.html#SP22" class="function-link"><span class="function-syntax">NewVerbs::new_adjective_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-adjective"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="9-pd.html#SP2" class="function-link"><span class="function-syntax">Assertions::Property::either_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-either-or"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="19-tod.html#SP5" class="function-link"><span class="function-syntax">Tables::Defining::defined_by_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"defined-by-table"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-rps.html#SP4" class="function-link"><span class="function-syntax">Rules::Placement::listed_in_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-listed-in"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">MULTIMEDIA_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Figures::new_figure_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-figure"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Sounds::new_sound_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-sound"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Files::new_file_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-file"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Figures::new_figure_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-figure"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Sounds::new_sound_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-sound"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Files::new_file_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-file"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::episode_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"episode"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::episode_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"episode"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="6-rlt.html#SP6" class="function-link"><span class="function-syntax">Relations::new_relation_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-relation"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="9-pd.html#SP3" class="function-link"><span class="function-syntax">Assertions::Property::optional_either_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-be"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="5-lp.html#SP31" class="function-link"><span class="function-syntax">LiteralPatterns::specifies_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"specifies-notation"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-rps.html#SP7" class="function-link"><span class="function-syntax">Rules::Placement::substitutes_for_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-substitutes-for"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="6-rlt.html#SP6" class="function-link"><span class="function-syntax">Relations::new_relation_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"new-relation"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="9-pd.html#SP3" class="function-link"><span class="function-syntax">Assertions::Property::optional_either_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-be"</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="5-lp.html#SP31" class="function-link"><span class="function-syntax">LiteralPatterns::specifies_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"specifies-notation"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-rps.html#SP7" class="function-link"><span class="function-syntax">Rules::Placement::substitutes_for_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-substitutes-for"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Scenes::begins_when_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-begins-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Scenes::ends_when_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-ends-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Scenes::begins_when_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-begins-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Scenes::ends_when_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-ends-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-rps.html#SP11" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-rps.html#SP12" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_if_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing-if"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="21-rps.html#SP13" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_unless_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing-unless"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_unicode_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-unicode"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_I6_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-i6"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_language_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-language"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="26-uo.html#SP5" class="function-link"><span class="function-syntax">UseOptions::use_translates_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use-translates"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-rps.html#SP11" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-rps.html#SP12" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_if_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing-if"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="21-rps.html#SP13" class="function-link"><span class="function-syntax">Rules::Placement::does_nothing_unless_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"rule-does-nothing-unless"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_unicode_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-unicode"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_I6_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-i6"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="7-ns.html#SP18" class="function-link"><span class="function-syntax">Sentences::VPs::translates_into_language_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"translates-into-language"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="26-uo.html#SP5" class="function-link"><span class="function-syntax">UseOptions::use_translates_as_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use-translates"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="26-ts.html#SP9" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::test_with_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"test-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Parsing::understand_as_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"understand-as"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="26-ts.html#SP9" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::test_with_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"test-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Parsing::understand_as_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"understand-as"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="26-uo.html#SP11" class="function-link"><span class="function-syntax">UseOptions::use_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="26-uo.html#SP11" class="function-link"><span class="function-syntax">UseOptions::use_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"use"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::Release::release_along_with_SMF</span><span class="plain-syntax">,</span><span class="identifier-syntax">I</span><span class="string-syntax">"release-along-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::EPSMap::index_map_with_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::Bibliographic::Release::release_along_with_SMF</span><span class="plain-syntax">,</span><span class="identifier-syntax">I</span><span class="string-syntax">"release-along-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">PL::EPSMap::index_map_with_SMF</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index-map-with"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::include_in_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"include-in"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::omit_from_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"omit-from"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::include_in_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"include-in"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::omit_from_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"omit-from"</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">infinitive</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PreformUtilities::wording</span><span class="plain-syntax">(</span><span class="function-syntax"><bootstrap-verb></span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Conjugation::conjugate</span><span class="plain-syntax">(</span><span class="identifier-syntax">infinitive</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>
|
||||
|
@ -844,7 +847,7 @@ foreign verbs (4).
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></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="identifier-syntax">VerbUsages::register_all_usages_of_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">3</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">Verbs::add_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">VerbMeanings::sm_by_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"verb-means"</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">), </span><span class="identifier-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Verbs::add_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">SpecialMeanings::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="string-syntax">"verb-means"</span><span class="plain-syntax">), </span><span class="identifier-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18"></a><b>§18. Runtime conjugation. </b></p>
|
||||
|
|
|
@ -193,14 +193,14 @@ in quick succession, the second run-through does nothing.)
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::within</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">), </span><span class="identifier-syntax">options_file_wording</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">soa</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::sm_of_verb_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">err</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><a href="26-uo.html#SP11" class="function-link"><span class="function-syntax">UseOptions::use_SMF</span></a><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><a href="26-ts.html#SP9" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::test_with_SMF</span></a><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::include_in_SMF</span></a><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::omit_from_SMF</span></a><span class="plain-syntax">)) </span><span class="identifier-syntax">err</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><a href="26-uo.html#SP11" class="function-link"><span class="function-syntax">UseOptions::use_SMF</span></a><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><a href="26-ts.html#SP9" class="function-link"><span class="function-syntax">PL::Parsing::TestScripts::test_with_SMF</span></a><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::include_in_SMF</span></a><span class="plain-syntax">)) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><a href="7-ns.html#SP11" class="function-link"><span class="function-syntax">Sentences::VPs::omit_from_SMF</span></a><span class="plain-syntax">))) </span><span class="identifier-syntax">err</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">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">IF_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PL::Bibliographic::Release::release_along_with_SMF</span><span class="plain-syntax">) </span><span class="identifier-syntax">err</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><span class="identifier-syntax">PL::Bibliographic::Release::release_along_with_SMF</span><span class="plain-syntax">)) </span><span class="identifier-syntax">err</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">err</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::unlocated_problem</span><span class="plain-syntax">(</span><a href="1-wtc.html#SP5" class="function-link"><span class="function-syntax">Task::syntax_tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">BelievedImpossible</span><span class="plain-syntax">), </span><span class="comment-syntax"> not usefully testable, anyway</span>
|
||||
|
|
|
@ -719,10 +719,8 @@ subject carried over from previous sentences.
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Assertions::Traverse::try_special_meaning</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Assertions::Traverse::try_special_meaning</span></span>:<br/>Construction Sequence - <a href="22-cs.html#SP9">§9</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">verb_id_ANNOT</span><span class="plain-syntax">) == </span><span class="constant-syntax">SPECIAL_MEANING_VB</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">soa</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::sm_of_verb_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> (*</span><span class="identifier-syntax">soa</span><span class="plain-syntax">)(</span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sm</span><span class="plain-syntax">) </span><span class="identifier-syntax">SpecialMeanings::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -206,8 +206,8 @@ optionally be marked "public" (they appear on any website about it) or
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">PL::Bibliographic::Release::visit_to_quote</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">PL::Bibliographic::Release::visit_to_quote</span></span>:<br/><a href="2-ri.html#SP14_2_10">§14.2.10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Node::get_type</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">) == </span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">soa</span><span class="plain-syntax"> = </span><span class="identifier-syntax">VerbMeanings::sm_of_verb_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">soa</span><span class="plain-syntax"> == </span><a href="2-ri.html#SP7" class="function-link"><span class="function-syntax">PL::Bibliographic::Release::release_along_with_SMF</span></a><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><a href="2-ri.html#SP7" class="function-link"><span class="function-syntax">PL::Bibliographic::Release::release_along_with_SMF</span></a><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link_to</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)), </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"status instruction ||"</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -193,7 +193,7 @@ is used by <a href="../linguistics-test/index.html" class="internal">linguistics
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {existential}"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {special meaning: %S}"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)-></span><span class="element-syntax">sm_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-sm.html#SP7" class="function-link"><span class="function-syntax">SpecialMeanings::get_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">verbal_certainty_ANNOT</span><span class="plain-syntax">) != </span><span class="constant-syntax">UNKNOWN_CE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {certainty:"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-aoc.html#SP3" class="function-link"><span class="function-syntax">Certainty::write</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">, </span><span class="constant-syntax">verbal_certainty_ANNOT</span><span class="plain-syntax">));</span>
|
||||
|
|
|
@ -153,7 +153,7 @@ which use this module:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_logger</span><span class="plain-syntax">(</span><span class="character-syntax">'t'</span><span class="plain-syntax">, </span><a href="3-apoo.html#SP4" class="function-link"><span class="function-syntax">Occurrence::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_logger</span><span class="plain-syntax">(</span><span class="character-syntax">'p'</span><span class="plain-syntax">, </span><a href="3-prp.html#SP5" class="function-link"><span class="function-syntax">Prepositions::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_logger</span><span class="plain-syntax">(</span><span class="character-syntax">'w'</span><span class="plain-syntax">, </span><a href="3-vrb.html#SP4" class="function-link"><span class="function-syntax">Verbs::log_verb</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_logger</span><span class="plain-syntax">(</span><span class="character-syntax">'y'</span><span class="plain-syntax">, </span><a href="3-vm.html#SP13" class="function-link"><span class="function-syntax">VerbMeanings::log</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Writers::register_logger</span><span class="plain-syntax">(</span><span class="character-syntax">'y'</span><span class="plain-syntax">, </span><a href="3-vm.html#SP12" class="function-link"><span class="function-syntax">VerbMeanings::log</span></a><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-lm.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_3"></a><b>§3.3. </b>Not all of our memory will be claimed in the form of structures: now and then
|
||||
|
|
|
@ -136,7 +136,7 @@ the case and what has been the case in the past.
|
|||
</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>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">aoc</li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-apoo.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-prp.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresscurrent">aoc</li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-apoo.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -285,7 +285,7 @@ cannot contain any HR; this cuts down our parsing time considerably.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-aoc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresscurrent">apoo</li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="4-np.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-aoc.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresscurrent">apoo</li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="4-np.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -217,7 +217,7 @@ So it will find the longest match.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><span class="Preform-identifier-syntax">Vocabulary::test_flags</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">), </span><span class="Preform-constant-syntax">PREPOSITION_MC</span><span class="Preform-plain-syntax">) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">) </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">for</span><span class="Preform-plain-syntax"> (</span><span class="Preform-reserved-syntax">verb_form</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">copular_verb</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">first_form</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">=</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">next_form</span><span class="Preform-plain-syntax">) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">preposition</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">preposition</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">) && (</span><a href="3-vm.html#SP5" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">)) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">) && (</span><a href="3-vm.html#SP4" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">)) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">int</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"> = </span><a href="3-prp.html#SP8" class="function-link"><span class="Preform-function-syntax">Prepositions::parse_prep_against</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">></span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)) && (</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"><=</span><span class="Preform-identifier-syntax">Wordings::last_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)+1)) {</span>
|
||||
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">;</span>
|
||||
|
@ -239,7 +239,7 @@ with a given "permitted verb".
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (</span><span class="Preform-identifier-syntax">permitted_verb</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">verb_form</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">permitted_verb</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">first_form</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">=</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">next_form</span><span class="Preform-plain-syntax">) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">preposition</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">preposition</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">) && (</span><a href="3-vm.html#SP5" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">)) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">) && (</span><a href="3-vm.html#SP4" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">)) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">int</span><span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"> = </span><a href="3-prp.html#SP8" class="function-link"><span class="Preform-function-syntax">Prepositions::parse_prep_against</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">></span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)) && (</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"><=</span><span class="Preform-identifier-syntax">Wordings::last_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)+1)) {</span>
|
||||
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">prep</span><span class="Preform-plain-syntax">;</span>
|
||||
|
@ -272,7 +272,7 @@ with a given "permitted verb".
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vu.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-aoc.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vu.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresscurrent">prp</li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-aoc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
210
docs/linguistics-module/3-sm.html
Normal file
210
docs/linguistics-module/3-sm.html
Normal file
|
@ -0,0 +1,210 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Special Meanings</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="../index-module/index.html">index</a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">linguistics</span></a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Special Meanings' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#3">Chapter 3: VP Categories</a></li><li><b>Special Meanings</b></li></ul></div>
|
||||
<p class="purpose">To abstract non-standard, perhaps non-SVO, meanings of a verb.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-sm.html#SP1">§1. Special meaning functions</a></li><li><a href="3-sm.html#SP3">§3. Special meaning holders</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. Special meaning functions. </b>Regular meanings of verbs are represented by <span class="extract"><span class="extract-syntax">VERB_MEANING_LINGUISTICS_TYPE</span></span>
|
||||
pointers — see <a href="3-vm.html" class="internal">Verb Meanings</a>. In Inform, those are binary predicates.
|
||||
They always take two terms.
|
||||
</p>
|
||||
|
||||
<p class="commentary">However, Inform sometimes wants sentences which are written in non-standard
|
||||
ways, with anything from one to three terms, and which don't correspond to
|
||||
any of the relations. (For example, "Include Locksmith by Emily Short".)
|
||||
</p>
|
||||
|
||||
<p class="commentary">These are represented by functions to perform the necessary business; the
|
||||
type <span class="extract"><span class="extract-syntax">special_meaning_fn</span></span> gives the type of such a function.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *);</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b>This is a convenient generic special-meaning function; it simply accumulates
|
||||
non-empty SPs and OPs as unparsed noun phrases and accepts them.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The first parameter is the task to be performed on the verb node pointed
|
||||
to by the second. The task number must belong to the <span class="extract"><span class="extract-syntax">*_SMFT</span></span> enumeration,
|
||||
and the only task used by the Linguistics module is <span class="extract"><span class="extract-syntax">ACCEPT_SMFT</span></span>. This should
|
||||
look at the array of wordings and either accept this as a valid usage, build
|
||||
a subtree from the verb node, and return <span class="extract"><span class="extract-syntax">TRUE</span></span>, or else return <span class="extract"><span class="extract-syntax">FALSE</span></span> to
|
||||
say that the usage is invalid: see Verb Phrases for more.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The user is then free to define further SMF tasks, and Inform does so.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACCEPT_SMFT</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpecialMeanings::generic_smf</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">SpecialMeanings::generic_smf</span></span>:<br/><a href="3-sm.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">ACCEPT_SMFT:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><3; </span><span class="identifier-syntax">i</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">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-unparsed></span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">; </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="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="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. Special meaning holders. </b>Although a SM is basically encapsulated by a function, it's convenient to
|
||||
have some metadata with it too:
|
||||
</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</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">sm_func</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *); </span><span class="comment-syntax"> (compiler doesn't like typedef here)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm_name</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">metadata_N</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure special_meaning_holder is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">func</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</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">func</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">func</span><span class="plain-syntax"> = </span><a href="3-sm.html#SP2" class="function-link"><span class="function-syntax">SpecialMeanings::generic_smf</span></a><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax"> = </span><span class="identifier-syntax">func</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">metadata_N</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>SMHs can be found by name:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">SpecialMeanings::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">, </span><span class="reserved-syntax">special_meaning_holder</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">SpecialMeanings::find_from_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">, </span><span class="reserved-syntax">special_meaning_holder</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">Str::eq_insensitive</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</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">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>Metadata access:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpecialMeanings::get_metadata_N</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</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">smh</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</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">smh</span><span class="plain-syntax">-></span><span class="element-syntax">metadata_N</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">SpecialMeanings::get_name</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">SpecialMeanings::get_name</span></span>:<br/>Diagrams - <a href="1-dgr.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</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">smh</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpecialMeanings::is</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax">, </span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">func</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">smh</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax"> == </span><span class="identifier-syntax">func</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>Calling:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">SpecialMeanings::call</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">SpecialMeanings::call</span></span>:<br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</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">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</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">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax">))(</span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresscurrent">sm</li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-vu.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -66,7 +66,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Services</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#3">Chapter 3: VP Categories</a></li><li><b>Verb Meanings</b></li></ul></div>
|
||||
<p class="purpose">To abstract the meaning of a verb.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-vm.html#SP1">§1. What we abstract</a></li><li><a href="3-vm.html#SP4">§4. How this module stores verb meanings</a></li><li><a href="3-vm.html#SP10">§10. Recording where assigned</a></li><li><a href="3-vm.html#SP11">§11. The regular meaning</a></li><li><a href="3-vm.html#SP12">§12. The special meaning</a></li><li><a href="3-vm.html#SP13">§13. Logging</a></li><li><a href="3-vm.html#SP14">§14. Special, second go</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-vm.html#SP1">§1. What we abstract</a></li><li><a href="3-vm.html#SP3">§3. How this module stores verb meanings</a></li><li><a href="3-vm.html#SP9">§9. Recording where assigned</a></li><li><a href="3-vm.html#SP10">§10. The regular meaning</a></li><li><a href="3-vm.html#SP11">§11. The special meaning</a></li><li><a href="3-vm.html#SP12">§12. Logging</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1"></a><b>§1. What we abstract. </b>Because this module is concerned with the structure of sentences and not
|
||||
their meanings, we don't really want to get into what verbs "mean". Instead,
|
||||
|
@ -88,7 +88,7 @@ to ask for a reversal to be performed when needed.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP11">§11</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::reverse_VMT</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::reverse_VMT</span></span>:<br/><a href="3-vm.html#SP10">§10</a><br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a><br/>Verb Phrases - <a href="4-vp.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">recto</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VERB_MEANING_REVERSAL_LINGUISTICS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">recto</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
@ -97,24 +97,7 @@ to ask for a reversal to be performed when needed.
|
|||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. </b>We will, however, allow for a little more complication, in that the code
|
||||
using this module can instead provide a function of the following type.
|
||||
</p>
|
||||
|
||||
<p class="commentary">The first parameter is the task to be performed on the verb node pointed
|
||||
to by the second. The task number must belong to the <span class="extract"><span class="extract-syntax">*_SMFT</span></span> enumeration,
|
||||
and the only task used by the Linguistics module is <span class="extract"><span class="extract-syntax">ACCEPT_SMFT</span></span>. This should
|
||||
look at the array of wordings and either accept this as a valid usage, build
|
||||
a subtree from the verb node, and return <span class="extract"><span class="extract-syntax">TRUE</span></span>, or else return <span class="extract"><span class="extract-syntax">FALSE</span></span> to
|
||||
say that the usage is invalid: see Verb Phrases for more.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">ACCEPT_SMFT</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *);</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. How this module stores verb meanings. </b>We can now define an object to wrap up this abstracted idea of verb meaning:
|
||||
<p class="commentary firstcommentary"><a id="SP3"></a><b>§3. How this module stores verb meanings. </b>We can now define an object to wrap up this abstracted idea of verb meaning:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -127,12 +110,12 @@ say that the usage is invalid: see Verb Phrases for more.
|
|||
<span class="plain-syntax">} </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure verb_meaning is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>All VMs begin as meaningless, which indicates (e.g.) that no meaning
|
||||
<p class="commentary firstcommentary"><a id="SP4"></a><b>§4. </b>All VMs begin as meaningless, which indicates (e.g.) that no meaning
|
||||
has been specified.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::meaninglessness</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">VerbMeanings::meaninglessness</span></span>:<br/><a href="3-vm.html#SP6">§6</a>, <a href="3-vm.html#SP7">§7</a>, <a href="3-vm.html#SP15">§15</a><br/>Verbs - <a href="3-vrb.html#SP3_1">§3.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::meaninglessness</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">VerbMeanings::meaninglessness</span></span>:<br/><a href="3-vm.html#SP5">§5</a>, <a href="3-vm.html#SP6">§6</a><br/>Verbs - <a href="3-vrb.html#SP3_1">§3.1</a><br/>Special Meanings - <a href="3-sm.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">regular_meaning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">special_meaning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -143,30 +126,30 @@ has been specified.
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::is_meaningless</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::is_meaningless</span></span>:<br/>Verbs - <a href="3-vrb.html#SP12">§12</a>, <a href="3-vrb.html#SP12_2">§12.2</a><br/>Verb Usages - <a href="3-vu.html#SP15">§15</a><br/>Prepositions - <a href="3-prp.html#SP10">§10</a>, <a href="3-prp.html#SP11">§11</a><br/>Verb Phrases - <a href="4-vp.html#SP5_4_1_1_1">§5.4.1.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP7" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">regular_meaning</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">special_meaning</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>In practice, we create VMs here. Note that regular and special meanings are
|
||||
<p class="commentary firstcommentary"><a id="SP5"></a><b>§5. </b>In practice, we create VMs here. Note that regular and special meanings are
|
||||
alternatives to each other: you can't have both.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::regular</span><span class="plain-syntax">(</span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">regular_meaning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rel</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::special</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::special</span></span>:<br/><a href="3-vm.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::special</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::special</span></span>:<br/>Special Meanings - <a href="3-sm.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">special_meaning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>You can, however, have neither one, if you instead choose to "indirect" the
|
||||
<p class="commentary firstcommentary"><a id="SP6"></a><b>§6. </b>You can, however, have neither one, if you instead choose to "indirect" the
|
||||
meaning — this means saying "the same meaning as the regular sense of the base
|
||||
form of a given verb", possibly reversed. Note that
|
||||
</p>
|
||||
|
@ -184,39 +167,39 @@ usages "is liking" and "is liked by" automatically change with it.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::indirected</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">VerbMeanings::indirected</span></span>:<br/>Verb Usages - <a href="3-vu.html#SP6_1">§6.1</a>, <a href="3-vu.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">reversed</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">reversed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">.</span><span class="element-syntax">take_meaning_from</span><span class="plain-syntax"> = </span><span class="identifier-syntax">from</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>So the following function only needs to be used once.
|
||||
<p class="commentary firstcommentary"><a id="SP7"></a><b>§7. </b>So the following function only needs to be used once.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::follow_indirection</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::follow_indirection</span></span>:<br/><a href="3-vm.html#SP5">§5</a>, <a href="3-vm.html#SP11">§11</a>, <a href="3-vm.html#SP12">§12</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::follow_indirection</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::follow_indirection</span></span>:<br/><a href="3-vm.html#SP4">§4</a>, <a href="3-vm.html#SP10">§10</a>, <a href="3-vm.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_from</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP9" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP11" class="function-link"><span class="function-syntax">Verbs::base_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_from</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. </b>The following function may seem curious — what's so great about the first
|
||||
<p class="commentary firstcommentary"><a id="SP8"></a><b>§8. </b>The following function may seem curious — what's so great about the first
|
||||
regular sense of a verb? The answer is that Inform generally gives a verb at
|
||||
most one regular sense.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></span>:<br/><a href="3-vm.html#SP8">§8</a>, <a href="3-vm.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></span>:<br/><a href="3-vm.html#SP7">§7</a>, <a href="3-vm.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_sense</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">list_of_senses</span><span class="plain-syntax">; </span><span class="identifier-syntax">vs</span><span class="plain-syntax">; </span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">next_sense</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP12" class="function-link"><span class="function-syntax">VerbMeanings::get_special_meaning_fn</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_special_meaning</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">)) == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-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="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. Recording where assigned. </b>This helps Inform with correctly locating problem messages.
|
||||
<p class="commentary firstcommentary"><a id="SP9"></a><b>§9. Recording where assigned. </b>This helps Inform with correctly locating problem messages.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -230,15 +213,15 @@ most one regular sense.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"assigned location to null meaning"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. The regular meaning. </b>This is not as simple as returning the <span class="extract"><span class="extract-syntax">regular_meaning</span></span> field, because we
|
||||
<p class="commentary firstcommentary"><a id="SP10"></a><b>§10. The regular meaning. </b>This is not as simple as returning the <span class="extract"><span class="extract-syntax">regular_meaning</span></span> field, because we
|
||||
have to follow any indirection, and reverse if necessary.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_regular_meaning</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></span>:<br/><a href="3-vm.html#SP13">§13</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a>, <a href="4-vp.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_regular_meaning</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></span>:<br/><a href="3-vm.html#SP12">§12</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a>, <a href="4-vp.html#SP7_1">§7.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP7" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rel</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">regular_meaning</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">rev</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP2" class="function-link"><span class="function-syntax">VerbMeanings::reverse_VMT</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">);</span>
|
||||
|
@ -246,19 +229,19 @@ have to follow any indirection, and reverse if necessary.
|
|||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></span>:<br/>Verb Usages - <a href="3-vu.html#SP12">§12</a><br/>Noun Phrases - <a href="4-np.html#SP15_1">§15.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP9" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::first_unspecial_meaning_of_verb_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. The special meaning. </b>This is also not as simple as returning the <span class="extract"><span class="extract-syntax">regular_meaning</span></span> field, because
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. The special meaning. </b>This is also not as simple as returning the <span class="extract"><span class="extract-syntax">regular_meaning</span></span> field, because
|
||||
again we have to follow any indirection. Since we have no good way to modify
|
||||
a special meaning function, we have to provide a function to tell the user
|
||||
whether to reverse what that function does.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_special_meaning_fn</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_special_meaning_fn</span></span>:<br/><a href="3-vm.html#SP9">§9</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP8" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::get_special_meaning</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::get_special_meaning</span></span>:<br/><a href="3-vm.html#SP8">§8</a><br/>Verb Phrases - <a href="4-vp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP7" class="function-link"><span class="function-syntax">VerbMeanings::follow_indirection</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">special_meaning</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -268,7 +251,7 @@ whether to reverse what that function does.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. Logging. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. Logging. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::log</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">VerbMeanings::log</span></span>:<br/>Linguistics Module - <a href="1-lm.html#SP3_2">§3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">void</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vvm</span><span class="plain-syntax">) {</span>
|
||||
|
@ -276,7 +259,7 @@ whether to reverse what that function does.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) { </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<none>"</span><span class="plain-syntax">); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_reversed</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"reversed-"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_from</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<$w>="</span><span class="plain-syntax">, </span><span class="identifier-syntax">vm</span><span class="plain-syntax">-></span><span class="element-syntax">take_meaning_from</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">m</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">m</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">m</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(%S)"</span><span class="plain-syntax">, </span><span class="identifier-syntax">m</span><span class="plain-syntax">-></span><span class="identifier-syntax">debugging_log_name</span><span class="plain-syntax">);</span>
|
||||
|
@ -287,45 +270,8 @@ whether to reverse what that function does.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(meaningless)"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. Special, second go. </b></p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</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">sm_func</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *); </span><span class="comment-syntax"> (for tangling reasons, can't use typedef here)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm_name</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">verb_priority</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbMeanings::declare_sm</span><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> (*</span><span class="identifier-syntax">func</span><span class="plain-syntax">)(</span><span class="reserved-syntax">int</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *), </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax"> = </span><span class="identifier-syntax">func</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">verb_priority</span><span class="plain-syntax"> = </span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::sm_by_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">smh</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">, </span><span class="reserved-syntax">special_meaning_holder</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">sm_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">p</span><span class="plain-syntax">) *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">smh</span><span class="plain-syntax">-></span><span class="element-syntax">verb_priority</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">smh</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">special_meaning_fn</span><span class="plain-syntax"> </span><span class="function-syntax">VerbMeanings::sm_of_verb_node</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">pn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sm</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">sm</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure special_meaning_holder is accessed in 1/dgr, 4/vp and here.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresscurrent">vm</li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-vu.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vrb.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresscurrent">vm</li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-sm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -150,7 +150,7 @@ instead of a word: for example, the <span class="extract"><span class="extract-s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::meaninglessness</span></a><span class="plain-syntax">(), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vrb.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2"></a><b>§3.2. </b>Note that the first verb submitted with the copular flag set is considered
|
||||
|
@ -293,7 +293,7 @@ of verb and two prepositions:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::base_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Verbs::base_form</span></span>:<br/>Verb Meanings - <a href="3-vm.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="function-syntax">Verbs::base_form</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Verbs::base_form</span></span>:<br/>Verb Meanings - <a href="3-vm.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">first_form</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">next_form</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">second_clause_preposition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
|
@ -315,11 +315,11 @@ of verb and two prepositions:
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Verbs::add_form</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Verbs::add_form</span></span>:<br/><a href="3-vrb.html#SP3_1">§3.1</a>, <a href="3-vrb.html#SP5">§5</a><br/>Verb Usages - <a href="3-vu.html#SP6_1">§6.1</a>, <a href="3-vu.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">form_structs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</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><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</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">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">VERB_FORMS</span><span class="plain-syntax">, </span><span class="string-syntax">" Adding form: $w + $p + $p = $y\n"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">, &</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::set_where_assigned</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP9" class="function-link"><span class="function-syntax">VerbMeanings::set_where_assigned</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</span><span class="plain-syntax">, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">V</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"added form to null verb"</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
@ -328,7 +328,7 @@ of verb and two prepositions:
|
|||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">form_structures</span><span class="plain-syntax"> = ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">form_structures</span><span class="plain-syntax">) | </span><span class="identifier-syntax">form_structs</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">list_of_senses</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">list_of_senses</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-vrb.html#SP12_2" class="named-paragraph-link"><span class="named-paragraph">Add this meaning as a new sense of the verb form</span><span class="named-paragraph-number">12.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -433,7 +433,7 @@ we overwrite that with the new (presumably meaningful) one.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_sense</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">list_of_senses</span><span class="plain-syntax">, *</span><span class="identifier-syntax">prev</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">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">))) { </span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vm</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">))) { </span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vm</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prev</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vs</span><span class="plain-syntax">; </span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">next_sense</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vs</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) {</span>
|
||||
|
@ -446,7 +446,7 @@ we overwrite that with the new (presumably meaningful) one.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vrb.html#SP12">§12</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-prn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-vm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-prn.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">vrb</li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresssection"><a href="3-vu.html">vu</a></li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-vm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -273,7 +273,7 @@ an unfortunate mock-Indian sound to it.
|
|||
<span class="plain-syntax"> </span><a href="3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="identifier-syntax">present_participle</span><span class="plain-syntax">, </span><span class="identifier-syntax">unexpected_upper_casing_used</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">where</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP7" class="function-link"><span class="function-syntax">VerbMeanings::indirected</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::indirected</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-vu.html#SP6">§6</a>.</li></ul>
|
||||
|
@ -293,7 +293,7 @@ of "to be", which is convenient however dubious in linguistic terms.
|
|||
<span class="plain-syntax"> </span><a href="3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vt</span><span class="plain-syntax">-></span><span class="identifier-syntax">to_be_auxiliary</span><span class="plain-syntax">, </span><span class="identifier-syntax">unexpected_upper_casing_used</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">where</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP7" class="function-link"><span class="function-syntax">VerbMeanings::indirected</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, (</span><span class="identifier-syntax">mood</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PASSIVE_MOOD</span><span class="plain-syntax">)?</span><span class="identifier-syntax">TRUE:FALSE</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::indirected</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, (</span><span class="identifier-syntax">mood</span><span class="plain-syntax"> == </span><span class="identifier-syntax">PASSIVE_MOOD</span><span class="plain-syntax">)?</span><span class="identifier-syntax">TRUE:FALSE</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -523,7 +523,7 @@ list, with lower priority numbers before higher ones.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="function-syntax">VerbUsages::get_regular_meaning</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">VerbUsages::get_regular_meaning</span></span>:<br/><a href="3-vu.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">verb_usage</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vu</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></a><span class="plain-syntax">(</span><a href="3-vrb.html#SP11" class="function-link"><span class="function-syntax">Verbs::find_form</span></a><span class="plain-syntax">(</span><a href="3-vu.html#SP12" class="function-link"><span class="function-syntax">VerbUsages::get_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">), </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">root</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></a><span class="plain-syntax">(</span><a href="3-vrb.html#SP11" class="function-link"><span class="function-syntax">Verbs::find_form</span></a><span class="plain-syntax">(</span><a href="3-vu.html#SP12" class="function-link"><span class="function-syntax">VerbUsages::get_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">), </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">second_prep</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">root</span><span class="plain-syntax">) && (</span><a href="3-vu.html#SP12" class="function-link"><span class="function-syntax">VerbUsages::get_mood</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span class="plain-syntax">) == </span><span class="identifier-syntax">PASSIVE_MOOD</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">root</span><span class="plain-syntax"> != </span><span class="identifier-syntax">VERB_MEANING_EQUALITY</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">root</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP2" class="function-link"><span class="function-syntax">VerbMeanings::reverse_VMT</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">root</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">root</span><span class="plain-syntax">;</span>
|
||||
|
@ -606,7 +606,7 @@ which has a meaning.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-identifier-syntax">LOOP_OVER_USAGES</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">vu</span><span class="Preform-plain-syntax">) {</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">verb</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">vi</span><span class="Preform-plain-syntax"> = </span><a href="3-vu.html#SP12" class="function-link"><span class="Preform-function-syntax">VerbUsages::get_verb</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">vu</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">verb_form</span><span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">vi</span><span class="Preform-plain-syntax">-></span><span class="Preform-identifier-syntax">first_form</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">; </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax"> = </span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">next_form</span><span class="Preform-plain-syntax">)</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><a href="3-vm.html#SP5" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">) &&</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><a href="3-vm.html#SP4" class="function-link"><span class="Preform-function-syntax">VerbMeanings::is_meaningless</span></a><span class="Preform-plain-syntax">(&(</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">list_of_senses</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">vm</span><span class="Preform-plain-syntax">)) == </span><span class="Preform-identifier-syntax">FALSE</span><span class="Preform-plain-syntax">) &&</span>
|
||||
<span class="Preform-plain-syntax"> (</span><span class="Preform-identifier-syntax">vf</span><span class="Preform-plain-syntax">-></span><span class="Preform-element-syntax">form_structures</span><span class="Preform-plain-syntax"> & (</span><span class="Preform-constant-syntax">SVO_FS_BIT</span><span class="Preform-plain-syntax"> + </span><span class="Preform-constant-syntax">SVOO_FS_BIT</span><span class="Preform-plain-syntax">))) {</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"> = </span><a href="3-vu.html#SP13" class="function-link"><span class="Preform-function-syntax">VerbUsages::parse_against_verb</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">, </span><span class="Preform-identifier-syntax">vu</span><span class="Preform-plain-syntax">);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> ((</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax">></span><span class="Preform-identifier-syntax">Wordings::first_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">)) && (</span><span class="Preform-identifier-syntax">i</span><span class="Preform-plain-syntax"><=</span><span class="Preform-identifier-syntax">Wordings::last_wn</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">))) {</span>
|
||||
|
@ -868,7 +868,7 @@ or "the verb to be able to see" use these.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-vm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresscurrent">vu</li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-prp.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-sm.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-lm.html">1</a></li><li class="progresschapter"><a href="2-adj.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-vrb.html">vrb</a></li><li class="progresssection"><a href="3-vm.html">vm</a></li><li class="progresssection"><a href="3-sm.html">sm</a></li><li class="progresscurrent">vu</li><li class="progresssection"><a href="3-prp.html">prp</a></li><li class="progresssection"><a href="3-aoc.html">aoc</a></li><li class="progresssection"><a href="3-apoo.html">apoo</a></li><li class="progresschapter"><a href="4-np.html">4</a></li><li class="progressnext"><a href="3-prp.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -363,7 +363,7 @@ directions, in particular, a little better. But it means we do not recognise
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning_of_form</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="3-vrb.html#SP11" class="function-link"><span class="function-syntax">Verbs::find_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">permitted_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">XP</span><span class="plain-syntax"> = </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_RELATIONSHIP</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><a href="3-vm.html#SP2" class="function-link"><span class="function-syntax">VerbMeanings::reverse_VMT</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">), </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2]);</span>
|
||||
|
|
|
@ -501,7 +501,7 @@ is handled in Inform.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">certainty</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNKNOWN_CE</span><span class="plain-syntax">, </span><span class="identifier-syntax">pre_certainty</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNKNOWN_CE</span><span class="plain-syntax">, </span><span class="identifier-syntax">post_certainty</span><span class="plain-syntax"> = </span><span class="constant-syntax">UNKNOWN_CE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_form</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vi</span><span class="plain-syntax">-></span><span class="element-syntax">first_form</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax">; </span><span class="identifier-syntax">vf</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">next_form</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">list_of_senses</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</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><a href="3-vm.html#SP4" class="function-link"><span class="function-syntax">VerbMeanings::is_meaningless</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><a href="3-vu.html#SP13" class="function-link"><span class="function-syntax">VerbUsages::parse_against_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">, </span><span class="identifier-syntax">vu</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (!((</span><span class="identifier-syntax">i</span><span class="plain-syntax">></span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">i</span><span class="plain-syntax"><=</span><span class="identifier-syntax">Wordings::last_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">TW</span><span class="plain-syntax">)))) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -530,11 +530,12 @@ flash cards".
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">form_structures</span><span class="plain-syntax"> & (</span><span class="constant-syntax">VO_FS_BIT</span><span class="plain-syntax"> + </span><span class="constant-syntax">VOO_FS_BIT</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">pos</span><span class="plain-syntax"> > </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="reserved-syntax">break</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">vf</span><span class="plain-syntax">-></span><span class="element-syntax">form_structures</span><span class="plain-syntax"> & (</span><span class="constant-syntax">VO_FS_BIT</span><span class="plain-syntax"> + </span><span class="constant-syntax">VOO_FS_BIT</span><span class="plain-syntax">)) == </span><span class="constant-syntax">0</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">pos</span><span class="plain-syntax"> == </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="element-syntax">form_structures</span><span class="plain-syntax"> & (</span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax"> + </span><span class="constant-syntax">SVOO_FS_BIT</span><span class="plain-syntax">)) == </span><span class="constant-syntax">0</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">pos</span><span class="plain-syntax"> > </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-vp.html#SP5_4_1_1_1">§5.4.1.1.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5_4_1_1_1_2"></a><b>§5.4.1.1.1.2. </b>So now we know that the verb definitely appears. We form <span class="extract"><span class="extract-syntax">ISW</span></span> as the
|
||||
|
@ -766,21 +767,23 @@ if there is one.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_meaning</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">verb_sense</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">vf</span><span class="plain-syntax">)?</span><span class="identifier-syntax">vf</span><span class="plain-syntax">-></span><span class="identifier-syntax">list_of_senses:NULL</span><span class="plain-syntax">; </span><span class="identifier-syntax">vs</span><span class="plain-syntax">; </span><span class="identifier-syntax">vs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">next_sense</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vm</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">vs</span><span class="plain-syntax">-></span><span class="element-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP12" class="function-link"><span class="function-syntax">VerbMeanings::get_special_meaning_fn</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sm</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_special_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sm</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">SNPs</span><span class="plain-syntax">[</span><span class="constant-syntax">MAX_NPS_IN_VP</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP12" class="function-link"><span class="function-syntax">VerbMeanings::get_reversal_status_of_smf</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_reversal_status_of_smf</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1]; </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[0]; </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[2] = </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[0] = </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[0]; </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[1] = </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1]; </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">[2] = </span><span class="identifier-syntax">NPs</span><span class="plain-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">sm</span><span class="plain-syntax">-></span><span class="element-syntax">sm_func</span><span class="plain-syntax">))(</span><span class="constant-syntax">ACCEPT_SMFT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sm.html#SP8" class="function-link"><span class="function-syntax">SpecialMeanings::call</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sm</span><span class="plain-syntax">, </span><span class="constant-syntax">ACCEPT_SMFT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">SNPs</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_special_meaning</span><span class="plain-syntax">(</span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">sm</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">VP_PN</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[0])) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1])) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[2])) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-vp.html#SP7" class="function-link"><span class="function-syntax">VerbPhrases::default_verb</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACCEPT_SMFT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">vm</span><span class="plain-syntax">, </span><span class="identifier-syntax">NPs</span><span class="plain-syntax">))) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">VP_PN</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -832,7 +835,7 @@ point of view, it is being worn.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP11" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">VERB_MEANING_LINGUISTICS_TYPE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> = </span><a href="3-vm.html#SP10" class="function-link"><span class="function-syntax">VerbMeanings::get_regular_meaning</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vm</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">meaning</span><span class="plain-syntax"> != </span><span class="identifier-syntax">VERB_MEANING_EQUALITY</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><a href="1-dgr.html#SP7" class="function-link"><span class="function-syntax">Diagrams::new_RELATIONSHIP</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">), </span><a href="3-vm.html#SP2" class="function-link"><span class="function-syntax">VerbMeanings::reverse_VMT</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">meaning</span><span class="plain-syntax">), </span><span class="identifier-syntax">O_PN</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -147,19 +147,6 @@ very limited stock of nouns, verbs and prepositions as follows:
|
|||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">IS = relationship.</span>
|
||||
<span class="plain-syntax">HAS = relationship.</span>
|
||||
<span class="plain-syntax">CARRIES = relationship.</span>
|
||||
<span class="plain-syntax">KNOWS = relationship.</span>
|
||||
|
||||
<span class="plain-syntax">be = verb meaning IS with priority 2.</span>
|
||||
<span class="plain-syntax">have = verb meaning HAS with priority 1.</span>
|
||||
<span class="plain-syntax">carry = verb meaning CARRIES with priority 3.</span>
|
||||
<span class="plain-syntax">know = verb meaning KNOWS with priority 3.</span>
|
||||
|
||||
<span class="plain-syntax">be + on = preposition meaning CARRIES-reversed.</span>
|
||||
<span class="plain-syntax">be + under = preposition meaning CARRIES.</span>
|
||||
|
||||
<span class="plain-syntax">Anna = feminine proper noun.</span>
|
||||
<span class="plain-syntax">Beth = feminine proper noun.</span>
|
||||
<span class="plain-syntax">Charles = masculine proper noun.</span>
|
||||
|
@ -170,6 +157,31 @@ very limited stock of nouns, verbs and prepositions as follows:
|
|||
<span class="plain-syntax">sailor = masculine common noun.</span>
|
||||
<span class="plain-syntax">table = neuter common noun.</span>
|
||||
<span class="plain-syntax">Ming vase = neuter common noun.</span>
|
||||
|
||||
<span class="plain-syntax">IS = relationship.</span>
|
||||
<span class="plain-syntax">HAS = relationship.</span>
|
||||
<span class="plain-syntax">CARRIES = relationship.</span>
|
||||
<span class="plain-syntax">KNOWS = relationship.</span>
|
||||
<span class="plain-syntax">COMBINES = special meaning.</span>
|
||||
<span class="plain-syntax">COMBINESUP = special meaning.</span>
|
||||
<span class="plain-syntax">GREETS = special meaning.</span>
|
||||
|
||||
<span class="plain-syntax">be = copular verb with priority 2.</span>
|
||||
<span class="plain-syntax">have = verb with priority 1.</span>
|
||||
<span class="plain-syntax">carry = verb with priority 3.</span>
|
||||
<span class="plain-syntax">greet = verb with priority 3.</span>
|
||||
<span class="plain-syntax">know = verb with priority 3.</span>
|
||||
<span class="plain-syntax">combine = verb with priority 3.</span>
|
||||
|
||||
<span class="plain-syntax">-- be -- = IS.</span>
|
||||
<span class="plain-syntax">-- have -- = HAS.</span>
|
||||
<span class="plain-syntax">-- carry -- = CARRIES.</span>
|
||||
<span class="plain-syntax">-- know -- = KNOWS.</span>
|
||||
<span class="plain-syntax">-- be on -- = CARRIES-reversed.</span>
|
||||
<span class="plain-syntax">-- be under -- = CARRIES.</span>
|
||||
<span class="plain-syntax">combine -- with -- = COMBINES.</span>
|
||||
<span class="plain-syntax">combine up -- with -- = COMBINESUP.</span>
|
||||
<span class="plain-syntax">greet -- = GREETS.</span>
|
||||
</pre>
|
||||
<p class="commentary">We only know that Beth is feminine-gendered and sailor masculine-gendered<sup id="fnref:3"><a href="#fn:3" rel="footnote">3</a></sup>
|
||||
because the vocabulary being used by <a href="../linguistics-test/index.html" class="internal">linguistics-test</a> says so. It's
|
||||
|
@ -372,7 +384,33 @@ fresh nodes:
|
|||
<span class="plain-syntax"> RELATIONSHIP_NT'carries' {meaning: carries-reversed}</span>
|
||||
<span class="plain-syntax"> COMMON_NOUN_NT'ming vase' {common nom/acc n s} {definite 'the' n/m/f s/p nom/acc}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>That shows the full range of what happens with verb nodes. Turning back
|
||||
<p class="commentary firstcommentary"><a id="SP11"></a><b>§11. </b>We can also support imperative verbs, with "special meanings" which are
|
||||
not necessarily relational, and do not always lead to <span class="extract"><span class="extract-syntax">RELATIONSHIP_NT</span></span>
|
||||
subtrees. See <a href="3-sm.html" class="internal">Special Meanings</a>.
|
||||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">(1) greet beth</span>
|
||||
|
||||
<span class="plain-syntax">SENTENCE_NT'greet beth'</span>
|
||||
<span class="plain-syntax"> VERB_NT'greet' {verb 'greet' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: greets}</span>
|
||||
<span class="plain-syntax"> PROPER_NOUN_NT'beth' {proper nom/acc f s}</span>
|
||||
|
||||
<span class="plain-syntax">(2) combine the ming vase with the table</span>
|
||||
|
||||
<span class="plain-syntax">SENTENCE_NT'combine the ming vase with the table'</span>
|
||||
<span class="plain-syntax"> VERB_NT'combine' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combines}</span>
|
||||
<span class="plain-syntax"> COMMON_NOUN_NT'the table' {common nom/acc n s}</span>
|
||||
<span class="plain-syntax"> COMMON_NOUN_NT'the ming vase' {common nom/acc n s}</span>
|
||||
|
||||
<span class="plain-syntax">(3) combine up the ming vase with the table</span>
|
||||
|
||||
<span class="plain-syntax">SENTENCE_NT'combine up the ming vase with the table'</span>
|
||||
<span class="plain-syntax"> VERB_NT'combine up' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combinesup}</span>
|
||||
<span class="plain-syntax"> COMMON_NOUN_NT'the table' {common nom/acc n s}</span>
|
||||
<span class="plain-syntax"> COMMON_NOUN_NT'the ming vase' {common nom/acc n s}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>That shows the full range of what happens with verb nodes. Turning back
|
||||
to noun phrases, we can have serial lists:
|
||||
</p>
|
||||
|
||||
|
@ -451,7 +489,7 @@ disallow this. Unfortunately, less extreme zeugmas occur all the time:
|
|||
<p>The red door is west of the Dining Room and east of the Ballroom.</p>
|
||||
</blockquote>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP12"></a><b>§12. </b>Now we introduce pronouns to the mix. These are detected automatically
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>Now we introduce pronouns to the mix. These are detected automatically
|
||||
by <a href="index.html" class="internal">linguistics</a>, and exist in nominative and accusative cases in
|
||||
English. Note the difference in annotations between "them" and "you",
|
||||
for example.
|
||||
|
@ -505,7 +543,7 @@ for example.
|
|||
<span class="plain-syntax"> PROPER_NOUN_NT'anna' {proper nom/acc f s}</span>
|
||||
<span class="plain-syntax"> PRONOUN_NT'here' {location pronoun n/m/f s/p nom/acc 3p}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP13"></a><b>§13. </b>"Callings" use the special syntax "X called Y", which has to be handled
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>"Callings" use the special syntax "X called Y", which has to be handled
|
||||
here in the <a href="index.html" class="internal">linguistics</a> module so that Y can safely wording which would
|
||||
otherwise have a structural meaning. ("Called" is to Inform as the backslash
|
||||
character, making letters literal, is to C.)
|
||||
|
@ -559,7 +597,7 @@ character, making letters literal, is to C.)
|
|||
<span class="plain-syntax"> COMMON_NOUN_NT'table' {common nom/acc n s} {indefinite 'a' n/m/f nom/acc s}</span>
|
||||
<span class="plain-syntax"> UNPARSED_NOUN_NT'billiards table with deep pockets' {definite 'the' n/m/f s/p nom/acc}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP14"></a><b>§14. </b>The word "with", often but not always used in conjunction with "kind of":
|
||||
<p class="commentary firstcommentary"><a id="SP15"></a><b>§15. </b>The word "with", often but not always used in conjunction with "kind of":
|
||||
</p>
|
||||
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -282,7 +282,7 @@ other "to be" plus the preposition "in", which changes the meaning.
|
|||
|
||||
<p class="commentary">The user, then, creates <a href="3-vrb.html#SP1" class="internal">verb</a> objects and gives them //verb_form//s,
|
||||
attaching meanings to each form via the mechanisms in <a href="3-vm.html" class="internal">Verb Meanings</a>
|
||||
(which wrap those meanings in <a href="3-vm.html#SP4" class="internal">verb_meaning</a> objects). The linguistics
|
||||
(which wrap those meanings in <a href="3-vm.html#SP3" class="internal">verb_meaning</a> objects). The linguistics
|
||||
module then has to provide an efficient way to parse text to find uses
|
||||
of these verbs, and it does so by constructing intermediate objects.
|
||||
See <a href="3-vu.html" class="internal">Verb Usages</a>.
|
||||
|
|
|
@ -148,6 +148,11 @@
|
|||
<spon class="sectiontitle">Verb Meanings</span></a> -
|
||||
<span class="sectionpurpose">To abstract the meaning of a verb.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-sm.html">
|
||||
<spon class="sectiontitle">Special Meanings</span></a> -
|
||||
<span class="sectionpurpose">To abstract non-standard, perhaps non-SVO, meanings of a verb.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-vu.html">
|
||||
<spon class="sectiontitle">Verb Usages</span></a> -
|
||||
|
|
|
@ -110,8 +110,8 @@ with the facilities offered by the <a href="../syntax-module/index.html" class="
|
|||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-plain-syntax"> CARRIES = relationship.</span>
|
||||
<span class="Preform-plain-syntax"> be = verb meaning IS with priority 2.</span>
|
||||
<span class="Preform-plain-syntax"> be + on = preposition meaning CARRIES.</span>
|
||||
<span class="Preform-plain-syntax"> be = copular verb with priority 2.</span>
|
||||
<span class="Preform-plain-syntax"> -- be on -- = CARRIES-reversed.</span>
|
||||
<span class="Preform-plain-syntax"> Beth = feminine proper noun.</span>
|
||||
<span class="Preform-plain-syntax"> sailor = neuter common noun.</span>
|
||||
</pre>
|
||||
|
@ -120,11 +120,19 @@ with the facilities offered by the <a href="../syntax-module/index.html" class="
|
|||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><vocabulary-line></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">relationship</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Create relationship</span><span class="named-paragraph-number">3.1</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">verb</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">meaning</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">with</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">priority</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><cardinal-number></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Create verb</span><span class="named-paragraph-number">3.2</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">+</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">preposition</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">meaning</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Create preposition</span><span class="named-paragraph-number">3.3</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><gender></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Create common noun</span><span class="named-paragraph-number">3.4</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><gender></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Create proper noun</span><span class="named-paragraph-number">3.5</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">relationship</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Create relationship</span><span class="named-paragraph-number">3.1</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">special</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">meaning</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Create special meaning</span><span class="named-paragraph-number">3.2</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">copular</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">with</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">priority</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><cardinal-number></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_4" class="named-paragraph-link"><span class="named-paragraph">Create copular verb</span><span class="named-paragraph-number">3.4</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">verb</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">with</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">priority</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><cardinal-number></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Create verb</span><span class="named-paragraph-number">3.3</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_5" class="named-paragraph-link"><span class="named-paragraph">Create SVO usage</span><span class="named-paragraph-number">3.5</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_6" class="named-paragraph-link"><span class="named-paragraph">Create SVPO usage</span><span class="named-paragraph-number">3.6</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_7" class="named-paragraph-link"><span class="named-paragraph">Create VO usage S</span><span class="named-paragraph-number">3.7</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_8" class="named-paragraph-link"><span class="named-paragraph">Create SVO usage S</span><span class="named-paragraph-number">3.8</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_9" class="named-paragraph-link"><span class="named-paragraph">Create SVPO usage S</span><span class="named-paragraph-number">3.9</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_10" class="named-paragraph-link"><span class="named-paragraph">Create VSPO usage S</span><span class="named-paragraph-number">3.10</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">###</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">--</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_11" class="named-paragraph-link"><span class="named-paragraph">Create VPSPO usage S</span><span class="named-paragraph-number">3.11</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><gender></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">common</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_12" class="named-paragraph-link"><span class="named-paragraph">Create common noun</span><span class="named-paragraph-number">3.12</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">=</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><gender></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">proper</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">noun</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="1-bnk.html#SP3_13" class="named-paragraph-link"><span class="named-paragraph">Create proper noun</span><span class="named-paragraph-number">3.13</span></a></span><span class="Preform-constant-syntax">;</span>
|
||||
|
||||
<span class="Preform-function-syntax"><gender></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">neuter</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"> NEUTER_GENDER</span>
|
||||
|
@ -137,6 +145,12 @@ with the facilities offered by the <a href="../syntax-module/index.html" class="
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax">}</span>
|
||||
|
||||
<span class="Preform-function-syntax"><special-meaning></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">1</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
|
||||
<span class="Preform-plain-syntax"> *</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax"> = </span><a href="../linguistics-module/3-sm.html#SP6" class="function-link"><span class="Preform-function-syntax">SpecialMeanings::find_from_wording</span></a><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">W</span><span class="Preform-plain-syntax">);</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">if</span><span class="Preform-plain-syntax"> (*</span><span class="Preform-identifier-syntax">XP</span><span class="Preform-plain-syntax">) </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">TRUE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">return</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">FALSE</span><span class="Preform-plain-syntax">;</span>
|
||||
<span class="Preform-plain-syntax">}</span>
|
||||
|
||||
<span class="Preform-function-syntax"><existing-verb></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">internal</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">{</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-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-plain-syntax"> </span><span class="Preform-identifier-syntax">LOOP_OVER</span><span class="Preform-plain-syntax">(</span><span class="Preform-identifier-syntax">V</span><span class="Preform-plain-syntax">, </span><span class="Preform-reserved-syntax">verb</span><span class="Preform-plain-syntax">)</span>
|
||||
|
@ -154,32 +168,113 @@ with the facilities offered by the <a href="../syntax-module/index.html" class="
|
|||
<span class="plain-syntax"> </span><a href="1-rlt.html#SP7" class="function-link"><span class="function-syntax">Relating::new</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2"></a><b>§3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create verb</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2"></a><b>§3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create special meaning</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">N</span><span class="plain-syntax"> = </span><a href="../../../inweb/docs/foundation-module/4-sm.html#SP2" class="function-link"><span class="function-syntax">Str::new</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-sm.html#SP5" class="function-link"><span class="function-syntax">SpecialMeanings::declare</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">N</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_3"></a><b>§3.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create verb</span><span class="named-paragraph-number">3.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RN</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP6" class="function-link"><span class="function-syntax">Conjugation::conjugate</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]), </span><a href="../inflections-module/4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vi</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-vrb.html#SP3" class="function-link"><span class="function-syntax">Verbs::new_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, (</span><span class="identifier-syntax">RN</span><span class="plain-syntax"> == </span><span class="identifier-syntax">R_equality</span><span class="plain-syntax">)?</span><span class="identifier-syntax">TRUE:FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-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><a href="../linguistics-module/3-vu.html#SP6" class="function-link"><span class="function-syntax">VerbUsages::register_all_usages_of_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">[2], </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vi</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RN</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-vrb.html#SP3" class="function-link"><span class="function-syntax">Verbs::new_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_conjugates</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vu.html#SP6" class="function-link"><span class="function-syntax">VerbUsages::register_all_usages_of_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_3"></a><b>§3.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create preposition</span><span class="named-paragraph-number">3.3</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_4"></a><b>§3.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create copular verb</span><span class="named-paragraph-number">3.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RN</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP6" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RN</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb_conjugation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">vc</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="../inflections-module/3-vc.html#SP6" class="function-link"><span class="function-syntax">Conjugation::conjugate</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]), </span><a href="../inflections-module/4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-vrb.html#SP3" class="function-link"><span class="function-syntax">Verbs::new_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">vc</span><span class="plain-syntax">, </span><span class="constant-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">vc</span><span class="plain-syntax">-></span><span class="element-syntax">vc_conjugates</span><span class="plain-syntax"> = </span><span class="identifier-syntax">V</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vu.html#SP6" class="function-link"><span class="function-syntax">VerbUsages::register_all_usages_of_verb</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">[1], </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_4"></a><b>§3.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create common noun</span><span class="named-paragraph-number">3.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_5"></a><b>§3.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create SVO usage</span><span class="named-paragraph-number">3.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RN</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RN</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_6"></a><b>§3.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create SVPO usage</span><span class="named-paragraph-number">3.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">RN</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::regular</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">RN</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_7"></a><b>§3.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create VO usage S</span><span class="named-paragraph-number">3.7</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SM</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SM</span><span class="plain-syntax">), </span><span class="constant-syntax">VO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_8"></a><b>§3.8. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create SVO usage S</span><span class="named-paragraph-number">3.8</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SM</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SM</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_9"></a><b>§3.9. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create SVPO usage S</span><span class="named-paragraph-number">3.9</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SM</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SM</span><span class="plain-syntax">), </span><span class="constant-syntax">SVO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_10"></a><b>§3.10. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create VSPO usage S</span><span class="named-paragraph-number">3.10</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SM</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SM</span><span class="plain-syntax">), </span><span class="constant-syntax">VOO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_11"></a><b>§3.11. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create VPSPO usage S</span><span class="named-paragraph-number">3.11</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">verb</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[1];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SM</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">special_meaning_holder</span><span class="plain-syntax"> *) </span><span class="identifier-syntax">RP</span><span class="plain-syntax">[2];</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa1</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[1]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">word_assemblage</span><span class="plain-syntax"> </span><span class="identifier-syntax">wa2</span><span class="plain-syntax"> = </span><a href="../words-module/2-wa.html#SP4" class="function-link"><span class="function-syntax">WordAssemblages::from_wording</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">FW</span><span class="plain-syntax">[2]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep1</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa1</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep2</span><span class="plain-syntax"> = </span><a href="../linguistics-module/3-prp.html#SP6" class="function-link"><span class="function-syntax">Prepositions::make</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">wa2</span><span class="plain-syntax">, </span><span class="constant-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="../linguistics-module/3-vrb.html#SP12" class="function-link"><span class="function-syntax">Verbs::add_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep1</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep2</span><span class="plain-syntax">, </span><a href="../linguistics-module/3-vm.html#SP5" class="function-link"><span class="function-syntax">VerbMeanings::special</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">SM</span><span class="plain-syntax">), </span><span class="constant-syntax">VOO_FS_BIT</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_12"></a><b>§3.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create common noun</span><span class="named-paragraph-number">3.12</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -187,7 +282,7 @@ with the facilities offered by the <a href="../syntax-module/index.html" class="
|
|||
<span class="plain-syntax"> </span><span class="constant-syntax">NOUN_MC</span><span class="plain-syntax">, </span><span class="constant-syntax">NULL_GENERAL_POINTER</span><span class="plain-syntax">, </span><a href="../inflections-module/4-dl.html#SP1" class="function-link"><span class="function-syntax">DefaultLanguage::get</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="1-bnk.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_5"></a><b>§3.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create proper noun</span><span class="named-paragraph-number">3.5</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13"></a><b>§3.13. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create proper noun</span><span class="named-paragraph-number">3.13</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -107,7 +107,9 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP2"></a><b>§2. </b><span class="extract"><span class="extract-syntax">-trace</span></span> turns all verb phrase tracing on; <span class="extract"><span class="extract-syntax">-viability</span></span> just shows the
|
||||
viability map for each sentence.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">TRACING_LINGUISTICS_CALLBACK</span><span class="plain-syntax"> </span><a href="1-pc.html#SP2" class="function-link"><span class="function-syntax">Main::trace_parsing</span></a>
|
||||
</pre>
|
||||
|
|
|
@ -138,14 +138,12 @@ must be for equality and possession:
|
|||
<span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="function-syntax">Relating::find</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">Relating::find</span></span>:<br/>Banking - <a href="1-bnk.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">, *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rel</span><span class="plain-syntax"> *</span><span class="identifier-syntax">T</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">, </span><span class="reserved-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="../../../inweb/docs/foundation-module/4-sm.html#SP19" class="function-link"><span class="function-syntax">Str::eq_insensitive</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">T</span><span class="plain-syntax">-></span><span class="element-syntax">debugging_log_name</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">T</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">R</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="constant-syntax">STDERR</span><span class="plain-syntax">, </span><span class="string-syntax">"unable to find relation named %S\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</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">R</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">T</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
100.0% in inform7 run
|
||||
67.4% in compilation to Inter
|
||||
25.5% in //Phrases::Manager::compile_first_block//
|
||||
9.2% in //Phrases::Manager::compile_as_needed//
|
||||
7.0% in //Strings::compile_responses//
|
||||
67.1% in compilation to Inter
|
||||
25.6% in //Phrases::Manager::compile_first_block//
|
||||
9.1% in //Phrases::Manager::compile_as_needed//
|
||||
6.8% in //Strings::compile_responses//
|
||||
6.1% in //World::Compile::compile//
|
||||
3.5% in //Assertions::Traverse::traverse1//
|
||||
3.3% in //Sentences::VPs::traverse//
|
||||
2.1% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
1.9% in //Phrases::Manager::rulebooks_array//
|
||||
1.0% in //NewVerbs::ConjugateVerb//
|
||||
0.8% in //Phrases::Manager::traverse//
|
||||
2.0% in //Phrases::Manager::RulePrintingRule_routine//
|
||||
1.8% in //Phrases::Manager::rulebooks_array//
|
||||
1.1% in //NewVerbs::ConjugateVerb//
|
||||
0.7% in //Phrases::Manager::traverse//
|
||||
0.5% in //Phrases::Manager::parse_rule_parameters//
|
||||
0.3% in //Phrases::Manager::compile_rulebooks//
|
||||
0.3% in //Phrases::Manager::traverse_for_names//
|
||||
|
@ -19,19 +19,18 @@
|
|||
0.1% in //Sentences::RuleSubtrees::register_recently_lexed_phrases//
|
||||
0.1% in //Task::load_types//
|
||||
0.1% in //World::complete//
|
||||
4.2% not specifically accounted for
|
||||
30.2% in running Inter pipeline
|
||||
10.1% in step preparation
|
||||
9.9% in inter step 2/12: link
|
||||
6.6% in inter step 12/12: generate inform6 -> auto.inf
|
||||
4.1% not specifically accounted for
|
||||
30.4% in running Inter pipeline
|
||||
10.0% in step preparation
|
||||
9.6% in inter step 2/12: link
|
||||
7.2% in inter step 12/12: generate inform6 -> auto.inf
|
||||
0.3% in inter step 9/12: make-identifiers-unique
|
||||
0.1% in inter step 10/12: reconcile-verbs
|
||||
0.1% in inter step 11/12: eliminate-redundant-labels
|
||||
0.1% in inter step 4/12: parse-linked-matter
|
||||
0.1% in inter step 5/12: resolve-conditional-compilation
|
||||
0.1% in inter step 6/12: assimilate
|
||||
0.1% in inter step 7/12: resolve-external-symbols
|
||||
0.1% in inter step 8/12: inspect-plugs
|
||||
1.9% not specifically accounted for
|
||||
2.1% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
2.0% not specifically accounted for
|
||||
2.0% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -385,8 +385,8 @@ void NewVerbs::parse_new(parse_node *PN, int imperative) {
|
|||
break;
|
||||
case BUILTIN_VERBM: {
|
||||
wording MW = GET_RW(<verb-implies-sentence-object>, 1);
|
||||
vm = VerbMeanings::sm_by_name(Lexer::word_text(Wordings::first_wn(MW)), &priority);
|
||||
if ((Wordings::length(MW) != 1) || (VerbMeanings::is_meaningless(&vm))) {
|
||||
special_meaning_holder *smh = SpecialMeanings::find_from_wording(MW);
|
||||
if (smh == NULL) {
|
||||
#ifndef IF_MODULE
|
||||
source_file *pos = Lexer::file_of_origin(Wordings::first_wn(MW));
|
||||
inform_extension *loc = Extensions::corresponding_to(pos);
|
||||
|
@ -397,6 +397,9 @@ void NewVerbs::parse_new(parse_node *PN, int imperative) {
|
|||
"and should be one of the ones used in the Preamble to the "
|
||||
"Standard Rules.");
|
||||
vm = VerbMeanings::regular(R_equality);
|
||||
} else {
|
||||
vm = VerbMeanings::special(smh);
|
||||
priority = SpecialMeanings::get_metadata_N(smh);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -620,52 +623,52 @@ foreign verbs (4).
|
|||
@ =
|
||||
|
||||
void NewVerbs::bootstrap(void) {
|
||||
VerbMeanings::declare_sm(NewVerbs::verb_means_SMF, I"verb-means", 3);
|
||||
SpecialMeanings::declare(NewVerbs::verb_means_SMF, I"verb-means", 3);
|
||||
|
||||
VerbMeanings::declare_sm(NewVerbs::new_verb_SMF, I"new-verb", 2);
|
||||
VerbMeanings::declare_sm(Plurals::plural_SMF, I"new-plural", 2);
|
||||
VerbMeanings::declare_sm(Activities::new_activity_SMF, I"new-activity", 2);
|
||||
SpecialMeanings::declare(NewVerbs::new_verb_SMF, I"new-verb", 2);
|
||||
SpecialMeanings::declare(Plurals::plural_SMF, I"new-plural", 2);
|
||||
SpecialMeanings::declare(Activities::new_activity_SMF, I"new-activity", 2);
|
||||
#ifdef IF_MODULE
|
||||
VerbMeanings::declare_sm(PL::Actions::new_action_SMF, I"new-action", 2);
|
||||
SpecialMeanings::declare(PL::Actions::new_action_SMF, I"new-action", 2);
|
||||
#endif
|
||||
VerbMeanings::declare_sm(NewVerbs::new_adjective_SMF, I"new-adjective", 2);
|
||||
VerbMeanings::declare_sm(Assertions::Property::either_SMF, I"new-either-or", 2);
|
||||
VerbMeanings::declare_sm(Tables::Defining::defined_by_SMF, I"defined-by-table", 2);
|
||||
VerbMeanings::declare_sm(Rules::Placement::listed_in_SMF, I"rule-listed-in", 2);
|
||||
SpecialMeanings::declare(NewVerbs::new_adjective_SMF, I"new-adjective", 2);
|
||||
SpecialMeanings::declare(Assertions::Property::either_SMF, I"new-either-or", 2);
|
||||
SpecialMeanings::declare(Tables::Defining::defined_by_SMF, I"defined-by-table", 2);
|
||||
SpecialMeanings::declare(Rules::Placement::listed_in_SMF, I"rule-listed-in", 2);
|
||||
#ifdef MULTIMEDIA_MODULE
|
||||
VerbMeanings::declare_sm(PL::Figures::new_figure_SMF, I"new-figure", 2);
|
||||
VerbMeanings::declare_sm(PL::Sounds::new_sound_SMF, I"new-sound", 2);
|
||||
VerbMeanings::declare_sm(PL::Files::new_file_SMF, I"new-file", 2);
|
||||
SpecialMeanings::declare(PL::Figures::new_figure_SMF, I"new-figure", 2);
|
||||
SpecialMeanings::declare(PL::Sounds::new_sound_SMF, I"new-sound", 2);
|
||||
SpecialMeanings::declare(PL::Files::new_file_SMF, I"new-file", 2);
|
||||
#endif
|
||||
#ifdef IF_MODULE
|
||||
VerbMeanings::declare_sm(PL::Bibliographic::episode_SMF, I"episode", 2);
|
||||
SpecialMeanings::declare(PL::Bibliographic::episode_SMF, I"episode", 2);
|
||||
#endif
|
||||
VerbMeanings::declare_sm(Relations::new_relation_SMF, I"new-relation", 1);
|
||||
VerbMeanings::declare_sm(Assertions::Property::optional_either_SMF, I"can-be", 2);
|
||||
VerbMeanings::declare_sm(LiteralPatterns::specifies_SMF, I"specifies-notation", 4);
|
||||
VerbMeanings::declare_sm(Rules::Placement::substitutes_for_SMF, I"rule-substitutes-for", 1);
|
||||
SpecialMeanings::declare(Relations::new_relation_SMF, I"new-relation", 1);
|
||||
SpecialMeanings::declare(Assertions::Property::optional_either_SMF, I"can-be", 2);
|
||||
SpecialMeanings::declare(LiteralPatterns::specifies_SMF, I"specifies-notation", 4);
|
||||
SpecialMeanings::declare(Rules::Placement::substitutes_for_SMF, I"rule-substitutes-for", 1);
|
||||
#ifdef IF_MODULE
|
||||
VerbMeanings::declare_sm(PL::Scenes::begins_when_SMF, I"scene-begins-when", 1);
|
||||
VerbMeanings::declare_sm(PL::Scenes::ends_when_SMF, I"scene-ends-when", 1);
|
||||
SpecialMeanings::declare(PL::Scenes::begins_when_SMF, I"scene-begins-when", 1);
|
||||
SpecialMeanings::declare(PL::Scenes::ends_when_SMF, I"scene-ends-when", 1);
|
||||
#endif
|
||||
VerbMeanings::declare_sm(Rules::Placement::does_nothing_SMF, I"rule-does-nothing", 1);
|
||||
VerbMeanings::declare_sm(Rules::Placement::does_nothing_if_SMF, I"rule-does-nothing-if", 1);
|
||||
VerbMeanings::declare_sm(Rules::Placement::does_nothing_unless_SMF, I"rule-does-nothing-unless", 1);
|
||||
VerbMeanings::declare_sm(Sentences::VPs::translates_into_unicode_as_SMF, I"translates-into-unicode", 1);
|
||||
VerbMeanings::declare_sm(Sentences::VPs::translates_into_I6_as_SMF, I"translates-into-i6", 1);
|
||||
VerbMeanings::declare_sm(Sentences::VPs::translates_into_language_as_SMF, I"translates-into-language", 1);
|
||||
VerbMeanings::declare_sm(UseOptions::use_translates_as_SMF, I"use-translates", 4);
|
||||
SpecialMeanings::declare(Rules::Placement::does_nothing_SMF, I"rule-does-nothing", 1);
|
||||
SpecialMeanings::declare(Rules::Placement::does_nothing_if_SMF, I"rule-does-nothing-if", 1);
|
||||
SpecialMeanings::declare(Rules::Placement::does_nothing_unless_SMF, I"rule-does-nothing-unless", 1);
|
||||
SpecialMeanings::declare(Sentences::VPs::translates_into_unicode_as_SMF, I"translates-into-unicode", 1);
|
||||
SpecialMeanings::declare(Sentences::VPs::translates_into_I6_as_SMF, I"translates-into-i6", 1);
|
||||
SpecialMeanings::declare(Sentences::VPs::translates_into_language_as_SMF, I"translates-into-language", 1);
|
||||
SpecialMeanings::declare(UseOptions::use_translates_as_SMF, I"use-translates", 4);
|
||||
#ifdef IF_MODULE
|
||||
VerbMeanings::declare_sm(PL::Parsing::TestScripts::test_with_SMF, I"test-with", 1);
|
||||
VerbMeanings::declare_sm(PL::Parsing::understand_as_SMF, I"understand-as", 1);
|
||||
SpecialMeanings::declare(PL::Parsing::TestScripts::test_with_SMF, I"test-with", 1);
|
||||
SpecialMeanings::declare(PL::Parsing::understand_as_SMF, I"understand-as", 1);
|
||||
#endif
|
||||
VerbMeanings::declare_sm(UseOptions::use_SMF, I"use", 4);
|
||||
SpecialMeanings::declare(UseOptions::use_SMF, I"use", 4);
|
||||
#ifdef IF_MODULE
|
||||
VerbMeanings::declare_sm(PL::Bibliographic::Release::release_along_with_SMF,I"release-along-with", 4);
|
||||
VerbMeanings::declare_sm(PL::EPSMap::index_map_with_SMF, I"index-map-with", 4);
|
||||
SpecialMeanings::declare(PL::Bibliographic::Release::release_along_with_SMF,I"release-along-with", 4);
|
||||
SpecialMeanings::declare(PL::EPSMap::index_map_with_SMF, I"index-map-with", 4);
|
||||
#endif
|
||||
VerbMeanings::declare_sm(Sentences::VPs::include_in_SMF, I"include-in", 4);
|
||||
VerbMeanings::declare_sm(Sentences::VPs::omit_from_SMF, I"omit-from", 4);
|
||||
SpecialMeanings::declare(Sentences::VPs::include_in_SMF, I"include-in", 4);
|
||||
SpecialMeanings::declare(Sentences::VPs::omit_from_SMF, I"omit-from", 4);
|
||||
|
||||
word_assemblage infinitive = PreformUtilities::wording(<bootstrap-verb>, 0);
|
||||
verb_conjugation *vc = Conjugation::conjugate(infinitive, DefaultLanguage::get(NULL));
|
||||
|
@ -679,7 +682,7 @@ void NewVerbs::bootstrap(void) {
|
|||
vc->vc_conjugates = vi;
|
||||
VerbUsages::register_all_usages_of_verb(vi, FALSE, 3, NULL);
|
||||
|
||||
Verbs::add_form(vi, NULL, NULL, VerbMeanings::sm_by_name(L"verb-means", NULL), SVO_FS_BIT);
|
||||
Verbs::add_form(vi, NULL, NULL, SpecialMeanings::find(L"verb-means"), SVO_FS_BIT);
|
||||
}
|
||||
|
||||
@h Runtime conjugation.
|
||||
|
|
|
@ -112,14 +112,14 @@ void Sentences::VPs::visit(parse_node *p) {
|
|||
|
||||
@<Check that this is allowed, if it occurs in the Options file@> =
|
||||
if (Wordings::within(Node::get_text(p), options_file_wording)) {
|
||||
special_meaning_fn soa = VerbMeanings::sm_of_verb_node(p->down);
|
||||
special_meaning_holder *sm = Node::get_special_meaning(p->down);
|
||||
int err = TRUE;
|
||||
if ((soa == UseOptions::use_SMF) ||
|
||||
(soa == PL::Parsing::TestScripts::test_with_SMF) ||
|
||||
(soa == Sentences::VPs::include_in_SMF) ||
|
||||
(soa == Sentences::VPs::omit_from_SMF)) err = FALSE;
|
||||
if ((SpecialMeanings::is(sm, UseOptions::use_SMF)) ||
|
||||
(SpecialMeanings::is(sm, PL::Parsing::TestScripts::test_with_SMF)) ||
|
||||
(SpecialMeanings::is(sm, Sentences::VPs::include_in_SMF)) ||
|
||||
(SpecialMeanings::is(sm, Sentences::VPs::omit_from_SMF))) err = FALSE;
|
||||
#ifdef IF_MODULE
|
||||
if (soa == PL::Bibliographic::Release::release_along_with_SMF) err = FALSE;
|
||||
if (SpecialMeanings::is(sm, PL::Bibliographic::Release::release_along_with_SMF)) err = FALSE;
|
||||
#endif
|
||||
if (err)
|
||||
StandardProblems::unlocated_problem(Task::syntax_tree(), _p_(BelievedImpossible), /* not usefully testable, anyway */
|
||||
|
|
|
@ -545,9 +545,7 @@ void Assertions::Traverse::special_meaning(parse_node *pn) {
|
|||
|
||||
void Assertions::Traverse::try_special_meaning(int task, parse_node *pn) {
|
||||
if (Annotations::read_int(pn, verb_id_ANNOT) == SPECIAL_MEANING_VB) {
|
||||
special_meaning_fn soa = VerbMeanings::sm_of_verb_node(pn);
|
||||
if (soa) {
|
||||
(*soa)(task, pn, NULL);
|
||||
}
|
||||
special_meaning_holder *sm = Node::get_special_meaning(pn);
|
||||
if (sm) SpecialMeanings::call(sm, task, pn, NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,8 +122,8 @@ int PL::Bibliographic::Release::release_along_with_SMF(int task, parse_node *V,
|
|||
@ =
|
||||
void PL::Bibliographic::Release::visit_to_quote(OUTPUT_STREAM, parse_node *p) {
|
||||
if ((Node::get_type(p) == SENTENCE_NT) && (p->down)) {
|
||||
special_meaning_fn soa = VerbMeanings::sm_of_verb_node(p->down);
|
||||
if (soa == PL::Bibliographic::Release::release_along_with_SMF) {
|
||||
special_meaning_holder *sm = Node::get_special_meaning(p->down);
|
||||
if (SpecialMeanings::is(sm, PL::Bibliographic::Release::release_along_with_SMF)) {
|
||||
TEMPORARY_TEXT(TEMP)
|
||||
Index::link_to(TEMP, Wordings::first_wn(Node::get_text(p)), TRUE);
|
||||
WRITE("status instruction ||");
|
||||
|
|
|
@ -117,7 +117,7 @@ void Diagrams::log_node(OUTPUT_STREAM, parse_node *pn) {
|
|||
WRITE(" {existential}");
|
||||
if (Node::get_special_meaning(pn))
|
||||
WRITE(" {special meaning: %S}",
|
||||
Node::get_special_meaning(pn)->sm_name);
|
||||
SpecialMeanings::get_name(Node::get_special_meaning(pn)));
|
||||
if (Annotations::read_int(pn, verbal_certainty_ANNOT) != UNKNOWN_CE) {
|
||||
WRITE(" {certainty:");
|
||||
Certainty::write(OUT, Annotations::read_int(pn, verbal_certainty_ANNOT));
|
||||
|
|
122
services/linguistics-module/Chapter 3/Special Meanings.w
Normal file
122
services/linguistics-module/Chapter 3/Special Meanings.w
Normal file
|
@ -0,0 +1,122 @@
|
|||
[SpecialMeanings::] Special Meanings.
|
||||
|
||||
To abstract non-standard, perhaps non-SVO, meanings of a verb.
|
||||
|
||||
@h Special meaning functions.
|
||||
Regular meanings of verbs are represented by |VERB_MEANING_LINGUISTICS_TYPE|
|
||||
pointers -- see //Verb Meanings//. In Inform, those are binary predicates.
|
||||
They always take two terms.
|
||||
|
||||
However, Inform sometimes wants sentences which are written in non-standard
|
||||
ways, with anything from one to three terms, and which don't correspond to
|
||||
any of the relations. (For example, "Include Locksmith by Emily Short".)
|
||||
|
||||
These are represented by functions to perform the necessary business; the
|
||||
type |special_meaning_fn| gives the type of such a function.
|
||||
|
||||
=
|
||||
typedef int (*special_meaning_fn)(int, parse_node *, wording *);
|
||||
|
||||
@ This is a convenient generic special-meaning function; it simply accumulates
|
||||
non-empty SPs and OPs as unparsed noun phrases and accepts them.
|
||||
|
||||
The first parameter is the task to be performed on the verb node pointed
|
||||
to by the second. The task number must belong to the |*_SMFT| enumeration,
|
||||
and the only task used by the Linguistics module is |ACCEPT_SMFT|. This should
|
||||
look at the array of wordings and either accept this as a valid usage, build
|
||||
a subtree from the verb node, and return |TRUE|, or else return |FALSE| to
|
||||
say that the usage is invalid: see Verb Phrases for more.
|
||||
|
||||
The user is then free to define further SMF tasks, and Inform does so.
|
||||
|
||||
@e ACCEPT_SMFT from 0
|
||||
|
||||
=
|
||||
int SpecialMeanings::generic_smf(int task, parse_node *V, wording *NPs) {
|
||||
switch (task) {
|
||||
case ACCEPT_SMFT: {
|
||||
parse_node *A = V;
|
||||
for (int i=0; i<3; i++) {
|
||||
wording W = (NPs)?(NPs[i]):EMPTY_WORDING;
|
||||
if (Wordings::nonempty(W)) {
|
||||
<np-unparsed>(W);
|
||||
parse_node *p = <<rp>>;
|
||||
A->next = p; A = p;
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@h Special meaning holders.
|
||||
Although a SM is basically encapsulated by a function, it's convenient to
|
||||
have some metadata with it too:
|
||||
|
||||
@ =
|
||||
typedef struct special_meaning_holder {
|
||||
int (*sm_func)(int, parse_node *, wording *); /* (compiler doesn't like typedef here) */
|
||||
struct text_stream *sm_name;
|
||||
int metadata_N;
|
||||
CLASS_DEFINITION
|
||||
} special_meaning_holder;
|
||||
|
||||
@ =
|
||||
special_meaning_holder *SpecialMeanings::declare(special_meaning_fn func,
|
||||
text_stream *name, int p) {
|
||||
special_meaning_holder *smh = CREATE(special_meaning_holder);
|
||||
if (func == NULL) func = SpecialMeanings::generic_smf;
|
||||
smh->sm_func = func;
|
||||
smh->sm_name = Str::duplicate(name);
|
||||
smh->metadata_N = p;
|
||||
return smh;
|
||||
}
|
||||
|
||||
@ SMHs can be found by name:
|
||||
|
||||
=
|
||||
verb_meaning SpecialMeanings::find(wchar_t *name) {
|
||||
special_meaning_holder *smh;
|
||||
LOOP_OVER(smh, special_meaning_holder)
|
||||
if (Str::eq_wide_string(smh->sm_name, name))
|
||||
return VerbMeanings::special(smh);
|
||||
return VerbMeanings::meaninglessness();
|
||||
}
|
||||
special_meaning_holder *SpecialMeanings::find_from_wording(wording W) {
|
||||
TEMPORARY_TEXT(name)
|
||||
WRITE_TO(name, "%W", W);
|
||||
special_meaning_holder *smh;
|
||||
LOOP_OVER(smh, special_meaning_holder)
|
||||
if (Str::eq_insensitive(smh->sm_name, name))
|
||||
break;
|
||||
DISCARD_TEXT(name)
|
||||
return smh;
|
||||
}
|
||||
|
||||
@ Metadata access:
|
||||
|
||||
=
|
||||
int SpecialMeanings::get_metadata_N(special_meaning_holder *smh) {
|
||||
if (smh == NULL) return 0;
|
||||
return smh->metadata_N;
|
||||
}
|
||||
|
||||
text_stream *SpecialMeanings::get_name(special_meaning_holder *smh) {
|
||||
if (smh == NULL) return NULL;
|
||||
return smh->sm_name;
|
||||
}
|
||||
|
||||
int SpecialMeanings::is(special_meaning_holder *smh, special_meaning_fn func) {
|
||||
if (smh == NULL) return FALSE;
|
||||
if (smh->sm_func == func) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ Calling:
|
||||
|
||||
=
|
||||
int SpecialMeanings::call(special_meaning_holder *smh, int task, parse_node *V,
|
||||
wording *NPs) {
|
||||
return (*(smh->sm_func))(task, V, NPs);
|
||||
}
|
|
@ -29,21 +29,6 @@ VERB_MEANING_LINGUISTICS_TYPE *VerbMeanings::reverse_VMT(VERB_MEANING_LINGUISTIC
|
|||
#endif
|
||||
}
|
||||
|
||||
@ We will, however, allow for a little more complication, in that the code
|
||||
using this module can instead provide a function of the following type.
|
||||
|
||||
The first parameter is the task to be performed on the verb node pointed
|
||||
to by the second. The task number must belong to the |*_SMFT| enumeration,
|
||||
and the only task used by the Linguistics module is |ACCEPT_SMFT|. This should
|
||||
look at the array of wordings and either accept this as a valid usage, build
|
||||
a subtree from the verb node, and return |TRUE|, or else return |FALSE| to
|
||||
say that the usage is invalid: see Verb Phrases for more.
|
||||
|
||||
@e ACCEPT_SMFT from 0
|
||||
|
||||
=
|
||||
typedef int (*special_meaning_fn)(int, parse_node *, wording *);
|
||||
|
||||
@h How this module stores verb meanings.
|
||||
We can now define an object to wrap up this abstracted idea of verb meaning:
|
||||
|
||||
|
@ -133,7 +118,7 @@ most one regular sense.
|
|||
verb_meaning *VerbMeanings::first_unspecial_meaning_of_verb_form(verb_form *vf) {
|
||||
if (vf)
|
||||
for (verb_sense *vs = vf->list_of_senses; vs; vs = vs->next_sense)
|
||||
if (VerbMeanings::get_special_meaning_fn(&(vs->vm)) == NULL)
|
||||
if (VerbMeanings::get_special_meaning(&(vs->vm)) == NULL)
|
||||
return &(vs->vm);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -179,7 +164,7 @@ a special meaning function, we have to provide a function to tell the user
|
|||
whether to reverse what that function does.
|
||||
|
||||
=
|
||||
special_meaning_holder *VerbMeanings::get_special_meaning_fn(verb_meaning *vm) {
|
||||
special_meaning_holder *VerbMeanings::get_special_meaning(verb_meaning *vm) {
|
||||
vm = VerbMeanings::follow_indirection(vm);
|
||||
if (vm == NULL) return NULL;
|
||||
return vm->special_meaning;
|
||||
|
@ -208,37 +193,3 @@ void VerbMeanings::log(OUTPUT_STREAM, void *vvm) {
|
|||
} else if (vm->special_meaning) WRITE("(special)");
|
||||
else WRITE("(meaningless)");
|
||||
}
|
||||
|
||||
@h Special, second go.
|
||||
|
||||
@ =
|
||||
typedef struct special_meaning_holder {
|
||||
int (*sm_func)(int, parse_node *, wording *); /* (for tangling reasons, can't use typedef here) */
|
||||
struct text_stream *sm_name;
|
||||
int verb_priority;
|
||||
CLASS_DEFINITION
|
||||
} special_meaning_holder;
|
||||
|
||||
special_meaning_holder *VerbMeanings::declare_sm(int (*func)(int, parse_node *, wording *), text_stream *name, int p) {
|
||||
special_meaning_holder *smh = CREATE(special_meaning_holder);
|
||||
smh->sm_func = func;
|
||||
smh->sm_name = Str::duplicate(name);
|
||||
smh->verb_priority = p;
|
||||
return smh;
|
||||
}
|
||||
|
||||
verb_meaning VerbMeanings::sm_by_name(wchar_t *name, int *p) {
|
||||
special_meaning_holder *smh;
|
||||
LOOP_OVER(smh, special_meaning_holder)
|
||||
if (Str::eq_wide_string(smh->sm_name, name)) {
|
||||
if (p) *p = smh->verb_priority;
|
||||
return VerbMeanings::special(smh);
|
||||
}
|
||||
return VerbMeanings::meaninglessness();
|
||||
}
|
||||
|
||||
special_meaning_fn VerbMeanings::sm_of_verb_node(parse_node *pn) {
|
||||
special_meaning_holder *sm = Node::get_special_meaning(pn);
|
||||
if (sm) return sm->sm_func;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -280,11 +280,12 @@ so we will match "Test me with flash cards" but not "Peter tests me with
|
|||
flash cards".
|
||||
|
||||
@<Reject a match with verb in the wrong position@> =
|
||||
if (vf->form_structures & (VO_FS_BIT + VOO_FS_BIT)) {
|
||||
if (pos > Wordings::first_wn(W)) break;
|
||||
} else {
|
||||
if ((vf->form_structures & (VO_FS_BIT + VOO_FS_BIT)) == 0) {
|
||||
if (pos == Wordings::first_wn(W)) break;
|
||||
}
|
||||
}
|
||||
if ((vf->form_structures & (SVO_FS_BIT + SVOO_FS_BIT)) == 0) {
|
||||
if (pos > Wordings::first_wn(W)) break;
|
||||
}
|
||||
|
||||
@ So now we know that the verb definitely appears. We form |ISW| as the
|
||||
wording for the subject phrase and |IOW| the object phrase. Adverbs of
|
||||
|
@ -478,7 +479,7 @@ parse_node *VerbPhrases::accept(verb_form *vf, parse_node *VP_PN, wording *NPs)
|
|||
verb_meaning *vm = NULL;
|
||||
for (verb_sense *vs = (vf)?vf->list_of_senses:NULL; vs; vs = vs->next_sense) {
|
||||
vm = &(vs->vm);
|
||||
special_meaning_holder *sm = VerbMeanings::get_special_meaning_fn(vm);
|
||||
special_meaning_holder *sm = VerbMeanings::get_special_meaning(vm);
|
||||
if (sm) {
|
||||
wording SNPs[MAX_NPS_IN_VP];
|
||||
if (VerbMeanings::get_reversal_status_of_smf(vm)) {
|
||||
|
@ -486,13 +487,15 @@ parse_node *VerbPhrases::accept(verb_form *vf, parse_node *VP_PN, wording *NPs)
|
|||
} else {
|
||||
SNPs[0] = NPs[0]; SNPs[1] = NPs[1]; SNPs[2] = NPs[2];
|
||||
}
|
||||
if ((*(sm->sm_func))(ACCEPT_SMFT, VP_PN, SNPs)) {
|
||||
if (SpecialMeanings::call(sm, ACCEPT_SMFT, VP_PN, SNPs)) {
|
||||
Node::set_special_meaning(VP_PN, sm);
|
||||
return VP_PN;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((VerbMeanings::get_regular_meaning(vm)) &&
|
||||
(Wordings::nonempty(NPs[0])) &&
|
||||
(Wordings::nonempty(NPs[1])) &&
|
||||
(Wordings::empty(NPs[2])) &&
|
||||
(VerbPhrases::default_verb(ACCEPT_SMFT, VP_PN, vm, NPs))) return VP_PN;
|
||||
return NULL;
|
||||
|
|
|
@ -25,6 +25,7 @@ Chapter 2: NP Categories
|
|||
Chapter 3: VP Categories
|
||||
Verbs
|
||||
Verb Meanings
|
||||
Special Meanings
|
||||
Verb Usages
|
||||
Prepositions
|
||||
Adverbs of Certainty
|
||||
|
|
20
services/linguistics-module/Figures/imperatives.txt
Normal file
20
services/linguistics-module/Figures/imperatives.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
(1) greet beth
|
||||
|
||||
SENTENCE_NT'greet beth'
|
||||
VERB_NT'greet' {verb 'greet' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: greets}
|
||||
PROPER_NOUN_NT'beth' {proper nom/acc f s}
|
||||
|
||||
(2) combine the ming vase with the table
|
||||
|
||||
SENTENCE_NT'combine the ming vase with the table'
|
||||
VERB_NT'combine' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combines}
|
||||
COMMON_NOUN_NT'the table' {common nom/acc n s}
|
||||
COMMON_NOUN_NT'the ming vase' {common nom/acc n s}
|
||||
|
||||
(3) combine up the ming vase with the table
|
||||
|
||||
SENTENCE_NT'combine up the ming vase with the table'
|
||||
VERB_NT'combine up' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combinesup}
|
||||
COMMON_NOUN_NT'the table' {common nom/acc n s}
|
||||
COMMON_NOUN_NT'the ming vase' {common nom/acc n s}
|
||||
|
|
@ -1,16 +1,3 @@
|
|||
IS = relationship.
|
||||
HAS = relationship.
|
||||
CARRIES = relationship.
|
||||
KNOWS = relationship.
|
||||
|
||||
be = verb meaning IS with priority 2.
|
||||
have = verb meaning HAS with priority 1.
|
||||
carry = verb meaning CARRIES with priority 3.
|
||||
know = verb meaning KNOWS with priority 3.
|
||||
|
||||
be + on = preposition meaning CARRIES-reversed.
|
||||
be + under = preposition meaning CARRIES.
|
||||
|
||||
Anna = feminine proper noun.
|
||||
Beth = feminine proper noun.
|
||||
Charles = masculine proper noun.
|
||||
|
@ -21,3 +8,28 @@ person = masculine common noun.
|
|||
sailor = masculine common noun.
|
||||
table = neuter common noun.
|
||||
Ming vase = neuter common noun.
|
||||
|
||||
IS = relationship.
|
||||
HAS = relationship.
|
||||
CARRIES = relationship.
|
||||
KNOWS = relationship.
|
||||
COMBINES = special meaning.
|
||||
COMBINESUP = special meaning.
|
||||
GREETS = special meaning.
|
||||
|
||||
be = copular verb with priority 2.
|
||||
have = verb with priority 1.
|
||||
carry = verb with priority 3.
|
||||
greet = verb with priority 3.
|
||||
know = verb with priority 3.
|
||||
combine = verb with priority 3.
|
||||
|
||||
-- be -- = IS.
|
||||
-- have -- = HAS.
|
||||
-- carry -- = CARRIES.
|
||||
-- know -- = KNOWS.
|
||||
-- be on -- = CARRIES-reversed.
|
||||
-- be under -- = CARRIES.
|
||||
combine -- with -- = COMBINES.
|
||||
combine up -- with -- = COMBINESUP.
|
||||
greet -- = GREETS.
|
||||
|
|
|
@ -131,6 +131,12 @@ fresh nodes:
|
|||
|
||||
= (undisplayed text from Figures/usingadverbs.txt)
|
||||
|
||||
@ We can also support imperative verbs, with "special meanings" which are
|
||||
not necessarily relational, and do not always lead to |RELATIONSHIP_NT|
|
||||
subtrees. See //Special Meanings//.
|
||||
|
||||
= (undisplayed text from Figures/imperatives.txt)
|
||||
|
||||
@ That shows the full range of what happens with verb nodes. Turning back
|
||||
to noun phrases, we can have serial lists:
|
||||
|
||||
|
|
|
@ -54,8 +54,8 @@ with the facilities offered by the //syntax// and //words// modules.
|
|||
Typical lines in the vocabulary look like this:
|
||||
= (text)
|
||||
CARRIES = relationship.
|
||||
be = verb meaning IS with priority 2.
|
||||
be + on = preposition meaning CARRIES.
|
||||
be = copular verb with priority 2.
|
||||
-- be on -- = CARRIES-reversed.
|
||||
Beth = feminine proper noun.
|
||||
sailor = neuter common noun.
|
||||
=
|
||||
|
@ -63,11 +63,19 @@ And these are parsed by the following simple Preform grammar:
|
|||
|
||||
=
|
||||
<vocabulary-line> ::=
|
||||
... = relationship | ==> @<Create relationship@>;
|
||||
... = verb meaning <meaning> with priority <cardinal-number> | ==> @<Create verb@>;
|
||||
<existing-verb> + ... = preposition meaning <meaning> | ==> @<Create preposition@>;
|
||||
... = <gender> common noun | ==> @<Create common noun@>;
|
||||
... = <gender> proper noun ==> @<Create proper noun@>;
|
||||
... = relationship | ==> @<Create relationship@>;
|
||||
... = special meaning | ==> @<Create special meaning@>;
|
||||
... = copular verb with priority <cardinal-number> | ==> @<Create copular verb@>;
|
||||
... = verb with priority <cardinal-number> | ==> @<Create verb@>;
|
||||
-- <existing-verb> -- = <meaning> | ==> @<Create SVO usage@>;
|
||||
-- <existing-verb> ### -- = <meaning> | ==> @<Create SVPO usage@>;
|
||||
<existing-verb> -- = <special-meaning> | ==> @<Create VO usage S@>;
|
||||
-- <existing-verb> -- = <special-meaning> | ==> @<Create SVO usage S@>;
|
||||
-- <existing-verb> ### -- = <special-meaning> | ==> @<Create SVPO usage S@>;
|
||||
<existing-verb> -- ### -- = <special-meaning> | ==> @<Create VSPO usage S@>;
|
||||
<existing-verb> ### -- ### -- = <special-meaning> | ==> @<Create VPSPO usage S@>;
|
||||
... = <gender> common noun | ==> @<Create common noun@>;
|
||||
... = <gender> proper noun ==> @<Create proper noun@>;
|
||||
|
||||
<gender> ::=
|
||||
neuter | ==> NEUTER_GENDER
|
||||
|
@ -80,6 +88,12 @@ And these are parsed by the following simple Preform grammar:
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
<special-meaning> internal 1 {
|
||||
*XP = SpecialMeanings::find_from_wording(W);
|
||||
if (*XP) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
<existing-verb> internal {
|
||||
verb *V;
|
||||
LOOP_OVER(V, verb)
|
||||
|
@ -92,23 +106,72 @@ And these are parsed by the following simple Preform grammar:
|
|||
@<Create relationship@> =
|
||||
Relating::new(FW[1]);
|
||||
|
||||
@<Create special meaning@> =
|
||||
text_stream *N = Str::new();
|
||||
WRITE_TO(N, "%W", FW[1]);
|
||||
SpecialMeanings::declare(NULL, N, 0);
|
||||
|
||||
@<Create verb@> =
|
||||
rel *RN = (rel *) RP[1];
|
||||
verb_conjugation *vc =
|
||||
Conjugation::conjugate(
|
||||
WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL));
|
||||
verb *vi = Verbs::new_verb(vc, (RN == R_equality)?TRUE:FALSE);
|
||||
vc->vc_conjugates = vi;
|
||||
VerbUsages::register_all_usages_of_verb(vi, FALSE, R[2], NULL);
|
||||
Verbs::add_form(vi, NULL, NULL, VerbMeanings::regular(RN), SVO_FS_BIT);
|
||||
verb *V = Verbs::new_verb(vc, FALSE);
|
||||
vc->vc_conjugates = V;
|
||||
VerbUsages::register_all_usages_of_verb(V, FALSE, R[1], NULL);
|
||||
|
||||
@<Create preposition@> =
|
||||
word_assemblage wa = WordAssemblages::from_wording(FW[1]);
|
||||
preposition *prep = Prepositions::make(wa, FALSE, NULL);
|
||||
@<Create copular verb@> =
|
||||
verb_conjugation *vc =
|
||||
Conjugation::conjugate(
|
||||
WordAssemblages::from_wording(FW[1]), DefaultLanguage::get(NULL));
|
||||
verb *V = Verbs::new_verb(vc, TRUE);
|
||||
vc->vc_conjugates = V;
|
||||
VerbUsages::register_all_usages_of_verb(V, FALSE, R[1], NULL);
|
||||
|
||||
@<Create SVO usage@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
rel *RN = (rel *) RP[2];
|
||||
Verbs::add_form(V, NULL, NULL, VerbMeanings::regular(RN), SVO_FS_BIT);
|
||||
|
||||
@<Create SVPO usage@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
rel *RN = (rel *) RP[2];
|
||||
word_assemblage wa = WordAssemblages::from_wording(FW[1]);
|
||||
preposition *prep = Prepositions::make(wa, FALSE, NULL);
|
||||
Verbs::add_form(V, prep, NULL, VerbMeanings::regular(RN), SVO_FS_BIT);
|
||||
|
||||
@<Create VO usage S@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
special_meaning_holder *SM = (special_meaning_holder *) RP[2];
|
||||
Verbs::add_form(V, NULL, NULL, VerbMeanings::special(SM), VO_FS_BIT);
|
||||
|
||||
@<Create SVO usage S@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
special_meaning_holder *SM = (special_meaning_holder *) RP[2];
|
||||
Verbs::add_form(V, NULL, NULL, VerbMeanings::special(SM), SVO_FS_BIT);
|
||||
|
||||
@<Create SVPO usage S@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
special_meaning_holder *SM = (special_meaning_holder *) RP[2];
|
||||
word_assemblage wa = WordAssemblages::from_wording(FW[1]);
|
||||
preposition *prep = Prepositions::make(wa, FALSE, NULL);
|
||||
Verbs::add_form(V, prep, NULL, VerbMeanings::special(SM), SVO_FS_BIT);
|
||||
|
||||
@<Create VSPO usage S@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
special_meaning_holder *SM = (special_meaning_holder *) RP[2];
|
||||
word_assemblage wa = WordAssemblages::from_wording(FW[1]);
|
||||
preposition *prep = Prepositions::make(wa, FALSE, NULL);
|
||||
Verbs::add_form(V, NULL, prep, VerbMeanings::special(SM), VOO_FS_BIT);
|
||||
|
||||
@<Create VPSPO usage S@> =
|
||||
verb *V = (verb *) RP[1];
|
||||
special_meaning_holder *SM = (special_meaning_holder *) RP[2];
|
||||
word_assemblage wa1 = WordAssemblages::from_wording(FW[1]);
|
||||
word_assemblage wa2 = WordAssemblages::from_wording(FW[2]);
|
||||
preposition *prep1 = Prepositions::make(wa1, FALSE, NULL);
|
||||
preposition *prep2 = Prepositions::make(wa2, FALSE, NULL);
|
||||
Verbs::add_form(V, prep1, prep2, VerbMeanings::special(SM), VOO_FS_BIT);
|
||||
|
||||
@<Create common noun@> =
|
||||
Nouns::new_common_noun(FW[1], R[1], ADD_TO_LEXICON_NTOPT + WITH_PLURAL_FORMS_NTOPT,
|
||||
NOUN_MC, NULL_GENERAL_POINTER, DefaultLanguage::get(NULL));
|
||||
|
|
|
@ -58,7 +58,8 @@ int main(int argc, char **argv) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
@
|
||||
@ |-trace| turns all verb phrase tracing on; |-viability| just shows the
|
||||
viability map for each sentence.
|
||||
|
||||
@d TRACING_LINGUISTICS_CALLBACK Main::trace_parsing
|
||||
|
||||
|
|
|
@ -79,12 +79,10 @@ rel *Relating::new(wording W) {
|
|||
rel *Relating::find(wording W) {
|
||||
TEMPORARY_TEXT(name)
|
||||
WRITE_TO(name, "%W", W);
|
||||
rel *T, *R = NULL;
|
||||
rel *T;
|
||||
LOOP_OVER(T, rel)
|
||||
if (Str::eq_insensitive(T->debugging_log_name, name))
|
||||
R = T;
|
||||
if (R == NULL)
|
||||
WRITE_TO(STDERR, "unable to find relation named %S\n", name);
|
||||
break;
|
||||
DISCARD_TEXT(name)
|
||||
return R;
|
||||
return T;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
(1) greet beth
|
||||
|
||||
SENTENCE_NT'greet beth'
|
||||
VERB_NT'greet' {verb 'greet' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: greets}
|
||||
PROPER_NOUN_NT'beth' {proper nom/acc f s}
|
||||
|
||||
(2) combine the ming vase with the table
|
||||
|
||||
SENTENCE_NT'combine the ming vase with the table'
|
||||
VERB_NT'combine' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combines}
|
||||
COMMON_NOUN_NT'the table' {common nom/acc n s}
|
||||
COMMON_NOUN_NT'the ming vase' {common nom/acc n s}
|
||||
|
||||
(3) combine up the ming vase with the table
|
||||
|
||||
SENTENCE_NT'combine up the ming vase with the table'
|
||||
VERB_NT'combine up' {verb 'combine' 1p/2p s/p act IS_TENSE +ve + 3p p act IS_TENSE +ve} {special meaning: combinesup}
|
||||
COMMON_NOUN_NT'the table' {common nom/acc n s}
|
||||
COMMON_NOUN_NT'the ming vase' {common nom/acc n s}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
Greet Beth.
|
||||
Combine the Ming vase with the table.
|
||||
Combine up the Ming vase with the table.
|
|
@ -1,2 +1,3 @@
|
|||
|
||||
Beth is a sailor.
|
||||
A Ming vase is carried by Anna.
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
[Pronouns test]
|
||||
|
||||
He knows her.
|
||||
|
||||
She knows him.
|
||||
|
|
|
@ -1,16 +1,3 @@
|
|||
IS = relationship.
|
||||
HAS = relationship.
|
||||
CARRIES = relationship.
|
||||
KNOWS = relationship.
|
||||
|
||||
be = verb meaning IS with priority 2.
|
||||
have = verb meaning HAS with priority 1.
|
||||
carry = verb meaning CARRIES with priority 3.
|
||||
know = verb meaning KNOWS with priority 3.
|
||||
|
||||
be + on = preposition meaning CARRIES-reversed.
|
||||
be + under = preposition meaning CARRIES.
|
||||
|
||||
Anna = feminine proper noun.
|
||||
Beth = feminine proper noun.
|
||||
Charles = masculine proper noun.
|
||||
|
@ -21,3 +8,28 @@ person = masculine common noun.
|
|||
sailor = masculine common noun.
|
||||
table = neuter common noun.
|
||||
Ming vase = neuter common noun.
|
||||
|
||||
IS = relationship.
|
||||
HAS = relationship.
|
||||
CARRIES = relationship.
|
||||
KNOWS = relationship.
|
||||
COMBINES = special meaning.
|
||||
COMBINESUP = special meaning.
|
||||
GREETS = special meaning.
|
||||
|
||||
be = copular verb with priority 2.
|
||||
have = verb with priority 1.
|
||||
carry = verb with priority 3.
|
||||
greet = verb with priority 3.
|
||||
know = verb with priority 3.
|
||||
combine = verb with priority 3.
|
||||
|
||||
-- be -- = IS.
|
||||
-- have -- = HAS.
|
||||
-- carry -- = CARRIES.
|
||||
-- know -- = KNOWS.
|
||||
-- be on -- = CARRIES-reversed.
|
||||
-- be under -- = CARRIES.
|
||||
combine -- with -- = COMBINES.
|
||||
combine up -- with -- = COMBINESUP.
|
||||
greet -- = GREETS.
|
||||
|
|
Loading…
Reference in a new issue