diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2008-09-04 22:09:51 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2008-09-04 22:09:51 +0000 |
| commit | 5dbc8f155b16759b4ebb82aceb3759c686489e3b (patch) | |
| tree | 01b7a1fa8b79614614508d335daa1f3116dd15a1 /src/xmlreader.h | |
| parent | 0047991313fd7c67b45c59d58e3fde0236bf3872 (diff) | |
| download | libbu++-5dbc8f155b16759b4ebb82aceb3759c686489e3b.tar.gz libbu++-5dbc8f155b16759b4ebb82aceb3759c686489e3b.tar.bz2 libbu++-5dbc8f155b16759b4ebb82aceb3759c686489e3b.tar.xz libbu++-5dbc8f155b16759b4ebb82aceb3759c686489e3b.zip | |
XML is important, I guess...
Diffstat (limited to 'src/xmlreader.h')
| -rw-r--r-- | src/xmlreader.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/xmlreader.h b/src/xmlreader.h new file mode 100644 index 0000000..375dfe3 --- /dev/null +++ b/src/xmlreader.h | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | #ifndef BU_XML_READER_H | ||
| 2 | #define BU_XML_READER_H | ||
| 3 | |||
| 4 | #include "bu/fstring.h" | ||
| 5 | |||
| 6 | namespace Bu | ||
| 7 | { | ||
| 8 | class Stream; | ||
| 9 | |||
| 10 | class XmlReader | ||
| 11 | { | ||
| 12 | public: | ||
| 13 | XmlReader( Stream &rInput ); | ||
| 14 | virtual ~XmlReader(); | ||
| 15 | |||
| 16 | private: | ||
| 17 | Stream &rInput; | ||
| 18 | int iCurToken; | ||
| 19 | int iNextToken; | ||
| 20 | Bu::FString sBuf; | ||
| 21 | Bu::FString sStr; | ||
| 22 | bool bIgnoreWS; | ||
| 23 | typedef struct StreamPos | ||
| 24 | { | ||
| 25 | StreamPos() : iLine( 1 ), iChar( 1 ) { } | ||
| 26 | int iLine; | ||
| 27 | int iChar; | ||
| 28 | } StreamPos; | ||
| 29 | StreamPos spCurToken; | ||
| 30 | StreamPos spNextToken; | ||
| 31 | |||
| 32 | |||
| 33 | enum | ||
| 34 | { | ||
| 35 | tokXmlDeclHead = 0x100, | ||
| 36 | tokXmlDeclEnd, | ||
| 37 | tokWS, | ||
| 38 | tokIdent, | ||
| 39 | tokString | ||
| 40 | }; | ||
| 41 | |||
| 42 | void fillBuffer(); | ||
| 43 | void cleanupBuffer( int iUsed ); | ||
| 44 | int nextToken(); | ||
| 45 | |||
| 46 | void stDocument(); | ||
| 47 | void stProlog(); | ||
| 48 | void stXmlDecl(); | ||
| 49 | |||
| 50 | void error( const char *sMessage ); | ||
| 51 | }; | ||
| 52 | }; | ||
| 53 | |||
| 54 | #endif | ||
