ExceptResolver class | parser.t[6765]

Exception list resolver. We use this type of resolution for noun phrases in the "but" list of an "all but" construct.

We scope the "all but" list to the objects in the "all" list, since there's no point in excluding objects that aren't in the "all" list. In addition, if a phrase in the exclusion list matches more than one object in the "all" list, we consider it a match to all of those objects, even if it's a definite phrase - this means that items in the "but" list are never ambiguous.

`class ExceptResolver : ProxyResolver`

Superclass Tree (in declaration order)

`ExceptResolver`
`ProxyResolver`
`object`

Subclass Tree

(none)

Global Objects

(none)

Summary of Properties

`isSubResolver mainList mainListText origResolver`

``

Summary of Methods

`construct filterAmbiguousEquivalents filterAmbiguousNounPhrase filterPluralPhrase getAll getQualifierResolver matchName objInScope`

Inherited from `ProxyResolver` :
`getPossessiveResolver propNotDefined`

Properties

`isSubResolver` | `parser.t[6777]`

we're a sub-phrase resolver

`mainList` | `parser.t[6842]`

the main list from which we're excluding things

`mainListText` | `parser.t[6845]`

the original text for the main list

`origResolver` | `parser.t[6848]`

the original underlying resolver

Methods

`construct (mainList, mainListText, resolver)`OVERRIDDEN | `parser.t[6766]`

no description available

`filterAmbiguousEquivalents (lst, np)` | `parser.t[6813]`

filter ambiguous equivalents

`filterAmbiguousNounPhrase (lst, requiredNum, np)` | `parser.t[6824]`

filter an ambiguous noun list

`filterPluralPhrase (lst, np)` | `parser.t[6835]`

filter a plural noun list

`getAll (np)` | `parser.t[6807]`

for 'all', simply return the whole original list

`getQualifierResolver ( )` | `parser.t[6795]`

Resolve qualifiers in the enclosing main scope, since qualifier phrases are not part of the narrowed list - qualifiers apply to the main phrase from which we're excluding, not to the exclusion list itself.

`matchName (obj, origTokens, adjustedTokens)` | `parser.t[6784]`

match an object's name - we'll use the disambiguation name resolver, so that they can give us partial names just like in answer to a disambiguation question

`objInScope (obj)` | `parser.t[6801]`

determine if an object is in scope - it's in scope if it's in the original main list

TADS 3 Library Manual
Generated on 8/21/2012 from TADS version 3.1.2