⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlparser.h

📁 XMDS is a code generator that integrates equations. You write them down in human readable form in a
💻 H
📖 第 1 页 / 共 2 页
字号:
/*  Copyright (C) 2000-2004  Code contributed by Greg Collecutt, Joseph Hope and Paul Cochrane  This file is part of xmds.   This program is free software; you can redistribute it and/or  modify it under the terms of the GNU General Public License  as published by the Free Software Foundation; either version 2  of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.  You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*//*  $Id: xmlparser.h,v 1.9 2004/04/29 03:23:00 paultcochrane Exp $*//*! @file xmlparser.h  @brief Header defining xml parser objects*/#ifndef LIST#include<list>#define LIST#endif// ******************************************************************************// ******************************************************************************//	XMLParserException// ******************************************************************************// ******************************************************************************class XMLEntityStream;//! XMLParserException classclass XMLParserException {public :  //! Enumerator of various xml errors  enum {    BAD_XML_ERR,    ENCODING_NOT_SUPPORTED_ERR,    INVALID_FILE_ERR,    INTERNAL_ERR,    UNKNOWN_ERR};  const unsigned short theError;  //!< Number defining the error  //! Constructor of XMLParserException object  XMLParserException();  //! Constructor of XMLParserException object  XMLParserException(		     const list<XMLEntityStream*> *const yourXMLEntityStreamStack,		     const char *const yourErrorMessage,		     const unsigned short& yourError);		  //! Destructor  ~XMLParserException();  //! Gets an xml parser error  const char* getError();private :  char s[2048];                                                //!< Container variable for a string of characters  const list<XMLEntityStream*> *const theXMLEntityStreamStack; //!< The XML entity stream stack  const char *const theErrorMessage;                           //!< The error message to print};// ******************************************************************************// ******************************************************************************//	XMLEntityStream// ******************************************************************************// ******************************************************************************//! Structure containing the stream positionstruct StreamPositionStruct {  unsigned long count;       //!< Counter variable  unsigned long lineNumber;  //!< Current line number  unsigned long columnNumber;//!< Current column number};class XMLParser;//! XMLEntityStream classclass XMLEntityStream {public :  //! Keeps tabs on the stream position  StreamPositionStruct streamPos;  //! Constructor for XMLEntityStream object  XMLEntityStream(		  XMLParser *const yourXMLParser,		  XMLEntityStream *const yourParentXMLEntityStream,		  const XMLString& yourName,		  const XMLString& yourSystemID);  //! Destructor  virtual ~XMLEntityStream();  //! Returns the name as an XMLString  const XMLString* name() const;  //! Returns the parent xml entity stream  XMLEntityStream* parentXMLEntityStream();  //! Enumerator containing the xml entity stream types  enum XMLEntityStreamType {    ROOT_ENTITY,    PARAMETER_ENTITY,    GENERAL_ENTITY,    UNPARSED_ENTITY};  //! Returns the entity type  virtual XMLEntityStreamType entityType() const = 0;  //! Enumerator containing the xml entity location type  enum XMLEntityLocationType {    INTERNAL_ENTITY,    EXTERNAL_ENTITY};  //! Returns the entity location  virtual XMLEntityLocationType entityLocation() const = 0;  //! Determines if are at the end of the xml stream  bool atEnd() const;  //virtual char nextChar();  //! Returns the next character in the stream  virtual signed char nextChar();  //! Returns the replacement text as an XMLString  virtual const XMLString* replacementText() = 0;  //! Adds a parameter xml entity stream  XMLEntityStream* addParameterXMLEntityStream(					       const XMLString& name,					       const XMLString& PublicID,					       const XMLString& SystemID);  //! Adds a parameter xml entity stream  XMLEntityStream* addParameterXMLEntityStream(					       const XMLString& name,					       const XMLString& EntityLiteral);  //! Adds a general xml entity stream  XMLEntityStream* addGeneralXMLEntityStream(					     const XMLString& name,					     const XMLString& EntityLiteral);  //! Adds a general xml entity stream  XMLEntityStream* addGeneralXMLEntityStream(					     const XMLString& name,					     const XMLString& PublicID,					     const XMLString& SystemID);  //! Adds an unparsed xml entity stream  XMLEntityStream* addUnparsedXMLEntityStream(					      const XMLString& name,					      const XMLString& PublicID,					      const XMLString& SystemID,					      const XMLString& NotationName);  //! Gets an xml entity stream  XMLEntityStream* getXMLEntityStream(				      const XMLString& getName,				      const XMLEntityStreamType& ofEntityType);  //! Prints the stream tree  void printStreamTree(		       unsigned long level) const;protected:  char errormessage[1024];       //!< Stores the error message  XMLParser *const myXMLParser;  //!< Declares the xml parser object  const XMLString myName;        //!< Declares the xml string name  XMLString myTextString;        //!< Declares the text string  bool myTextStringValid;        //!< Indicates if the text is valid  //! Gets the xml entity stream tree walk down  XMLEntityStream* getXMLEntityStreamTreeWalkDown(						  const XMLString& name,						  const XMLEntityStreamType& ofEntityType);  //! Loads an external text string  void loadExternalTextString();  //! Makes a text string  void virtual makeTextString() = 0;private :  XMLEntityStream *const myParentXMLEntityStream;  //!< Undocumented  const XMLString mySystemID;                      //!< Undocumented  list<XMLEntityStream*> myXMLEntityStreamList;    //!< Undocumented};// ******************************************************************************// ******************************************************************************//	RootXMLEntityStream// ******************************************************************************// ******************************************************************************//! RootXMLEntityStream classclass RootXMLEntityStream: public XMLEntityStream {public:  //! Constructor of RootXMLEntityStream object  RootXMLEntityStream(		      XMLParser *const yourXMLParser,		      const XMLString& yourSystemID);  //! Returns the entity type of the xml entity stream  XMLEntityStreamType entityType() const;  //! Returns the entity location of the xml entity stream  XMLEntityLocationType entityLocation() const;  //! Returns the replacement text as an XMLString  const XMLString* replacementText();protected:  //! Makes a text string  void makeTextString();};// ******************************************************************************// ******************************************************************************//	GPXMLEntityStream// ******************************************************************************// ******************************************************************************//! GPXMLEntityStream classclass GPXMLEntityStream: public XMLEntityStream {public:  //! Constructor for an internal entity  //! Finally Greg has commented something!!  GPXMLEntityStream(		    XMLParser *const yourXMLParser,		    XMLEntityStream *const yourParentXMLEntityStream,		    const XMLString& yourName,		    const XMLString& yourEntityLiteral);  //! Constructor for an external entity  //! Finally Greg has commented something!!  GPXMLEntityStream(		    XMLParser *const yourXMLParser,		    XMLEntityStream *const yourParentXMLEntityStream,		    const XMLString& yourName,		    const XMLString& yourPublicID,		    const XMLString& yourSystemID);  //! Returns the entity location  XMLEntityLocationType entityLocation() const;  //! Returns the replacement text as an XMLString  const XMLString* replacementText();protected:  //! Makes a text string  void makeTextString();private:  const XMLString myPublicID;                     //!< The current public id of the entity  const XMLString myEntityLiteral;                //!< The literal string of the entity  const XMLEntityLocationType myEntityLocation;   //!< The entity location};// ******************************************************************************// ******************************************************************************//	ParameterXMLEntityStream// ******************************************************************************// ******************************************************************************//! ParameterXMLEntityStream classclass ParameterXMLEntityStream: public GPXMLEntityStream {public:  //! Constructor for an internal entity  //! Finally Greg has commented something!!  ParameterXMLEntityStream(			   XMLParser *const yourXMLParser,			   XMLEntityStream *const yourParentXMLEntityStream,			   const XMLString& yourName,			   const XMLString& yourEntityLiteral);  //! Constructor for an external entity  //! Finally Greg has commented something!!  ParameterXMLEntityStream(			   XMLParser *const yourXMLParser,			   XMLEntityStream *const yourParentXMLEntityStream,			   const XMLString& yourName,			   const XMLString& yourPublicID,			   const XMLString& yourSystemID);  //! Returns the entity type  XMLEntityStreamType entityType() const;};// ******************************************************************************// ******************************************************************************//	GeneralXMLEntityStream// ******************************************************************************// ******************************************************************************//! GeneralXMLEntityStream classclass GeneralXMLEntityStream: public GPXMLEntityStream {public:  //! Constructor for an internal entity  //! Finally Greg has commented something!!  GeneralXMLEntityStream(			 XMLParser *const yourXMLParser,			 XMLEntityStream *const yourParentXMLEntityStream,			 const XMLString& yourName,			 const XMLString& yourEntityLiteral);  //! Constructor for an external entity  //! Finally Greg has commented something!!  GeneralXMLEntityStream(			 XMLParser *const yourXMLParser,			 XMLEntityStream *const yourParentXMLEntityStream,			 const XMLString& yourName,			 const XMLString& yourPublicID,			 const XMLString& yourSystemID);  //! Returns the entity type  XMLEntityStreamType entityType() const;};// ******************************************************************************// ******************************************************************************//	UnparsedXMLEntityStream// ******************************************************************************// ******************************************************************************//! UnparsedXMLEntityStream classclass UnparsedXMLEntityStream: public XMLEntityStream {public:  //! Constructor for an external entity  //! Finally Greg has commented something!!  UnparsedXMLEntityStream(			  XMLParser *const yourXMLParser,			  XMLEntityStream *const yourParentXMLEntityStream,			  const XMLString& yourName,			  const XMLString& yourPublicID,			  const XMLString& yourSystemID,			  const XMLString& yourNotationName);  //! Returns the entity type  XMLEntityStreamType entityType() const;  //! Returns the entity location  XMLEntityLocationType entityLocation() const;  //! Returns the replacement text  const XMLString* replacementText();  // overrides of XMLEntityStream functions that  // should never be called for this entity  //! Determines if are at end of entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  bool atEnd() const;  //! Adds a parameter xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* addParameterXMLEntityStream(					       const XMLString& name,					       const XMLString& PublicID,					       const XMLString& SystemID);  //! Adds a parameter xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* addParameterXMLEntityStream(					       const XMLString& name,					       const XMLString& EntityLiteral);  //! Adds a general xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* addGeneralXMLEntityStream(					     const XMLString& name,					     const XMLString& EntityLiteral);  //! Adds a general xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* addGeneralXMLEntityStream(					     const XMLString& name,					     const XMLString& PublicID,					     const XMLString& SystemID,					     const XMLString& NotationName);  //! Adds an unparsed xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* addUnparsedXMLEntityStream(					      const XMLString& name,					      const XMLString& PublicID,					      const XMLString& SystemID,					      const XMLString& NotationName);  //! Gets an xml entity stream  /*! Overrides of XMLEntityStream functions that    should never be called for this entity  */  XMLEntityStream* getXMLEntityStream(				      const XMLString& getName,				      const XMLEntityStreamType& ofEntityType);protected:  //! Makes a text string  void makeTextString();private:  const XMLString myPublicID;      //!< The public id of the entity  const XMLString myNotationName;  //!< The notation name (of the entity?)};// ******************************************************************************// ******************************************************************************//	XMLParser// ******************************************************************************// ******************************************************************************//! XMLParser classclass XMLParser {public :  //! An xml entity stream stack  list<XMLEntityStream*> XMLEntityStreamStack;  //! Constructor for XMLParser object  XMLParser();  //! Destructor  ~XMLParser();  //! Parses xml given fileName  Document* parseFromFile(			  const char* fileName);  //! Returns xmds byte point (whatever that may mean)  unsigned long xmdsBytePoint() const;  //! Matches production 66 character reference (whatever that may mean)  unsigned long matchProduction66CharRef(					 XMLEntityStream *const thisStream,					 //char& cRef) const;					 signed char& cRef) const;			  //! Matches production 69 PE reference (whatever that may mean)  unsigned long matchProduction69PEReference(					     XMLEntityStream *const thisStream,					     XMLString& PEName) const;  //! Matches production 77 text declaration (whatever that may mean)  void matchProduction77TextDecl(				 XMLEntityStream *const thisStream,				 XMLString& VersionNum,				 XMLString& encoding);private :  KissDOMImplementation myDOMImplementation;  //!< Undocumented  DocumentType* theDocumentType;              //!< Undocumented  Document* theDocument;                      //!< Undocumented  XMLEntityStream* rootXMLEntityStream;       //!< Undocumented  XMLEntityStream* currentXMLEntityStream;    //!< Undocumented  char errormessage[1024];                    //!< Undocumented  unsigned long myxmdsBytePoint;              //!< Undocumented  // stuff recovered from the XMLDecl routine   XMLString rootVersionNum;                   //!< Undocumented  XMLString rootEncName;                      //!< Undocumented

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -