|
core/LibraryParser.hGo to the documentation of this file.00001 //============================================================================ 00002 // Author : Alessandro Pinto <apinto@eecs.berkeley.edu> 00003 // University of California, Berkeley 00004 // 545 Cory Hall, Berkeley, CA 94720 00005 // Copyright : See COPYING file that comes with this distribution 00006 //============================================================================ 00007 00008 #ifndef LIBRARYPARSER_H_ 00009 #define LIBRARYPARSER_H_ 00010 00011 #include <string> 00012 #include <sstream> 00013 #include <map> 00014 #include <list> 00015 #include "NodeLinkLibrary.h" 00016 #include "Factory.h" 00017 #include "tinyxml.h" 00018 00019 using namespace std; 00020 00021 namespace cosi { 00022 00023 class LibraryParser { 00024 public: 00025 00026 LibraryParser(string pFname); 00027 virtual ~LibraryParser(); 00028 void Parse(); 00029 void Parse(TiXmlNode* pParent); 00030 NodeLinkLibrary* GetLibrary(); 00031 00032 private: 00033 00034 void ParseDocument(TiXmlNode* pParent); 00035 00036 // <Library> 00037 void ParseLibrary(TiXmlNode* pParent); 00038 void GetLibraryAttributes(TiXmlNode* pParent); 00039 00040 // <Node> 00041 void ParseNode(TiXmlNode* pParent); 00042 void GetNodeAttributes(TiXmlNode* pParent); 00043 00044 // <Interface> 00045 void ParseInterface(TiXmlNode* pParent); 00046 void GetInterfaceAttributes(TiXmlNode* pParent); 00047 00048 // <Link> 00049 void ParseLink(TiXmlNode* pParent); 00050 void GetLinkAttributes(TiXmlNode* pParent); 00051 00052 //<Source> 00053 void ParseLinkSource(TiXmlNode* pParent); 00054 void GetLinkSourceAttributes(TiXmlNode* pParent); 00055 00056 //<Dest> 00057 void ParseLinkDest(TiXmlNode* pParent); 00058 void GetLinkDestAttributes(TiXmlNode* pParent); 00059 00060 // <BiLink> 00061 void ParseBiLink(TiXmlNode* pParent); 00062 void GetBiLinkAttributes(TiXmlNode* pParent); 00063 00064 string mFname; 00065 string mName; 00066 NodeLinkLibrary* mLib; 00067 Node mCurrentNode; 00068 Link mCurrentLink; 00069 BiLink mCurrentBiLink; 00070 string mCurrentDirection; 00071 00072 }; 00073 00074 } 00075 00076 #endif /*LIBRARYPARSER_H_*/ Generated on Sun Sep 7 18:37:42 2008 for COSI by 1.5.4 |