00001
00002
00003 #ifndef _ID_H
00004 #define _ID_H
00005
00006 #include <string>
00007
00010 typedef enum IdMota {
00011 ID_P = 0,
00012 ID_W = 1,
00013 ID_M = 2,
00014 ID_MW = 3,
00015 ID_FS = 4,
00016 ID_F = 5,
00017 ID_SPAN = 6,
00018 ID_CHUNK = 7,
00019 ID_ENT = 8,
00020 ID_POS = 9,
00021 ID_DEP = 10,
00022 ID_LSFI = 11,
00023 ID_LSFI_SET = 12,
00024 ID_LNK = 13,
00025 ID_ERRINST = 14,
00026 ID_JGRP = 15,
00027 ID_NODE = 16,
00028 ID_VERB = 17,
00029 ID_SENT = 18,
00030 ID_BESTELAKOA = 19
00031 };
00032
00033
00038 class Id : public std::string {
00039 IdMota idMota;
00040
00041 protected:
00042
00048 static std::string sortuId(const std::string & kat, const int num);
00049
00055 static int lortuNum(const std::string & id, const std::string & kat);
00056
00057 public:
00058
00062 Id(const IdMota & mota);
00063
00068 Id(const IdMota & mota, const char* id);
00069
00074 Id(const IdMota & mota, const std::string & id);
00075
00077 Id();
00078
00082 bool operator< (const Id & id) const;
00083
00087 bool operator<=(const Id & id) const;
00088
00092 bool operator> (const Id & id) const;
00093
00097 bool operator>=(const Id & id) const;
00098
00102 IdMota getType() const;
00103
00107 std::string toXId() const;
00108
00109 };
00110
00111
00112 #endif // _ID_H