00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file ParserInternals.h 00006 * 00007 * ParserInternals.h,v 1.3 2003/07/19 19:04:10 dhinton Exp 00008 * 00009 * @author Krishnakumar B <kitty@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef _ACEXML_PARSER_INTERNALS_H_ 00014 #define _ACEXML_PARSER_INTERNALS_H_ 00015 00016 #include /**/ "ace/pre.h" 00017 #include "ACEXML/parser/parser/Parser_export.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 #pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 #include "ACEXML/common/XML_Types.h" 00024 00025 /** 00026 * @class ACEXML_ParserInt ParserInternals.h "ACEXML/parser/parser/ParserInternals.h" 00027 * 00028 * @brief A class to hide some of the internal implementation details of 00029 * the parser. 00030 * 00031 */ 00032 class ACEXML_PARSER_Export ACEXML_ParserInt 00033 { 00034 00035 public: 00036 #if defined (ACE_USES_WCHAR) 00037 00038 /** 00039 * Check if a character @a c is a BaseChar. This method checks for the 00040 * complete set of characters allowed when WCHAR support is enabled. 00041 * 00042 * @retval 1 if @a c is a valid XML Character, 0 otherwise. 00043 */ 00044 static int isBasechar_i (const ACEXML_Char c); 00045 00046 /** 00047 * Check if a character @a c is a Ideographic. This method checks for the 00048 * complete set of characters allowed when WCHAR support is enabled. 00049 * 00050 * @retval 1 if @a c is a valid XML Character, 0 otherwise. 00051 */ 00052 static int isIdeographic_i (const ACEXML_Char c); 00053 00054 /** 00055 * Check if a character @a c is a CombiningChar. This method checks for the 00056 * complete set of characters allowed when WCHAR support is enabled. 00057 * 00058 * @retval 1 if @a c is a valid XML Character, 0 otherwise. 00059 */ 00060 static int isCombiningchar_i (const ACEXML_Char c); 00061 00062 /** 00063 * Check if a character @a c is a Digit. This method checks for the 00064 * complete set of characters allowed when WCHAR support is enabled. 00065 * 00066 * @retval 1 if @a c is a valid XML Character, 0 otherwise. 00067 */ 00068 static int isDigit_i (const ACEXML_Char c); 00069 00070 /** 00071 * Check if a character @a c is an Extender. This method checks for the 00072 * complete set of characters allowed when WCHAR support is enabled. 00073 * 00074 * @retval 1 if @a c is a valid XML Character, 0 otherwise. 00075 */ 00076 static int isExtender_i (const ACEXML_Char c); 00077 00078 #endif /* ACE_USES_WCHAR */ 00079 00080 static const ACEXML_Char base_char_table_[256]; 00081 00082 static const ACEXML_Char* msg_[]; 00083 00084 static const ACEXML_Char* predef_ent_[]; 00085 00086 static const ACEXML_Char* predef_val_[]; 00087 00088 // Enum describing the position in a document when a reference occurs. 00089 enum ReferenceState { 00090 IN_CONTENT, 00091 IN_ATT_VALUE, 00092 AS_ATT_VALUE, 00093 IN_ENTITY_VALUE, 00094 IN_INT_DTD, 00095 IN_EXT_DTD, 00096 IN_NOTATION, 00097 INVALID = -1 00098 }; 00099 00100 }; 00101 00102 #include /**/ "ace/post.h" 00103 00104 #endif /* _ACEXML_PARSER_INTERNALS_H_ */