#include <LingFeaturesSet.h>
Public Types | |
typedef std::set< LingFeatures * > | ElementSet |
typedef ElementSet::const_iterator | ElementIterator |
Public Member Functions | |
LingFeaturesSet () | |
~LingFeaturesSet () | |
void | add (const LingFeatures &) |
The LingFeatures object is copied. | |
void | remove (const LingFeatures *) |
bool | isEmpty () const |
void | set (const std::string &feature) |
void | set (const LingDef::Feature &) |
bool | has (const std::string &feature) const |
bool | has (const LingDef::Feature &) const |
void | setEnum (const std::string &enumFeature, const std::string &valueFeature) |
void | setEnum (const LingDef::Feature &enumFeature, const LingDef::Feature &valueFeature) |
void | getEnumValues (const std::string &enumFeature, std::set< const LingDef::Feature * > &) const |
void | getEnumValues (const LingDef::Feature &enumFeature, std::set< const LingDef::Feature * > &) const |
ElementIterator | elementsBegin () const |
ElementIterator | elementsEnd () const |
The use and the principle is very close to that of LingFeatures, but there are some important differences.
In its most simple form, each LingFeatures object is added explictly to the set:
LingFeatureSet featuresSet;
LingFeatures nounSingMasc(*nounPos);
nounSingMasc += "singular";
nounSingMasc += "masculine";
featuresSet.add(nounSingMasc);
LingFeatures nounPlurMasc(*nounPos);
nounPlurMasc += "plural";
nounplurMasc += "masculine";
featuresSet.add(nounPlurMasc);
featuresSet.has("singular"); // Returns true
featuresSet.has("plural"); // Returns true
featuresSet.has("masculine"); // Returns true
featuresSet.has("feminine"); // Returns false
To test more complex expressions, the class MatchExpression may be used.
LingFeatures objects may also be added dynamically as features are added to the set:
LingFeatureSet featuresSet;
LingFeatures nounSing(*nounPos);
nounSing += "singular";
featuresSet.add(nounSing);
// Here, featuresSet only contains one element:
// NOUN:+singular
featuresSet += "plural";
// Now, featuresSet contains two elements
// NOUN:+singular
// NOUN:+plural
featuresSet += "masculine";
featuresSet += "feminine";
// Now, featuresSet contains eight elements
// NOUN:+singular
// NOUN:+plural
// NOUN:+singular+masculine
// NOUN:+plural+masculine
// NOUN:+singular+feminine
// NOUN:+plural+feminine
Definition at line 76 of file LingFeaturesSet.h.
typedef ElementSet::const_iterator LinguisticDefinition::LingFeaturesSet::ElementIterator |
Definition at line 156 of file LingFeaturesSet.h.
typedef std::set<LingFeatures *> LinguisticDefinition::LingFeaturesSet::ElementSet |
Definition at line 151 of file LingFeaturesSet.h.
LingFeaturesSet::LingFeaturesSet | ( | ) |
Definition at line 11 of file LingFeaturesSet.cc.
LingFeaturesSet::~LingFeaturesSet | ( | ) |
Definition at line 20 of file LingFeaturesSet.cc.
void LingFeaturesSet::add | ( | const LingFeatures & | ) |
The LingFeatures object is copied.
Definition at line 34 of file LingFeaturesSet.cc.
References LinguisticDefinition::LingFeatures::getLingDef(), and LinguisticDefinition::LingFeatures::getPosDef().
Referenced by main(), and LinguisticDefinition::WordPattern::reduce().
LingFeaturesSet::ElementIterator LingFeaturesSet::elementsBegin | ( | ) | const |
Definition at line 209 of file LingFeaturesSet.cc.
Referenced by LinguisticDefinition::WordPattern::matches(), and LinguisticDefinition::WordPattern::reduce().
LingFeaturesSet::ElementIterator LingFeaturesSet::elementsEnd | ( | ) | const |
Definition at line 216 of file LingFeaturesSet.cc.
Referenced by LinguisticDefinition::WordPattern::matches(), and LinguisticDefinition::WordPattern::reduce().
void LingFeaturesSet::getEnumValues | ( | const LingDef::Feature & | enumFeature, | |
std::set< const LingDef::Feature * > & | ||||
) | const |
Definition at line 197 of file LingFeaturesSet.cc.
void LinguisticDefinition::LingFeaturesSet::getEnumValues | ( | const std::string & | enumFeature, | |
std::set< const LingDef::Feature * > & | ||||
) | const |
Referenced by main().
bool LingFeaturesSet::has | ( | const LingDef::Feature & | ) | const |
Definition at line 138 of file LingFeaturesSet.cc.
bool LinguisticDefinition::LingFeaturesSet::has | ( | const std::string & | feature | ) | const |
bool LingFeaturesSet::isEmpty | ( | ) | const |
Definition at line 53 of file LingFeaturesSet.cc.
Referenced by main(), and LinguisticDefinition::WordPattern::matches().
void LinguisticDefinition::LingFeaturesSet::remove | ( | const LingFeatures * | ) |
void LingFeaturesSet::set | ( | const LingDef::Feature & | ) |
Definition at line 84 of file LingFeaturesSet.cc.
References LinguisticDefinition::LingDef::Feature::allowSeveralValues(), and LinguisticDefinition::LingDef::Feature::getParentEnum().
void LinguisticDefinition::LingFeaturesSet::set | ( | const std::string & | feature | ) |
void LingFeaturesSet::setEnum | ( | const LingDef::Feature & | enumFeature, | |
const LingDef::Feature & | valueFeature | |||
) |
Definition at line 171 of file LingFeaturesSet.cc.
References LinguisticDefinition::LingDef::Feature::getParentEnum(), and set().
void LinguisticDefinition::LingFeaturesSet::setEnum | ( | const std::string & | enumFeature, | |
const std::string & | valueFeature | |||
) |