ExceptResolverclassparser.t[6778]

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  

isSubResolverparser.t[6790]

we're a sub-phrase resolver

mainListparser.t[6855]
the main list from which we're excluding things

mainListTextparser.t[6858]
the original text for the main list

origResolverparser.t[6861]
the original underlying resolver

Methods  

construct (mainList, mainListText, resolver)OVERRIDDENparser.t[6779]

no description available

filterAmbiguousEquivalents (lst, np)parser.t[6826]
filter ambiguous equivalents

filterAmbiguousNounPhrase (lst, requiredNum, np)parser.t[6837]
filter an ambiguous noun list

filterPluralPhrase (lst, np)parser.t[6848]
filter a plural noun list

getAll (np)parser.t[6820]
for 'all', simply return the whole original list

getQualifierResolver ( )parser.t[6808]
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[6797]
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[6814]
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 5/16/2013 from TADS version 3.1.3