aboutsummaryrefslogtreecommitdiff
path: root/KaplaDemo/samples/sampleViewer3/XMLParser.h
diff options
context:
space:
mode:
Diffstat (limited to 'KaplaDemo/samples/sampleViewer3/XMLParser.h')
-rw-r--r--KaplaDemo/samples/sampleViewer3/XMLParser.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/KaplaDemo/samples/sampleViewer3/XMLParser.h b/KaplaDemo/samples/sampleViewer3/XMLParser.h
new file mode 100644
index 00000000..e9c3d9bb
--- /dev/null
+++ b/KaplaDemo/samples/sampleViewer3/XMLParser.h
@@ -0,0 +1,60 @@
+#ifndef XML_PARSER_H
+#define XML_PARSER_H
+
+#include <stdio.h>
+#include <string>
+#include <vector>
+#include "FileScanner.h"
+
+#define XML_LINE_MAX 1024
+
+
+// -------------------------------------------------------------------------
+struct XMLVariable {
+ std::string name;
+ std::string value;
+};
+
+// -------------------------------------------------------------------------
+class XMLParser {
+public:
+ // singleton pattern
+ static XMLParser* getInstance();
+ static void destroyInstance();
+
+ bool open(std::string filename);
+ void close();
+ bool endOfFile();
+ bool readNextTag();
+
+ std::string tagName;
+ std::vector<XMLVariable> vars;
+ bool closed;
+ bool endTag;
+
+ FileScanner &getFileScanner() { return fs; }
+
+ // ezm
+ void ezmParseSemantic(int &count);
+ void ezmReadSemanticEntry(int nr);
+
+ std::vector<std::string> ezmAttrs;
+ std::vector<std::string> ezmTypes;
+ std::vector<float> ezmFloats;
+ std::vector<int> ezmInts;
+
+private:
+ XMLParser();
+ ~XMLParser();
+
+ void clearTag();
+ FileScanner fs;
+};
+
+#include <stdio.h>
+
+#define FILE_SCANNER_LINE_MAX 1024
+
+
+
+#endif \ No newline at end of file