1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-08 18:14:21 +03:00
inform7/docs/linguistics-module/4-prp.html
2019-04-22 15:42:10 +01:00

260 lines
28 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>4/vu</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
<link href="inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>
<body>
<!--Weave of '4/prp' generated by 7-->
<ul class="crumbs"><li><a href="../webs.html">&#9733;</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#4">Chapter 4: Grammatical Categories II</a></li><li><b>Prepositions</b></li></ul><p class="purpose">To define prepositional forms.</p>
<ul class="toc"><li><a href="#SP1">&#167;1. Prepositions</a></li><li><a href="#SP4">&#167;4. Logging</a></li><li><a href="#SP5">&#167;5. Creation</a></li><li><a href="#SP7">&#167;7. Parsing source text against preposition usages</a></li></ul><hr class="tocbar">
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. Prepositions. </b>These are words which introduce relative clauses, or mark the text following
them as having some role; in more inflected languages, noun cases might be
used for some of the same purposes. For example, in the sentence "Peter is
in the Library", the word "in" is a preposition (as it is twice in this
sentence, too). Prepositions often occur in combination with the copular
verb "to be" like this, but not always. Inform's standard usage "X substitutes
for Y" couples the preposition "for" to the verb "to substitute".
</p>
<p class="inwebparagraph">That all sounds linguistically sound, but we're on dodgier ground in how
we analyse text like "X is contained by Y". We're going to regard this as
the verb "to be" combined with the preposition "contained by", for
implementation reasons.
</p>
<p class="inwebparagraph">Note that the following says nothing about the preposition's meaning, which
will vary depending on the verb it's coupled with.
</p>
<pre class="display">
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">preposition_identity</span><span class="plain"> {</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">word_assemblage</span><span class="plain"> </span><span class="identifier">prep_text</span><span class="plain">;</span>
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">CORE_MODULE</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">lexicon_entry</span><span class="plain"> *</span><span class="identifier">prep_lex_entry</span><span class="plain">; </span> <span class="comment">for use when indexing</span>
<span class="plain">#</span><span class="identifier">endif</span>
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">where_prep_created</span><span class="plain">; </span> <span class="comment">for use if problem messages needed</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">allow_unexpected_upper_case</span><span class="plain">; </span> <span class="comment">for preps like "in Cahoots With"</span>
<span class="identifier">MEMORY_MANAGEMENT</span>
<span class="plain">} </span><span class="reserved">preposition_identity</span><span class="plain">;</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The structure preposition_identity is accessed in 4/vrb, 4/vu, 5/vp and here.</p>
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. </b>As with verbs, "prepositions" can be long, but are not unlimited.
</p>
<pre class="definitions">
<span class="definitionkeyword">define</span> <span class="constant">MAX_WORDS_IN_PREPOSITION</span><span class="plain"> (</span><span class="identifier">MAX_WORDS_IN_ASSEMBLAGE</span><span class="plain"> - 2)</span>
</pre>
<p class="inwebparagraph"><a id="SP3"></a><b>&#167;3. </b>Preposition words are marked for efficiency of parsing:
</p>
<pre class="definitions">
<span class="definitionkeyword">define</span> <span class="constant">PREPOSITION_MC</span><span class="plain"> 0</span><span class="identifier">x00800000</span><span class="plain"> </span> <span class="comment">a word which might introduce a relative clause</span>
</pre>
<p class="inwebparagraph"><a id="SP4"></a><b>&#167;4. Logging. </b></p>
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Prepositions::log</span><span class="plain">(</span><span class="identifier">OUTPUT_STREAM</span><span class="plain">, </span><span class="reserved">void</span><span class="plain"> *</span><span class="identifier">vprep</span><span class="plain">) {</span>
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain"> = (</span><span class="reserved">preposition_identity</span><span class="plain"> *) </span><span class="identifier">vprep</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">prep</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) { </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"___"</span><span class="plain">); }</span>
<span class="reserved">else</span><span class="plain"> { </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"p=%A"</span><span class="plain">, &amp;(</span><span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_text</span><span class="plain">)); }</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Prepositions::log is used in 1/lm (<a href="1-lm.html#SP3_4">&#167;3.4</a>).</p>
<p class="inwebparagraph"><a id="SP5"></a><b>&#167;5. Creation. </b>Prepositions are completely determined by their wording: the "for" attached
to one verb is the same preposition as the "for" attached to another one.
</p>
<pre class="display">
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="functiontext">Prepositions::make</span><span class="plain">(</span><span class="identifier">word_assemblage</span><span class="plain"> </span><span class="identifier">wa</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">unexpected_upper_casing_used</span><span class="plain">) {</span>
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">)</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">WordAssemblages::compare</span><span class="plain">(&amp;(</span><span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_text</span><span class="plain">), &amp;</span><span class="identifier">wa</span><span class="plain">))</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">prep</span><span class="plain">;</span>
<span class="identifier">prep</span><span class="plain"> = </span><span class="identifier">CREATE</span><span class="plain">(</span><span class="reserved">preposition_identity</span><span class="plain">);</span>
<span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_text</span><span class="plain"> = </span><span class="identifier">wa</span><span class="plain">;</span>
<span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;where_prep_created</span><span class="plain"> = </span><span class="identifier">set_where_created</span><span class="plain">;</span>
<span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;allow_unexpected_upper_case</span><span class="plain"> = </span><span class="identifier">unexpected_upper_casing_used</span><span class="plain">;</span>
<span class="functiontext">Prepositions::mark_as_preposition</span><span class="plain">(</span><span class="identifier">WordAssemblages::first_word</span><span class="plain">(&amp;</span><span class="identifier">wa</span><span class="plain">));</span>
<span class="plain">#</span><span class="identifier">ifdef</span><span class="plain"> </span><span class="identifier">CORE_MODULE</span>
<span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_lex_entry</span><span class="plain"> = </span><span class="identifier">Index::Lexicon::new_main_verb</span><span class="plain">(</span><span class="identifier">wa</span><span class="plain">, </span><span class="identifier">PREP_LEXE</span><span class="plain">);</span>
<span class="plain">#</span><span class="identifier">endif</span>
<span class="identifier">LOGIF</span><span class="plain">(</span><span class="identifier">VERB_FORMS</span><span class="plain">, </span><span class="string">"New preposition: $p\</span><span class="plain">n</span><span class="string">"</span><span class="plain">, </span><span class="identifier">prep</span><span class="plain">);</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">prep</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Prepositions::make is used in 4/vu (<a href="4-vu.html#SP7_1">&#167;7.1</a>, <a href="4-vu.html#SP8">&#167;8</a>).</p>
<p class="inwebparagraph"><a id="SP6"></a><b>&#167;6. </b>Two utility routines:
</p>
<pre class="display">
<span class="identifier">parse_node</span><span class="plain"> *</span><span class="functiontext">Prepositions::get_where_pu_created</span><span class="plain">(</span><span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;where_prep_created</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Prepositions::length</span><span class="plain">(</span><span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain">) {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">prep</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> 0;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">WordAssemblages::length</span><span class="plain">(&amp;(</span><span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_text</span><span class="plain">));</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Prepositions::get_where_pu_created appears nowhere else.</p>
<p class="endnote">The function Prepositions::length is used in 4/vrb (<a href="4-vrb.html#SP12_1_2">&#167;12.1.2</a>).</p>
<p class="inwebparagraph"><a id="SP7"></a><b>&#167;7. Parsing source text against preposition usages. </b>The following parses to see if the preposition occurs at the beginning of,
perhaps entirely filling, the given wording. We return the word number after
the preposition ends, which might therefore be just outside the range.
</p>
<pre class="display">
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">Prepositions::parse_prep_against</span><span class="plain">(</span><span class="identifier">wording</span><span class="plain"> </span><span class="identifier">W</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain">) {</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">WordAssemblages::parse_as_weakly_initial_text</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, &amp;(</span><span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;prep_text</span><span class="plain">), </span><span class="identifier">EMPTY_WORDING</span><span class="plain">,</span>
<span class="identifier">prep</span><span class="plain">-</span><span class="element">&gt;allow_unexpected_upper_case</span><span class="plain">, </span><span class="identifier">TRUE</span><span class="plain">);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Prepositions::parse_prep_against is used in <a href="#SP8">&#167;8</a>, <a href="#SP9">&#167;9</a>, <a href="#SP10">&#167;10</a>.</p>
<p class="inwebparagraph"><a id="SP8"></a><b>&#167;8. </b>The following nonterminal is currently not used. In principle it spots any
preposition, but note that it does so by testing in creation order.
</p>
<pre class="display">
<span class="plain">&lt;</span><span class="identifier">preposition</span><span class="plain">&gt; </span><span class="identifier">internal</span><span class="plain"> ? {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Vocabulary::test_flags</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">), </span><span class="constant">PREPOSITION_MC</span><span class="plain">) == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain">;</span>
<span class="identifier">LOOP_OVER</span><span class="plain">(</span><span class="identifier">prep</span><span class="plain">, </span><span class="reserved">preposition_identity</span><span class="plain">) {</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext">Prepositions::parse_prep_against</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">prep</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">i</span><span class="plain">&gt;</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) &amp;&amp; (</span><span class="identifier">i</span><span class="plain">&lt;=</span><span class="identifier">Wordings::last_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)+1)) {</span>
<span class="plain">*</span><span class="identifier">XP</span><span class="plain"> = </span><span class="identifier">prep</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">-1;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP9"></a><b>&#167;9. </b>It's often useful to look for prepositions which can be combined with the
copular verb "to be". These are tested in order of the list of possible
verb forms for "to be', which is constructed with longer prepositions first.
So it will find the longest match.
</p>
<pre class="display">
<span class="plain">&lt;</span><span class="identifier">copular</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt; </span><span class="identifier">internal</span><span class="plain"> ? {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">copular_verb</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Vocabulary::test_flags</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">), </span><span class="constant">PREPOSITION_MC</span><span class="plain">) == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">verb_form</span><span class="plain"> *</span><span class="identifier">vf</span><span class="plain"> = </span><span class="identifier">copular_verb</span><span class="plain">-</span><span class="element">&gt;list_of_forms</span><span class="plain">; </span><span class="identifier">vf</span><span class="plain">; </span><span class="identifier">vf</span><span class="plain">=</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;next_form</span><span class="plain">) {</span>
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain"> = </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;preposition</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">prep</span><span class="plain">) &amp;&amp; (</span><span class="functiontext">VerbMeanings::is_meaningless</span><span class="plain">(&amp;(</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;list_of_senses</span><span class="plain">-</span><span class="element">&gt;vm</span><span class="plain">)) == </span><span class="identifier">FALSE</span><span class="plain">)) {</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext">Prepositions::parse_prep_against</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">prep</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">i</span><span class="plain">&gt;</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) &amp;&amp; (</span><span class="identifier">i</span><span class="plain">&lt;=</span><span class="identifier">Wordings::last_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)+1)) {</span>
<span class="plain">*</span><span class="identifier">XP</span><span class="plain"> = </span><span class="identifier">prep</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">-1;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP10"></a><b>&#167;10. </b>This is exactly similar, except that it looks for prepositions combined
with a given "permitted verb".
</p>
<pre class="display">
<span class="plain">&lt;</span><span class="identifier">permitted</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt; </span><span class="identifier">internal</span><span class="plain"> ? {</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">Vocabulary::test_flags</span><span class="plain">(</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">), </span><span class="constant">PREPOSITION_MC</span><span class="plain">) == </span><span class="identifier">FALSE</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">permitted_verb_identity</span><span class="plain">)</span>
<span class="reserved">for</span><span class="plain"> (</span><span class="reserved">verb_form</span><span class="plain"> *</span><span class="identifier">vf</span><span class="plain"> = </span><span class="identifier">permitted_verb_identity</span><span class="plain">-</span><span class="element">&gt;list_of_forms</span><span class="plain">; </span><span class="identifier">vf</span><span class="plain">; </span><span class="identifier">vf</span><span class="plain">=</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;next_form</span><span class="plain">) {</span>
<span class="reserved">preposition_identity</span><span class="plain"> *</span><span class="identifier">prep</span><span class="plain"> = </span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;preposition</span><span class="plain">;</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">prep</span><span class="plain">) &amp;&amp; (</span><span class="functiontext">VerbMeanings::is_meaningless</span><span class="plain">(&amp;(</span><span class="identifier">vf</span><span class="plain">-</span><span class="element">&gt;list_of_senses</span><span class="plain">-</span><span class="element">&gt;vm</span><span class="plain">)) == </span><span class="identifier">FALSE</span><span class="plain">)) {</span>
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">i</span><span class="plain"> = </span><span class="functiontext">Prepositions::parse_prep_against</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">, </span><span class="identifier">prep</span><span class="plain">);</span>
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">i</span><span class="plain">&gt;</span><span class="identifier">Wordings::first_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)) &amp;&amp; (</span><span class="identifier">i</span><span class="plain">&lt;=</span><span class="identifier">Wordings::last_wn</span><span class="plain">(</span><span class="identifier">W</span><span class="plain">)+1)) {</span>
<span class="plain">*</span><span class="identifier">XP</span><span class="plain"> = </span><span class="identifier">prep</span><span class="plain">;</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">i</span><span class="plain">-1;</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="plain">}</span>
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">FALSE</span><span class="plain">;</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP11"></a><b>&#167;11. </b></p>
<pre class="display">
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Prepositions::mark_for_preform</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="plain">&lt;</span><span class="identifier">relative</span><span class="plain">-</span><span class="identifier">clause</span><span class="plain">-</span><span class="identifier">marker</span><span class="plain">&gt;-&gt;</span><span class="identifier">flag_words_in_production</span><span class="plain"> = </span><span class="constant">PREPOSITION_MC</span><span class="plain">;</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Prepositions::preform_optimiser</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
<span class="identifier">Preform::mark_nt_as_requiring_itself</span><span class="plain">(&lt;</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="identifier">Preform::mark_nt_as_requiring_itself</span><span class="plain">(&lt;</span><span class="identifier">copular</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="identifier">Preform::mark_nt_as_requiring_itself</span><span class="plain">(&lt;</span><span class="identifier">permitted</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="plain">}</span>
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">Prepositions::mark_as_preposition</span><span class="plain">(</span><span class="identifier">vocabulary_entry</span><span class="plain"> *</span><span class="identifier">ve</span><span class="plain">) {</span>
<span class="identifier">Vocabulary::set_flags</span><span class="plain">(</span><span class="identifier">ve</span><span class="plain">, </span><span class="constant">PREPOSITION_MC</span><span class="plain">);</span>
<span class="identifier">Preform::set_nt_incidence</span><span class="plain">(</span><span class="identifier">ve</span><span class="plain">, &lt;</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="identifier">Preform::set_nt_incidence</span><span class="plain">(</span><span class="identifier">ve</span><span class="plain">, &lt;</span><span class="identifier">copular</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="identifier">Preform::set_nt_incidence</span><span class="plain">(</span><span class="identifier">ve</span><span class="plain">, &lt;</span><span class="identifier">permitted</span><span class="plain">-</span><span class="identifier">preposition</span><span class="plain">&gt;);</span>
<span class="plain">}</span>
</pre>
<p class="inwebparagraph"></p>
<p class="endnote">The function Prepositions::mark_for_preform is used in 1/lm (<a href="1-lm.html#SP3">&#167;3</a>).</p>
<p class="endnote">The function Prepositions::preform_optimiser is used in 1/lm (<a href="1-lm.html#SP4">&#167;4</a>).</p>
<p class="endnote">The function Prepositions::mark_as_preposition is used in <a href="#SP5">&#167;5</a>.</p>
<hr class="tocbar">
<ul class="toc"><li><a href="4-vu.html">Back to 'Verb Usages'</a></li><li><a href="4-aoc.html">Continue with 'Adverbs of Certainty'</a></li></ul><hr class="tocbar">
<!--End of weave-->
</body>
</html>