1 #ifndef _PARSERBASE_HXX_
2 #define _PARSERBASE_HXX_
15 static parser main_parser;
17 parser():_level(0),_defaultParsersMap(0)
19 _counts=new std::map<std::string,int>;
23 virtual void SetUserDataAndPush(parser* pp);
24 virtual void onStart(const XML_Char *el, const XML_Char** attr);
25 static void XMLCALL start(void *data, const XML_Char* el, const XML_Char** attr);
27 virtual void onEnd(const XML_Char *el,parser* child);
29 static void XMLCALL end(void *data, const char *el);
31 virtual void charData(const XML_Char *s, int len);
33 static void XMLCALL charac(void *data, const XML_Char *s, int len);
35 virtual void endParser();
39 virtual void incrCount(const XML_Char *el);
41 virtual void checkOrder(std::string& el);
43 virtual void maxcount(std::string name, int max, std::string& el);
45 virtual void mincount(std::string name,int min );
47 virtual void maxchoice(std::string *names, int max, std::string& el);
49 virtual void minchoice(std::string *names, int min);
51 virtual void pre(){_content="";};
52 virtual void required(const std::string& name, const XML_Char** attr);
54 virtual void buildAttr(const XML_Char** attr);
56 std::stack<parser*>& getStack();
61 void logError(const std::string& reason);
65 std::map<std::string,int> *_counts;
66 std::map<std::string,int> _orders;
69 std::stack<std::map<std::string,int>*> _stackCount;
70 std::stack<int> _stackOrder;
71 // OCC: san -- Allow external parsers for handling of unknown elements
72 // and attributes. This capability is used by YACS GUI to read
73 // graph presentation data
74 std::map<std::string,parser*> *_defaultParsersMap;