mirror of
https://github.com/ganelson/inform.git
synced 2024-07-08 18:14:21 +03:00
243 lines
28 KiB
HTML
243 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>5/dgr</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 '5/vm' generated by 7-->
|
|
<ul class="crumbs"><li><a href="../webs.html">★</a></li><li><a href="index.html">linguistics</a></li><li><a href="index.html#5">Chapter 5: Diagramming Sentences</a></li><li><b>Verb Meanings</b></li></ul><p class="purpose">To abstract the meaning of a verb.</p>
|
|
|
|
<ul class="toc"><li><a href="#SP1">§1. Abstracting meaning</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="inwebparagraph"><a id="SP1"></a><b>§1. Abstracting meaning. </b>Recall that each verb can have multiple forms: for example, "to go"
|
|
might occur in three forms — "go" alone, "go to", or "go from", which
|
|
are distinguished in English by the use of prepositions such as "to" and
|
|
"from". Each of these three verb forms has its own meaning.
|
|
</p>
|
|
|
|
<p class="inwebparagraph">However, we can also use indirection to tie one meaning to another. This is
|
|
used, for example, to specify the meaning of "A is liking B". We regard
|
|
this as "to be" plus copular preposition "liking"; or sometimes the verb
|
|
is invisible, as in "someone liking B", which implicitly means "someone
|
|
who is liking B". The meaning of "to be" plus "liking" is set by
|
|
indirection so that it is always the same as "likes". Similarly, the
|
|
meaning of "liked by" is set to be the same as "likes", but reversed
|
|
(in that its subject and object must be switched). This ensures that
|
|
if the meaning of "likes" changes, its associated usages "is liking"
|
|
and "is liked by" automatically change with it.
|
|
</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP2"></a><b>§2. </b>The "meaning" is what state or change a verb describes. In Inform, some
|
|
verbs used in assertion sentences have special meanings, instructing the
|
|
compiler to do something: for example,
|
|
</p>
|
|
|
|
<blockquote>
|
|
<p>To disavow is a verb.</p>
|
|
|
|
</blockquote>
|
|
|
|
<p class="inwebparagraph">But most sentences set the state of some relation:
|
|
</p>
|
|
|
|
<blockquote>
|
|
<p>The bag is on the table.</p>
|
|
|
|
</blockquote>
|
|
|
|
<p class="inwebparagraph">Our abstraction stays close to that. We're going to assume that most
|
|
verbs have a regular meaning which can be represented in a piece of
|
|
data (of type <code class="display"><span class="extract">VERB_MEANING_TYPE</span></code>, which for Inform 7 means a binary
|
|
predicate), while a few have special meanings which can only be handled
|
|
ad-hoc by a function. Here's the type for such a function:
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">int</span><span class="plain"> (*</span><span class="identifier">special_meaning_fn</span><span class="plain">)(</span><span class="reserved">int</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *, </span><span class="identifier">wording</span><span class="plain"> *);</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>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 following enumeration,
|
|
and the only task used by the Linguistics module is <code class="display"><span class="extract">ACCEPT_SMFT</span></code>. 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 <code class="display"><span class="extract">TRUE</span></code>, or else return <code class="display"><span class="extract">FALSE</span></code> to
|
|
say that the usage is invalid: see Verb Phrases for more.
|
|
</p>
|
|
|
|
|
|
<pre class="definitions">
|
|
<span class="definitionkeyword">enum</span> <span class="constant">ACCEPT_SMFT</span><span class="definitionkeyword"> from </span><span class="constant">0</span>
|
|
</pre>
|
|
|
|
<pre class="display">
|
|
<span class="reserved">typedef</span><span class="plain"> </span><span class="reserved">struct</span><span class="plain"> </span><span class="reserved">verb_meaning</span><span class="plain"> {</span>
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">reversed</span><span class="plain">;</span>
|
|
<span class="identifier">VERB_MEANING_TYPE</span><span class="plain"> *</span><span class="identifier">regular_meaning</span><span class="plain">; </span> <span class="comment">in I7, this will be a binary predicate</span>
|
|
<span class="reserved">int</span><span class="plain"> (*</span><span class="identifier">special_meaning</span><span class="plain">)(</span><span class="reserved">int</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *, </span><span class="identifier">wording</span><span class="plain"> *); </span> <span class="comment">(for tangling reasons, can't use typedef here)</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="reserved">verb_identity</span><span class="plain"> *</span><span class="identifier">take_meaning_from</span><span class="plain">; </span> <span class="comment">"to like", in the example above</span>
|
|
<span class="reserved">struct</span><span class="plain"> </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">where_assigned</span><span class="plain">; </span> <span class="comment">at which sentence this is assigned to a form</span>
|
|
<span class="plain">} </span><span class="reserved">verb_meaning</span><span class="plain">;</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The structure verb_meaning is private to this section.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP4"></a><b>§4. </b>Here's how the indirection trick is done: if <code class="display"><span class="extract">vm</span></code> takes meaning from,
|
|
say, "to like", then we replace it with the meaning of "likes" plus no
|
|
preposition
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="functiontext">VerbMeanings::indirect_meaning</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">vm</span><span class="plain">) && (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>take_meaning_from</span><span class="plain">)) {</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="functiontext">Verbs::regular_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>take_meaning_from</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">, </span><span class="identifier">NULL</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function VerbMeanings::indirect_meaning is used in <a href="#SP5">§5</a>.</p>
|
|
|
|
<p class="inwebparagraph"><a id="SP5"></a><b>§5. </b>All VMs begin as meaningless, which indicates (e.g.) that no meaning
|
|
has been specified.
|
|
</p>
|
|
|
|
|
|
<pre class="display">
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="functiontext">VerbMeanings::meaninglessness</span><span class="plain">(</span><span class="reserved">void</span><span class="plain">) {</span>
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.regular_meaning</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.special_meaning</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.reversed</span><span class="plain"> = </span><span class="identifier">FALSE</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.take_meaning_from</span><span class="plain"> = </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.where_assigned</span><span class="plain"> = </span><span class="identifier">current_sentence</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="functiontext">VerbMeanings::is_meaningless</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">) {</span>
|
|
<span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::indirect_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">TRUE</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>regular_meaning</span><span class="plain"> == </span><span class="identifier">NULL</span><span class="plain">) && (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>special_meaning</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">TRUE</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>
|
|
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="functiontext">VerbMeanings::new</span><span class="plain">(</span><span class="identifier">VERB_MEANING_TYPE</span><span class="plain"> *</span><span class="identifier">rel</span><span class="plain">, </span><span class="identifier">special_meaning_fn</span><span class="plain"> </span><span class="identifier">soa</span><span class="plain">) {</span>
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::meaninglessness</span><span class="plain">();</span>
|
|
<span class="identifier">vm</span><span class="element">.regular_meaning</span><span class="plain"> = </span><span class="identifier">rel</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.special_meaning</span><span class="plain"> = </span><span class="identifier">soa</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="functiontext">VerbMeanings::special</span><span class="plain">(</span><span class="identifier">special_meaning_fn</span><span class="plain"> </span><span class="identifier">soa</span><span class="plain">) {</span>
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::meaninglessness</span><span class="plain">();</span>
|
|
<span class="identifier">vm</span><span class="element">.special_meaning</span><span class="plain"> = </span><span class="identifier">soa</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="functiontext">VerbMeanings::new_indirection</span><span class="plain">(</span><span class="reserved">verb_identity</span><span class="plain"> *</span><span class="identifier">from</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> </span><span class="identifier">reversed</span><span class="plain">) {</span>
|
|
<span class="reserved">verb_meaning</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::meaninglessness</span><span class="plain">();</span>
|
|
<span class="identifier">vm</span><span class="element">.reversed</span><span class="plain"> = </span><span class="identifier">reversed</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="element">.take_meaning_from</span><span class="plain"> = </span><span class="identifier">from</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="identifier">VERB_MEANING_TYPE</span><span class="plain"> *</span><span class="functiontext">VerbMeanings::get_relational_meaning</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">int</span><span class="plain"> </span><span class="identifier">rev</span><span class="plain"> = </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>reversed</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::indirect_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">VerbMeanings::is_meaningless</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">)) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="identifier">VERB_MEANING_TYPE</span><span class="plain"> *</span><span class="identifier">rel</span><span class="plain"> = </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>regular_meaning</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rel</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">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>reversed</span><span class="plain">) </span><span class="identifier">rev</span><span class="plain"> = (</span><span class="identifier">rev</span><span class="plain">)?</span><span class="identifier">FALSE</span><span class="plain">:</span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">rev</span><span class="plain">) </span><span class="identifier">rel</span><span class="plain"> = </span><span class="identifier">VERB_MEANING_REVERSAL</span><span class="plain">(</span><span class="identifier">rel</span><span class="plain">);</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">rel</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="identifier">special_meaning_fn</span><span class="plain"> </span><span class="functiontext">VerbMeanings::get_special_meaning</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">, </span><span class="reserved">int</span><span class="plain"> *</span><span class="identifier">rev</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">NULL</span><span class="plain">;</span>
|
|
<span class="plain">*</span><span class="identifier">rev</span><span class="plain"> = </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>reversed</span><span class="plain">;</span>
|
|
<span class="identifier">vm</span><span class="plain"> = </span><span class="functiontext">VerbMeanings::indirect_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">NULL</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>reversed</span><span class="plain">) *</span><span class="identifier">rev</span><span class="plain"> = (*</span><span class="identifier">rev</span><span class="plain">)?</span><span class="identifier">FALSE</span><span class="plain">:</span><span class="identifier">TRUE</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>special_meaning</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">VerbMeanings::add_special</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">, </span><span class="identifier">special_meaning_fn</span><span class="plain"> </span><span class="identifier">spec</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">) </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>special_meaning</span><span class="plain"> = </span><span class="identifier">spec</span><span class="plain">;</span>
|
|
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"assigned special to null meaning"</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="identifier">parse_node</span><span class="plain"> *</span><span class="functiontext">VerbMeanings::get_where_assigned</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">) </span><span class="reserved">return</span><span class="plain"> </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>where_assigned</span><span class="plain">;</span>
|
|
<span class="reserved">return</span><span class="plain"> </span><span class="identifier">NULL</span><span class="plain">;</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">VerbMeanings::set_where_assigned</span><span class="plain">(</span><span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain">, </span><span class="identifier">parse_node</span><span class="plain"> *</span><span class="identifier">pn</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">) </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>where_assigned</span><span class="plain"> = </span><span class="identifier">pn</span><span class="plain">;</span>
|
|
<span class="reserved">else</span><span class="plain"> </span><span class="identifier">internal_error</span><span class="plain">(</span><span class="string">"assigned location to null meaning"</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
|
|
<span class="reserved">void</span><span class="plain"> </span><span class="functiontext">VerbMeanings::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">vvm</span><span class="plain">) {</span>
|
|
<span class="reserved">verb_meaning</span><span class="plain"> *</span><span class="identifier">vm</span><span class="plain"> = (</span><span class="reserved">verb_meaning</span><span class="plain"> *) </span><span class="identifier">vvm</span><span class="plain">;</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</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">"<none>"</span><span class="plain">); </span><span class="reserved">return</span><span class="plain">; }</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>reversed</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"reversed-"</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>take_meaning_from</span><span class="plain">) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"<$w>="</span><span class="plain">, </span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>take_meaning_from</span><span class="plain">);</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">VerbMeanings::get_relational_meaning</span><span class="plain">(</span><span class="identifier">vm</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">WRITE</span><span class="plain">(</span><span class="string">"(%S)"</span><span class="plain">, </span><span class="functiontext">VerbMeanings::get_relational_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">)-></span><span class="identifier">debugging_log_name</span><span class="plain">);</span>
|
|
<span class="plain">#</span><span class="reserved">else</span>
|
|
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"(relation)"</span><span class="plain">);</span>
|
|
<span class="plain">#</span><span class="identifier">endif</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>special_meaning</span><span class="plain">) {</span>
|
|
<span class="reserved">if</span><span class="plain"> (</span><span class="functiontext">VerbMeanings::get_relational_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">)) </span><span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"/"</span><span class="plain">);</span>
|
|
<span class="identifier">WRITE</span><span class="plain">(</span><span class="string">"(special)"</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
<span class="reserved">if</span><span class="plain"> ((</span><span class="functiontext">VerbMeanings::get_relational_meaning</span><span class="plain">(</span><span class="identifier">vm</span><span class="plain">) == </span><span class="identifier">NULL</span><span class="plain">) && (</span><span class="identifier">vm</span><span class="plain">-</span><span class="element">>special_meaning</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">"(meaningless)"</span><span class="plain">);</span>
|
|
<span class="plain">}</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="endnote">The function VerbMeanings::meaninglessness is used in 4/vrb (<a href="4-vrb.html#SP4">§4</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::is_meaningless is used in 4/vrb (<a href="4-vrb.html#SP12">§12</a>, <a href="4-vrb.html#SP12_2">§12.2</a>), 4/vu (<a href="4-vu.html#SP15">§15</a>), 4/prp (<a href="4-prp.html#SP9">§9</a>, <a href="4-prp.html#SP10">§10</a>), 5/vp (<a href="5-vp.html#SP7_3_1">§7.3.1</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::new appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::special appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::new_indirection is used in 4/vu (<a href="4-vu.html#SP7_1">§7.1</a>, <a href="4-vu.html#SP8">§8</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::get_relational_meaning is used in 4/vu (<a href="4-vu.html#SP13">§13</a>), 5/np (<a href="5-np.html#SP13_1">§13.1</a>), 5/vp (<a href="5-vp.html#SP7_3_1_2_2">§7.3.1.2.2</a>, <a href="5-vp.html#SP9_1">§9.1</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::get_special_meaning is used in 4/vrb (<a href="4-vrb.html#SP14">§14</a>), 5/vp (<a href="5-vp.html#SP8">§8</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::add_special appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::get_where_assigned appears nowhere else.</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::set_where_assigned is used in 4/vrb (<a href="4-vrb.html#SP12">§12</a>).</p>
|
|
|
|
<p class="endnote">The function VerbMeanings::log is used in 1/lm (<a href="1-lm.html#SP3_4">§3.4</a>).</p>
|
|
|
|
<hr class="tocbar">
|
|
<ul class="toc"><li><a href="5-dgr.html">Back to 'Diagrams'</a></li><li><a href="5-np.html">Continue with 'Noun Phrases'</a></li></ul><hr class="tocbar">
|
|
<!--End of weave-->
|
|
</body>
|
|
</html>
|
|
|