aboutsummaryrefslogtreecommitdiff
path: root/src/experimental/xmlreader.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/experimental/xmlreader.h')
-rw-r--r--src/experimental/xmlreader.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/experimental/xmlreader.h b/src/experimental/xmlreader.h
new file mode 100644
index 0000000..7cb44c9
--- /dev/null
+++ b/src/experimental/xmlreader.h
@@ -0,0 +1,64 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
8#ifndef BU_XML_READER_H
9#define BU_XML_READER_H
10
11#include "bu/string.h"
12#include "bu/exceptionbase.h"
13
14namespace Bu
15{
16 class Stream;
17
18 subExceptionDecl( XmlException );
19
20 class XmlReader
21 {
22 public:
23 XmlReader( Stream &rInput );
24 virtual ~XmlReader();
25
26 private:
27 Stream &rInput;
28 int iCurToken;
29 int iNextToken;
30 Bu::String sBuf;
31 Bu::String sStr;
32 bool bIgnoreWS;
33 typedef struct StreamPos
34 {
35 StreamPos() : iLine( 1 ), iChar( 1 ) { }
36 int iLine;
37 int iChar;
38 } StreamPos;
39 StreamPos spCurToken;
40 StreamPos spNextToken;
41
42
43 enum
44 {
45 tokXmlDeclHead = 0x100,
46 tokXmlDeclEnd,
47 tokWS,
48 tokIdent,
49 tokString
50 };
51
52 void fillBuffer();
53 void cleanupBuffer( int iUsed );
54 int nextToken();
55
56 void stDocument();
57 void stProlog();
58 void stXmlDecl();
59
60 void error( const char *sMessage );
61 };
62};
63
64#endif