bool AnyQuantifier::Calc( ContextPtr context ) { for (ValueSet::Iterator it = mValues->Begin(); it != mValues->End(); ++it) { context->PushParam(mIdentifier, *it); bool result = mTerm->Calc(context); context->PopParam(mIdentifier); if (!result) return false; } return true; }
ValueSetPtr ExtQuntifier::Subset( std::string id, ValueSetPtr values, AtomPtr term, ContextPtr context) { ValueSetPtr subSet(new ValueSet()); for (ValueSet::Iterator it = values->Begin(); it != values->End(); ++it) { context->PushParam(id, *it); bool result = term->Calc(context); context->PopParam(id); if (result) subSet->AddValue(*it); } return subSet; }