<pclass="purpose">Special sentences creating new either/or properties.</p>
<pclass="commentary firstcommentary"><aid="SP1"class="paragraph-anchor"></a><b>§1. </b>Two special meanings can lead to new either/or properties, or to condition
properties: "X is either Y or Z" and "X can be Y or Z". These have the same
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">switch</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">task</span><spanclass="plain-syntax">) { </span><spanclass="comment-syntax"> "A room is either dark or lighted."</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">switch</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">task</span><spanclass="plain-syntax">) { </span><spanclass="comment-syntax"> "A room can be dark or lighted."</span>
<pclass="commentary firstcommentary"><aid="SP4"class="paragraph-anchor"></a><b>§4. </b>From a syntax point of view, such sentences come in two forms — those which
give a range of possible named alternative states, and those which create
named value properties. We'll take the first of those first.
</p>
<pclass="commentary">We are concerned here with the syntax of sentences like
</p>
<blockquote>
<p>A container can be stout, standard or fragile (this is its strength property).</p>
</blockquote>
<pclass="commentary">The subject (in this example, "a container") is required not to match:
<spanclass="plain-syntax"></span><spanclass="string-syntax">"it's often a little ambiguous to declare properties for 'it' "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"(or some similarly vague pronoun like 'him' or 'her')"</span><spanclass="plain-syntax">,</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"so it seems best to spell this out by saying exactly what the "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"property's owner or owners would be."</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP4">§4</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5"class="paragraph-anchor"></a><b>§5. </b>It might look as if this should always create an either/or property, and
in the speedy/sluggish example that's just what it does, but if there are
three or more alternatives then it has to do something trickier: create a
value property, and a new kind of value of which these alternatives form
the legal range. Such a property is customarily called a "condition" (in
the sense of a state of something, not a test — as in "this antique is in
good condition", not "you can come in on one condition").
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_4"class="named-paragraph-link"><spanclass="named-paragraph">Possession must be time-independent</span><spanclass="named-paragraph-number">5.4</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_3"class="named-paragraph-link"><spanclass="named-paragraph">An optional condition name can only be given to a condition</span><spanclass="named-paragraph-number">5.3</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_5"class="named-paragraph-link"><spanclass="named-paragraph">Allow the word "either" as syntactic sugar when there are two alternatives</span><spanclass="named-paragraph-number">5.5</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_6"class="named-paragraph-link"><spanclass="named-paragraph">Determine the proud owner, and see if it's someone we consider worthy</span><spanclass="named-paragraph-number">5.6</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">owner_infs</span><spanclass="plain-syntax"> == </span><spanclass="identifier-syntax">NULL</span><spanclass="plain-syntax">) </span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_7"class="named-paragraph-link"><spanclass="named-paragraph">Issue a problem message for an unworthy owner</span><spanclass="named-paragraph-number">5.7</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">count</span><spanclass="plain-syntax"><= </span><spanclass="constant-syntax">2</span><spanclass="plain-syntax">) </span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_8"class="named-paragraph-link"><spanclass="named-paragraph">Be very wary about nameclashes among either/or properties like these</span><spanclass="named-paragraph-number">5.8</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_9"class="named-paragraph-link"><spanclass="named-paragraph">Create the property and have the new owner provide it</span><spanclass="named-paragraph-number">5.9</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">count</span><spanclass="plain-syntax"> == </span><spanclass="constant-syntax">2</span><spanclass="plain-syntax">) </span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_10"class="named-paragraph-link"><spanclass="named-paragraph">Make the second option an either/or property which negates the first</span><spanclass="named-paragraph-number">5.10</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">count</span><spanclass="plain-syntax">>= </span><spanclass="constant-syntax">3</span><spanclass="plain-syntax">) </span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_11"class="named-paragraph-link"><spanclass="named-paragraph">Make the three or more options the range of possibilities for this new kind</span><spanclass="named-paragraph-number">5.11</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">NewPropertyRequests::list_length</span><buttonclass="popup"onclick="togglePopup('usagePopup4')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup4">Usage of <spanclass="code-font"><spanclass="function-syntax">NewPropertyRequests::list_length</span></span>:<br/><ahref="3-npr.html#SP5">§5</a></span></button><spanclass="plain-syntax">(</span><spanclass="identifier-syntax">parse_node</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">P</span><spanclass="plain-syntax">) {</span>
<pclass="commentary firstcommentary"><aid="SP5_2"class="paragraph-anchor"></a><b>§5.2. </b>And the following parses the object noun phrase of a "can be" sentence,
which might take forms such as:
</p>
<blockquote>
<p>either speedy or sluggish</p>
</blockquote>
<blockquote>
<p>fast or slow</p>
</blockquote>
<blockquote>
<p>allegro, presto, or adagio (the speed property)</p>
</blockquote>
<blockquote>
<p>allegro, presto, or adagio (this is its speed property)</p>
<ulclass="endnotetexts"><li>This is <ahref="../words-module/4-ap.html"class="internal">Preform grammar</a>, not regular C code.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_3"class="paragraph-anchor"></a><b>§5.3. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">An optional condition name can only be given to a condition</span><spanclass="named-paragraph-number">5.3</span></span><spanclass="Preform-comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"a name can only be supplied using '... (this is...)' when a new property "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"is being made with three or more named alternatives"</span><spanclass="plain-syntax">,</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"whereas here a simpler either/or property is being made with just one or "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"two possibilities - which means these named outcomes are the property names "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"themselves. For instance, 'A book can be mint or foxed' makes two either/or "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"properties, one called 'mint', the other called 'foxed'. So 'A book can "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"be mint or foxed (this is the cover state)' is not allowed."</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_4"class="paragraph-anchor"></a><b>§5.4. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Possession must be time-independent</span><spanclass="named-paragraph-number">5.4</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"only a room, a thing or a kind can have such adjectives applied to it"</span><spanclass="plain-syntax">,</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"and qualifications cannot be used. It makes no sense to say 'An open door "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"can be rickety or sturdy' because the door still has to have the property "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"even at times when it is not open: we must instead just say 'A door can be "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"rickety or sturdy'."</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_5"class="paragraph-anchor"></a><b>§5.5. </b>This allows for natural sentences such as:
</p>
<blockquote>
<p>An animal can be either alive or dead.</p>
</blockquote>
<pclass="commentary">Here "either" has a slight sense of emphasis, implying the exclusivity of the
two choices — the lack of a middle way. That's not useful information for us,
because to Inform all either/or properties have that Aristotelian nature. But
we found in testing that users wrote the word "either" now and then,
regardless of what the documentation said. So we'll allow it but do nothing
differently as a result.
</p>
<pclass="commentary"><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Allow the word "either" as syntactic sugar when there are two alternatives</span><spanclass="named-paragraph-number">5.5</span></span><spanclass="comment-syntax"> =</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_6"class="paragraph-anchor"></a><b>§5.6. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Determine the proud owner, and see if it's someone we consider worthy</span><spanclass="named-paragraph-number">5.6</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_6_2"class="named-paragraph-link"><spanclass="named-paragraph">Disallow this variable as a new owner of a property</span><spanclass="named-paragraph-number">5.6.2</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_6_3"class="named-paragraph-link"><spanclass="named-paragraph">Disallow this as an owner not time-independent</span><spanclass="named-paragraph-number">5.6.3</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_6_1"class="named-paragraph-link"><spanclass="named-paragraph">Disallow this kind as a new owner of an either/or or condition</span><spanclass="named-paragraph-number">5.6.1</span></a></span><spanclass="plain-syntax">;</span>
</pre>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_6_1"class="paragraph-anchor"></a><b>§5.6.1. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Disallow this kind as a new owner of an either/or or condition</span><spanclass="named-paragraph-number">5.6.1</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"The sentence %1 looked to me as if it might be trying to create an either/or "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"property which would be held by all of the values of a rather large kind "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"(%2). But this is a kind which is not allowed to have properties, because "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"the storage requirements would be too difficult. For instance, scenes can "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"have properties like this, but numbers can't: that's because there are only "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"a few, named scenes, but there is an almost unlimited range of numbers. (That "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"doesn't mean you can't create adjectives using 'Definition: ...' - it's "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"only when storage would be needed that this limitation kicks in.)"</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_6">§5.6</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_6_2"class="paragraph-anchor"></a><b>§5.6.2. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Disallow this variable as a new owner of a property</span><spanclass="named-paragraph-number">5.6.2</span></span><spanclass="comment-syntax"> =</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_6">§5.6</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_6_3"class="paragraph-anchor"></a><b>§5.6.3. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Disallow this as an owner not time-independent</span><spanclass="named-paragraph-number">5.6.3</span></span><spanclass="comment-syntax"> =</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_6">§5.6</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_7"class="paragraph-anchor"></a><b>§5.7. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Issue a problem message for an unworthy owner</span><spanclass="named-paragraph-number">5.7</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"only a room, a thing or a kind can have such adjectives applied to it"</span><spanclass="plain-syntax">,</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"so that 'a dead end can be secret' is fine but 'taking can be secret' would "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"not be, since 'taking' is an action and not a room, thing or kind."</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_8"class="paragraph-anchor"></a><b>§5.8. </b>There are seven different ways this can go wrong, and they all share a
"miscellaneous" problem message.
</p>
<pclass="commentary"><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Be very wary about nameclashes among either/or properties like these</span><spanclass="named-paragraph-number">5.8</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_8_1"class="named-paragraph-link"><spanclass="named-paragraph">See if the first option already means something incompatible with this</span><spanclass="named-paragraph-number">5.8.1</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_8_2"class="named-paragraph-link"><spanclass="named-paragraph">See if the second option is "not" plus an existing property</span><spanclass="named-paragraph-number">5.8.2</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_8_3"class="named-paragraph-link"><spanclass="named-paragraph">See if the second option already means something incompatible with this</span><spanclass="named-paragraph-number">5.8.3</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"In %1, you proposed the new either/or property '%2': but %3."</span><spanclass="plain-syntax">);</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_8_1"class="paragraph-anchor"></a><b>§5.8.1. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">See if the first option already means something incompatible with this</span><spanclass="named-paragraph-number">5.8.1</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">error_text</span><spanclass="plain-syntax"> = </span><spanclass="string-syntax">"this already has a meaning as a value property"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">error_text</span><spanclass="plain-syntax"> = </span><spanclass="string-syntax">"this already has a meaning"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"> }</span>
<spanclass="plain-syntax"> }</span>
</pre>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_8">§5.8</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_8_2"class="paragraph-anchor"></a><b>§5.8.2. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">See if the second option is "not" plus an existing property</span><spanclass="named-paragraph-number">5.8.2</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"this is 'not' compounded with an existing either/or "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"property, which would cause horrible ambiguities"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"> }</span>
</pre>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_8">§5.8</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_8_3"class="paragraph-anchor"></a><b>§5.8.3. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">See if the second option already means something incompatible with this</span><spanclass="named-paragraph-number">5.8.3</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">error_text</span><spanclass="plain-syntax"> = </span><spanclass="string-syntax">"this already has a meaning as a value property"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">error_text</span><spanclass="plain-syntax"> = </span><spanclass="string-syntax">"this is not the same negation as the last "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"time this either/or property was used"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"this already has a meaning as an either/or property"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">error_text</span><spanclass="plain-syntax"> = </span><spanclass="string-syntax">"this already has a meaning"</span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"> }</span>
<spanclass="plain-syntax"> }</span>
</pre>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5_8">§5.8</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_9"class="paragraph-anchor"></a><b>§5.9. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Create the property and have the new owner provide it</span><spanclass="named-paragraph-number">5.9</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">prn</span><spanclass="plain-syntax"> == </span><spanclass="identifier-syntax">NULL</span><spanclass="plain-syntax">) </span><spanclass="reserved-syntax">return</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> a problem was thrown</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_10"class="paragraph-anchor"></a><b>§5.10. </b><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Make the second option an either/or property which negates the first</span><spanclass="named-paragraph-number">5.10</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">prnbar</span><spanclass="plain-syntax">) { </span><spanclass="comment-syntax"> i.e., unless that threw a problem message</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_11"class="paragraph-anchor"></a><b>§5.11. </b>An interesting anomaly in the language here is that when an either/or
pair is created, like so:
</p>
<blockquote>
<p>A vehicle can be speedy or sluggish.</p>
</blockquote>
<pclass="commentary">the convention is that the first-named term is the more surprising one,
so that the default is the second. That seems natural, because if there's
just one named alternative, like this:
</p>
<blockquote>
<p>A vehicle can be fabulously racy.</p>
</blockquote>
<pclass="commentary">then the default is for this property not to be had. But when there are
three or more alternatives, like so:
</p>
<blockquote>
<p>A vehicle can be petrol, diesel, electric or hybrid.</p>
</blockquote>
<pclass="commentary">the default is the first option — petrol. This accords with the
convention that the first-created value for an enumerated kind is always
its default value.
</p>
<pclass="commentary">But the beta-testers felt that this was an anomaly in the language. I
suspect they're right, but it isn't obvious to me what a better system
would be. And there does seem to be some subtle difference in English
meaning as to the suggested likelihood of possibilities, here. "You can
be useful" has the sense that you aren't useful right at the moment,
but "it can be blue, green or purple" tends to favour the front end
of the list as likelier, if anything — as when people offer an
exaggeratedly unlikely final choice: "you can be black, white, brown,
or sky blue pink".
</p>
<pclass="commentary"><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Make the three or more options the range of possibilities for this new kind</span><spanclass="named-paragraph-number">5.11</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_11_1"class="named-paragraph-link"><spanclass="named-paragraph">Disallow this option name if it clashes with something non-adjectival</span><spanclass="named-paragraph-number">5.11.1</span></a></span><spanclass="plain-syntax">;</span>
<spanclass="plain-syntax"></span><spanclass="named-paragraph-container code-font"><ahref="3-npr.html#SP5_11_2"class="named-paragraph-link"><spanclass="named-paragraph">Disallow this option name if it clashes with an either-or</span><spanclass="named-paragraph-number">5.11.2</span></a></span><spanclass="plain-syntax">;</span>
<ulclass="endnotetexts"><li>This code is used in <ahref="3-npr.html#SP5">§5</a>.</li></ul>
<pclass="commentary firstcommentary"><aid="SP5_11_1"class="paragraph-anchor"></a><b>§5.11.1. </b>The interesting thing here is that we do allow name-clashes with either/or
properties, with other condition values (since those are adjectival and
therefore parse to description specifications), and indeed adjectives
in general. What we don't want is for it to clash with a noun, because then
there would be horrible ambiguities in parsing.
</p>
<pclass="commentary"><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Disallow this option name if it clashes with something non-adjectival</span><spanclass="named-paragraph-number">5.11.1</span></span><spanclass="comment-syntax"> =</span>
<pclass="commentary"><spanclass="named-paragraph-container code-font"><spanclass="named-paragraph-defn">Disallow this option name if it clashes with an either-or</span><spanclass="named-paragraph-number">5.11.2</span></span><spanclass="comment-syntax"> =</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"In %1, one of the values you supply as a possibility is '%2', but this "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"already has a meaning as an either-or property. The same adjective "</span>
<spanclass="plain-syntax"></span><spanclass="string-syntax">"can't be used both ways, so you'll have to use a different word here."</span><spanclass="plain-syntax">);</span>