test_LingFeaturesSet.cc

Go to the documentation of this file.
00001 #include <iostream>
00002 
00003 #include "LinguisticDefinition/LingDef.h"
00004 #include "LinguisticDefinition/LingFeaturesSet.h"
00005 
00006 using namespace std;
00007 using namespace LinguisticDefinition;
00008 
00012 int main(int argc, char *argv[]) {
00013 
00014   LingDef lingDef("ar");
00015 
00016   // Populate the definition
00017   {
00018     {
00019       LingDef::Pos &basePos = lingDef.createVirtualPos();
00020       LingDef::Pos &nounPos = basePos.createSubPos("NOUN");
00021       {
00022         LingDef::Feature &helloFeature =
00023           basePos.createFeature("hello",
00024                                 LingDef::Feature::MISC,
00025                                 LingDef::Feature::BOOLEAN);
00026       }
00027       
00028       {
00029         LingDef::Feature &numberFeature =
00030           nounPos.createFeature("number",
00031                                 LingDef::Feature::MISC,
00032                                 LingDef::Feature::ENUM);
00033 
00034         LingDef::Feature &singularFeature =
00035           numberFeature.createEnumValueFeature("singular");
00036         singularFeature.setDefault(true);
00037         
00038         LingDef::Feature &pluralFeature =
00039           numberFeature.createEnumValueFeature("plural");
00040       }
00041 
00042       {
00043         LingDef::Feature &genderFeature =
00044           nounPos.createFeature("gender",
00045                                 LingDef::Feature::MISC,
00046                                 LingDef::Feature::ENUM);
00047 
00048         LingDef::Feature &singularFeature =
00049           genderFeature.createEnumValueFeature("masculine");
00050         singularFeature.setDefault(true);
00051         
00052         LingDef::Feature &pluralFeature =
00053           genderFeature.createEnumValueFeature("feminine");
00054       }
00055 
00056       LingDef::Pos &verbPos = basePos.createSubPos("VERB");
00057       {
00058         LingDef::Feature &numberFeature =
00059           verbPos.createFeature("number",
00060                                 LingDef::Feature::MISC,
00061                                 LingDef::Feature::ENUM);
00062 
00063         LingDef::Feature &singularFeature =
00064           numberFeature.createEnumValueFeature("singular");
00065         singularFeature.setDefault(true);
00066         
00067         LingDef::Feature &pluralFeature =
00068           numberFeature.createEnumValueFeature("plural");
00069       }
00070     }
00071   }
00072 
00073   {
00074     const LingDef::Pos *nounPos = lingDef.getPos("NOUN");
00075     const LingDef::Pos *verbPos = lingDef.getPos("VERB");
00076 
00077     LingFeaturesSet featuresSet;
00078     {
00079       LingFeatures features(*nounPos);
00080       featuresSet.add(features);
00081     }
00082 
00083     {
00084       LingFeatures features(*nounPos);
00085       features += "hello";
00086       featuresSet.add(features);
00087     }
00088 
00089 //     {
00090 //       LingFeatures features(*verbPos);
00091 //       features += "plural";
00092 //       featuresSet.add(features);
00093 //     }
00094 
00095     featuresSet.set("singular");
00096     featuresSet.set("plural");
00097     featuresSet.set("masculine");
00098     featuresSet.set("feminine");
00099     featuresSet.set("hello");
00100     {
00101       set<const LingDef::Feature *> enumValues;
00102       featuresSet.getEnumValues("number", enumValues);
00103       {for (set<const LingDef::Feature *>::iterator it = enumValues.begin();
00104             it != enumValues.end(); ++it) {
00105         cerr << (*it)->getName() << endl;
00106       }}
00107     }
00108 
00109   }
00110 }

Generated on Fri Jun 23 14:03:15 2006 for LinguisticDefinition by  doxygen 1.4.7