Advertisement
slatenails

xml_scanner.h

Sep 14th, 2013
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.77 KB | None | 0 0
  1. #ifndef LIBCOBALTCORE_XML_SCANNER_H
  2. #define LIBCOBALTCORE_XML_SCANNER_H
  3.  
  4. #include "main.h"
  5.  
  6. class CoXMLScanner {
  7. public:
  8.     enum Token {
  9.         HeaderStart,
  10.         HeaderEnd,
  11.         TagCloser,
  12.         TagSelfCloser,
  13.         TagStart,
  14.         TagEnd,
  15.         CData,
  16.         Equals,
  17.         Symbol,
  18.         String
  19.     };
  20.    
  21.     CoXMLScanner (const char* data);
  22.    
  23.     bool next();
  24.     bool next (Token tok);
  25.    
  26.     inline Token tokenType() const {
  27.         return m_tokenType;
  28.     }
  29.    
  30.     inline CoStringRef token() const {
  31.         return m_token;
  32.     }
  33.    
  34.     inline bool insideTag() const {
  35.         return m_insideTag;
  36.     }
  37.    
  38. private:
  39.     bool checkString (const char* c, bool peek = false);
  40.    
  41.     const char*   m_data;
  42.     const char*   m_ptr;
  43.     CoString      m_token;
  44.     Token         m_tokenType;
  45.     bool          m_insideTag;
  46. };
  47.  
  48. #endif // LIBCOBALTCORE_XML_SCANNER_H
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement