00001
00002
00003 #ifndef MIX_XMLTOKEN_H_
00004 #define MIX_XMLTOKEN_H_
00005
00006 #include "classes.h"
00007 #include "misc.h"
00008 #include "XMLString.h"
00009
00010 namespace MiX{
00011 enum TokenType{
00012 Token_null = 0,
00013 Token_cr,
00014 Token_lf,
00015 Token_space,
00016 Token_tab,
00017 Token_lt,
00018 Token_eq,
00019 Token_gt,
00020 Token_slash,
00021 Token_hyphen,
00022 Token_semicolon,
00023 Token_exclamation,
00024 Token_question,
00025 Token_amp,
00026 Token_dblquote,
00027 Token_quote,
00028 Token_lsb,
00029 Token_rsb,
00030
00031 Token_text = 100
00032 };
00033 #define TokenCount 18
00034 template <class charT,class char_traits,class xml_traits>
00035 class XMLToken {
00036 public:
00037 MiX_Template_Typedef(charT,char_traits,xml_traits);
00038 typedef XMLToken<charT,char_traits,xml_traits> this_type;
00039 private:
00040 string_type str_;
00041 TokenType type_;
00042 long index_;
00043 public:
00045 XMLToken() : type_(Token_null),index_(-1){ };
00047 XMLToken(const charT* first,const charT* last,TokenType type,long index);
00049 string_type& getData() { return str_; };
00051 TokenType getType() { return type_; };
00053 long getIndex() { return index_; };
00054 };
00055 }
00056
00057 #ifndef MIX_XMLTOKEN_CPP_
00058 #include "XMLToken.cpp"
00059 #endif
00060
00061 #endif