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

📄 parser.h

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 H
📖 第 1 页 / 共 2 页
字号:
  /**   *  Parse the version string in an XML Prolog section.   *   *  @param str String containing the version number if successful.   *  @return 0 if the string was read successfully, 0 otherwise.   */  int parse_version (ACEXML_Char*& str);  /**   *  Parse the version number in a VersionInfo declaration.   */  int parse_version_num (ACEXML_Char*& str);  /**   *  Parse the encoding name in an XML Prolog section.   *   *  @param str String containing the encoding name if successful.   *  @return 0 if the string was read successfully, 0 otherwise.   */  int parse_encname (ACEXML_Char*& str);  /**   *  Parse a SDDecl string.   *   *  @param str String containing the encoding name if successful.   *  @return 0 if the string was read successfully, -1 otherwise.   */  int parse_sddecl (ACEXML_Char*& str);  /**   *  Parse an attribute name.   *   *  @retval str String containing the value of the attribute name   *             if successful.   *  @retval 0 otherwise.   */  ACEXML_Char* parse_attname (ACEXML_ENV_SINGLE_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   *  Parse an attribute value.   *   *  @param str String containing the value of the attribute if successful.   *  @return 0 if attribute value was read successfully, -1 otherwise.   */  int parse_attvalue (ACEXML_Char*& str ACEXML_ENV_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   *  Parse a tokenized type attribute.   *   *  @return 0 if attribute type was read successfully, -1 otherwise.   */  int parse_tokenized_type (ACEXML_ENV_SINGLE_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   *  Parse a SystemLiteral.   *   *  @param str String containing the SystemLiteral if successful.   *  @return 0 if the string was read successfully, 0 otherwise.   */  int parse_system_literal (ACEXML_Char*& str);   /**   *  Parse a PubidLiteral.   *   *  @param str String containing the PubidLiteral if successful.   *  @return 0 if the string was read successfully, 0 otherwise.   */  int parse_pubid_literal (ACEXML_Char*& str);  /**   * Check if a character @a c is a whitespace.   *   * @retval 1 if @a c is a valid white space character. 0 otherwise.   */  int is_whitespace (const ACEXML_Char c) const;  /**   * Check if a character @a c is a valid Char.   *   * @retval 1 if @a c is a valid character. 0 otherwise.   */  int isChar (ACEXML_UCS4 c) const;  /**   * Check if a character @a c is a valid CharRef character.   *   * @retval 1 if @a c is a valid character reference character, 0 otherwise.   */  int isCharRef (const ACEXML_Char c) const;  /**   * Check if a character @a c is a BaseChar.   *   * @retval 1 if @a c is a valid BaseChar character, 0 otherwise.   */  int isBasechar (const ACEXML_Char c) const;  /**   * Check if a character @a c is a Ideographic.   *   * @retval 1 if @a c is a valid Ideographic character, 0 otherwise.   */  int isIdeographic (const ACEXML_Char c) const;  /**   * Check if a character @a c is a CombiningChar.   *   * @retval 1 if @a c is a valid CombiningChar character, 0 otherwise.   */  int isCombiningchar (const ACEXML_Char c) const;  /**   * Check if a character @a c is a Digit.   *   * @retval 1 if @a c is a valid Digit character, 0 otherwise.   */  int isDigit (const ACEXML_Char c) const;  /**   * Check if a character @a c is an Extender.   *   * @retval 1 if @a c is a valid Extender character, 0 otherwise.   */  int isExtender (const ACEXML_Char c) const;  /**   * Check if a character @a c is a Letter.   *   * @retval 1 if @a c is a valid Letter character, 0 otherwise.   */  int isLetter (const ACEXML_Char c) const;  /**   * Check if a character is an acceptable NameChar.   *   * @retval 1 if @a c is a valid NameChar character, 0 otherwise.   */  int isNameChar (const ACEXML_Char c) const;  /**   * Check if a character is a PubidChar.   *   * @retval 1 if @a c is a valid PubidChar character, 0 otherwise.   */  int isPubidChar (const ACEXML_Char c) const;  /// Get a character.  virtual ACEXML_Char get (void);  /// Peek a character.  virtual ACEXML_Char peek (void);private:  // *** Helper functions for parsing XML  /**   * Skip any whitespaces encountered until the first non-whitespace   * character is encountered.   *   * @return The next non-whitespace character from the CharStream.   *   * @sa skip_whitespace_count   */  ACEXML_Char skip_whitespace (void);  /**   * Skip any whitespaces encountered until the first non-whitespace   * character.  The first non-whitespace character is not consumed.   * This method does peek into the input CharStream and therefore   * is more expensive than @ref skip_whitespace.   *   * @param peek If non-null, @a peek points to a ACEXML_Char where   *        skip_whitespace_count stores the first non-whitespace   *        character it sees (character is not removed from the stream.)   *   * @return The number of whitespace characters consumed.   *   * @sa skip_whitespace   */  int skip_whitespace_count (ACEXML_Char *peek = 0);  /**   * Skip an equal sign.   *   * @retval 0 when succeeds, -1 if no equal sign is found.   */  int skip_equal (void);  /**   * Get a quoted string.  Quoted strings are used to specify   * attribute values and this routine will replace character and   * entity references on-the-fly.  Parameter entities are not allowed   * (or replaced) in this function.  (But regular entities are.)   *   * @param str returns the un-quoted string.   *   * @retval 0 on success, -1 otherwise.   */  int get_quoted_string (ACEXML_Char *&str);  /**   * Check if a character @a c is a Digit.   *   * @retval 1 if @a c is a valid Digit character, 0 otherwise.   */  int isNormalDigit (const ACEXML_Char c) const;  /**   * Dispatch errors to ErrorHandler.   *   */  void error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   * Dispatch warnings to ErrorHandler.   *   */  void warning (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   * Dispatch fatal errors to ErrorHandler.   *   */  void fatal_error (const ACEXML_Char* msg ACEXML_ENV_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   * Dispatch prefix mapping calls to the ContentHandler.   *   * @param prefix Namespace prefix   * @param uri Namespace URI   * @param name Local name   * @param start 1 => startPrefixMapping 0 => endPrefixMapping   */  void prefix_mapping (const ACEXML_Char* prefix,                       const ACEXML_Char* uri,                       int start ACEXML_ENV_ARG_DECL)    ACE_THROW_SPEC ((ACEXML_SAXException));  /**   *  Parse a keyword.   */  int parse_token (const ACEXML_Char* keyword);  /**   *  Push the current context on to the stack.   *   */  int push_context (ACEXML_Parser_Context* context);  /**   *  Pop the top element in the stack and replace current context with that.   */  int pop_context (int GE_ref ACEXML_ENV_ARG_DECL);  /**   *  Create a new ACEXML_CharStream from @a systemId and @a publicId and   *  replace the current input stream with the newly created stream.   */  virtual int switch_input (ACEXML_CharStream* cstream,                            const ACEXML_Char* systemId,                            const ACEXML_Char* publicId = 0);  /**   *  Create a new ACEXML_InputSource from @a systemId and @a publicId and   *  replace the current input source with the newly created InputSource.   */  virtual int switch_input (ACEXML_InputSource* input,                            const ACEXML_Char* systemId,                            const ACEXML_Char* publicId = 0);  /**   * Check for a parameter entity reference. This is used to check for the   * occurence of a PE Reference withing markupDecl. Additionally this   * function consumes any leading or trailing whitespace around the PE   * Reference.   *   * @retval Number of whitespace characters skipped.   */  int check_for_PE_reference (ACEXML_ENV_SINGLE_ARG_DECL);  /**   *  Reset the parser state.   *   */  void reset (void);  /**   * Very trivial, non-conformant normalization of a systemid.   *   */  ACEXML_Char* normalize_systemid (const ACEXML_Char* systemId);  // Feature names:  /**   * \addtogroup acexml_parser_features   * @{   */  /**   * @var simple_parsing_feature_   *   * This constant string defines the name of "simple XML parsing"   * feature.  When this feature is enabled, ACEXML parser is allowed   * to parse a simple XML stream without mandated XML prolog   * and no DTD defintion.   */  static const ACEXML_Char simple_parsing_feature_[];  /**   * @var namespaces_feature_   *   * This constant string defines the SAX XML Namespace feature. When this   * feature is enabled, ACEXML parser allows access by namespace qualified   * names.   */  static const ACEXML_Char namespaces_feature_[];  /**   *  @var namespace_prefixes_feature_   *   *  This constant string defines the SAX XML Namespace prefixes feature.   *  Normally the list of attributes returned by the parser will not   *  contain attributes used as namespace declarations (xmlns*). When this   *  feature is enabled, the list of attributes contains the namespace   *  declarations also.   */  static const ACEXML_Char namespace_prefixes_feature_[];  /**   *  @var validation_feature_   *   *  This constant string defines the SAX XML Validation feature. When   *  this feature is enabled, the parser validates the document in   *  addition to checking for well-formedness.   */  static const ACEXML_Char validation_feature_[];  /* @} */  /// Keeping track of the handlers. We do not manage the memory for  /// handlers.  ACEXML_DTDHandler *dtd_handler_;  ACEXML_EntityResolver *entity_resolver_;  ACEXML_ContentHandler *content_handler_;  ACEXML_ErrorHandler *error_handler_;  /// Document Type  ACEXML_Char *doctype_;  /// Current parser context  ACEXML_Parser_Context* current_;  /// Stack used to hold the Parser_Context  ACE_Unbounded_Stack<ACEXML_Parser_Context*> ctx_stack_;  /*   * The following two are essentially chains of references and is used by   * the parser to determine if there is any recursion. We keep two of   * these one for general entities and one for parameter entities, as they   * both fall under different namespaces.   *   */  /// Set used to hold the general entity references that are active.  ACE_Unbounded_Stack<ACEXML_Char*> GE_reference_;  /// Set used to hold the parameter entity references that are active.  ACE_Unbounded_Stack<ACEXML_Char*> PE_reference_;  /// Obstack used by the parser to hold all the strings parsed  ACE_Obstack_T<ACEXML_Char> obstack_;  /// Alternative obstack used to hold any strings when the original is in use  ACE_Obstack_T<ACEXML_Char> alt_stack_;  /// Namespace stack used by the parser to implement support for Namespaces  ACEXML_NamespaceSupport xml_namespace_;  /// T => We are processing a nested namespace  int nested_namespace_;  /// Set of internal parsed general entities in the document  ACEXML_Entity_Manager internal_GE_;  /// Set of external parsed general entities in the document  ACEXML_Entity_Manager external_GE_;  /// Set of unparsed entities in the document  ACEXML_Entity_Manager unparsed_entities_;  /// Set of predefined entities used by the parser  ACEXML_Entity_Manager predef_entities_;  /// Set of internal parsed parameter entities in the document  ACEXML_Entity_Manager internal_PE_;  /// Set of external parsed parameter entities in the document  ACEXML_Entity_Manager external_PE_;  /// Set of notations declared in the document  ACEXML_Entity_Manager notations_;  /// State of the parser when it encounters a reference.  ACEXML_ParserInt::ReferenceState ref_state_;  /// T => We are parsing an external subset  int external_subset_;  /// T => We are parsing an external entity value  int external_entity_;  /// T => Internal DTD has parameter entity references  int has_pe_refs_;  /// If set, the document is a standalone XML document  int standalone_;  /// If set, the document has an external DTD subset  int external_dtd_;  /// If set, the document has an internal DTD  int internal_dtd_;  /// Feature flags  /// If set, the parser should parse a document without a prolog  int simple_parsing_;  /// If set, the parser should also validate  int validate_;  /// If set, the parser should allow access by namespace qualified names.  int namespaces_;  /// If set, the parser should include namespace declarations in the list  /// of attributes of an element.  int namespace_prefixes_;};#if defined (__ACEXML_INLINE__)# include "ACEXML/parser/parser/Parser.i"#endif /* __ACEXML_INLINE__ */#include /**/ "ace/post.h"#endif /* _ACEXML_BASIC_PARSER_H_ */

⌨️ 快捷键说明

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