Main Page | Class List | File List | Class Members

fg_sxtoken.h

00001 #ifndef FG_SXTOKEN_H
00002 #define FG_SXTOKEN_H
00003 
00004 #include <string>
00005 #include <list>
00006 #include <map>
00007 #include <iostream>
00008 
00009 #include "fg_sxrel.h"
00010 
00011 using namespace std;
00012 
00028 class SxToken
00029 {
00030 
00031  public:
00032 
00037   enum SxTokenCat
00038   {
00039     SxC_NONE = 0, // Error code
00040     SxC_Adj, // Adj
00041     SxC_Adj11, // Adj??
00042     SxC_Adj1P, // Adj?P
00043     SxC_Adj1S, // Adj?S
00044     SxC_AdjFP, // AdjFP
00045     SxC_AdjFS, // AdjFS
00046     SxC_AdjIng, // AdjIng
00047     SxC_AdjMP, // AdjMP
00048     SxC_AdjMS, // AdjMS
00049     SxC_AdjNum, // AdjNum
00050     SxC_Adv, // Adv
00051     SxC_AdvGP, // AdvGP
00052     SxC_Advp, // Advp
00053     SxC_CCoord, // CCoord
00054     SxC_CSub, // CSub
00055     SxC_Det, // Det
00056     SxC_Det11, // Det??
00057     SxC_Det1P, // Det?P
00058     SxC_Det1S, // Det?S
00059     SxC_DetFP, // DetFP
00060     SxC_DetFS, // DetFS
00061     SxC_DetMP, // DetMP
00062     SxC_DetMS, // DetMS
00063     SxC_DetNum, // DetNum
00064     SxC_Elim, // Elim
00065     SxC_Nom1P, // Nom?P
00066     SxC_Nom1Pp, // Nom?Pp
00067     SxC_Nom1S, // Nom?S
00068     SxC_Nom1Sp, // Nom?Sp
00069     SxC_NomFP, // NomFP
00070     SxC_NomFS, // NomFS
00071     SxC_NomInc, // NomInc
00072     SxC_NomIng, // NomIng
00073     SxC_NomMP, // NomMP
00074     SxC_NomMS, // NomMS
00075     SxC_NomPr, // NomPr
00076     SxC_NomPrXXInc, // NomPrXXInc
00077     SxC_NomPrXXPrenom, // NomPrXXPrenom
00078     SxC_NomXXAdr, // NomXXAdr
00079     SxC_NomXXDate, // NomXXDate
00080     SxC_NomXXMes, // NomXXMes
00081     SxC_NomXXMon, // NomXXMon
00082     SxC_NomXXNum, // NomXXNum
00083     SxC_NomXXTitre, // NomXXTitre
00084     SxC_NomXXUrl, // NomXXUrl
00085     SxC_Num, // Num
00086     SxC_POS, // POS
00087     SxC_Ppa, // Ppa
00088     SxC_PpaFP, // PpaFP
00089     SxC_PpaFS, // PpaFS
00090     SxC_PpaMP, // PpaMP
00091     SxC_PpaMS, // PpaMS
00092     SxC_Ppap, // Ppap
00093     SxC_Ppr, // Ppr
00094     SxC_PprIng, // PprIng
00095     SxC_PprIngp, // PprIngp
00096     SxC_Pprp, // Pprp
00097     SxC_Prep, // Prep
00098     SxC_Pro, // Pro
00099     SxC_ProRel, // ProRel
00100     SxC_RP, // RP
00101     SxC_SENT, // SENT
00102     SxC_Typo, // Typo
00103     SxC_VCONJ, // VCONJ
00104     SxC_VCONJP, // VCONJP
00105     SxC_VCONJPp, // VCONJPp
00106     SxC_VCONJS, // VCONJS
00107     SxC_VCONJSp, // VCONJSp
00108     SxC_VCONJp, // VCONJp
00109     SxC_VINF, // VINF
00110     SxC_VINFp, // VINFp
00111   };
00112 
00114   typedef map<string, SxTokenCat, less<string> > SxCatMap;
00116   typedef map<SxTokenCat, string> SxInvCatMap;
00117 
00119   SxToken();
00121   virtual ~SxToken();
00122   
00127   inline SxTokenCat getCat() const;
00135   bool setCat( const string &catStr );
00140   inline void setCat( SxTokenCat cat );
00141   
00146   inline const string &getLemma() const;
00151   inline void setLemma( const string &lemma );
00152   
00157   inline const string &getTokenText() const;
00162   inline void setTokenText( const string &tokenText );
00163   
00169   inline unsigned int getId() const;
00175   inline void setId( unsigned int id );
00176 
00182   inline const list<SxRel> &getRegiRelList() const;
00188   inline void addRegiRel( const SxRel regiRel );  
00189   
00195   inline const list<SxRel> &getRecteurRelList() const;
00201   inline void addRecteurRel( const SxRel recteurRel );
00202 
00210   static SxTokenCat stringToCat( const string &catStr );
00219   static const string &catToString( SxTokenCat cat );
00220 
00232   friend ostream &operator<< ( ostream &os, const SxToken &token );
00233 
00234  private:
00235 
00237   static int initCatMap();
00239   static const int m_iIsMapInit;
00241   static SxCatMap m_mCatMap;
00243   static SxInvCatMap m_mInvCatMap;
00245   string m_sLemma;
00247   string m_sTokenText;
00249   SxTokenCat m_eCat;
00251   unsigned int m_iId;
00252   
00254   list<SxRel> m_lRecteurRels;
00255 
00257   list<SxRel> m_lRegiRels;
00258 };
00259 
00260 //== inline functions =====================================================
00261 
00262 inline void SxToken::setLemma( const string &lemma )
00263 {
00264   m_sLemma = lemma;
00265 }
00266 
00267 inline const string &SxToken::getLemma() const
00268 {
00269   return m_sLemma;
00270 }
00271 
00272 inline const string &SxToken::getTokenText() const
00273 {
00274   return m_sTokenText;
00275 }
00276 
00277 inline void SxToken::setTokenText( const string &tokenText )
00278 {
00279   m_sTokenText = tokenText;
00280 }
00281 
00282 inline const list<SxRel> &SxToken::getRegiRelList() const
00283 {
00284   return m_lRegiRels;
00285 }
00286 
00287 inline const list<SxRel> &SxToken::getRecteurRelList() const
00288 {
00289   return m_lRecteurRels;
00290 }
00291 
00292 inline SxToken::SxTokenCat SxToken::getCat() const
00293 {
00294   return m_eCat;
00295 }
00296 
00297 inline void SxToken::addRegiRel( const SxRel regiRel )
00298 {
00299   m_lRegiRels.push_back( regiRel );
00300 }
00301 
00302 inline void SxToken::addRecteurRel( const SxRel recteurRel )
00303 {
00304   m_lRecteurRels.push_back( recteurRel );
00305 }
00306 
00307 inline void SxToken::setCat( SxToken::SxTokenCat cat )
00308 {
00309   m_eCat = cat;
00310 }
00311 
00312 inline void SxToken::setId( unsigned int id )
00313 {
00314   m_iId = id;
00315 }
00316 
00317 inline unsigned int SxToken::getId() const
00318 {
00319   return m_iId;
00320 }
00321 
00322 #endif // #ifndef FG_SXTOKEN_H

Generated on Mon Feb 21 08:53:16 2005 by doxygen 1.3.6