00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __FAXPP__TOKEN_H
00018 #define __FAXPP__TOKEN_H
00019
00020 #include "text.h"
00021
00023 typedef enum {
00024 NO_TOKEN = 0,
00025
00026 XML_DECL_VERSION_TOKEN,
00027 XML_DECL_ENCODING_TOKEN,
00028 XML_DECL_STANDALONE_TOKEN,
00029 XML_DECL_END_TOKEN,
00030
00031 START_ELEMENT_PREFIX_TOKEN,
00032 START_ELEMENT_NAME_TOKEN,
00033 START_ELEMENT_END_TOKEN,
00034 SELF_CLOSING_ELEMENT_TOKEN,
00035
00036 XMLNS_PREFIX_TOKEN,
00037 XMLNS_NAME_TOKEN,
00038
00039 XML_PREFIX_TOKEN,
00040
00041 ATTRIBUTE_PREFIX_TOKEN,
00042 ATTRIBUTE_NAME_TOKEN,
00043 ATTRIBUTE_VALUE_TOKEN,
00044
00045 END_ELEMENT_PREFIX_TOKEN,
00046 END_ELEMENT_NAME_TOKEN,
00047
00048 CHARACTERS_TOKEN,
00049 CDATA_TOKEN,
00050 IGNORABLE_WHITESPACE_TOKEN,
00051
00052 COMMENT_TOKEN,
00053
00054 PI_NAME_TOKEN,
00055 PI_VALUE_TOKEN,
00056
00057 AMP_ENTITY_REFERENCE_TOKEN,
00058 APOS_ENTITY_REFERENCE_TOKEN,
00059 GT_ENTITY_REFERENCE_TOKEN,
00060 LT_ENTITY_REFERENCE_TOKEN,
00061 QUOT_ENTITY_REFERENCE_TOKEN,
00062
00063 ENTITY_REFERENCE_TOKEN,
00064 DEC_CHAR_REFERENCE_TOKEN,
00065 HEX_CHAR_REFERENCE_TOKEN,
00066 PE_REFERENCE_TOKEN,
00067 PE_REFERENCE_IN_MARKUP_TOKEN,
00068
00069 DOCTYPE_PREFIX_TOKEN,
00070 DOCTYPE_NAME_TOKEN,
00071 DOCTYPE_END_TOKEN,
00072
00073 SYSTEM_LITERAL_TOKEN,
00074 PUBID_LITERAL_TOKEN,
00075 NDATA_NAME_TOKEN,
00076
00077 ELEMENTDECL_PREFIX_TOKEN,
00078 ELEMENTDECL_NAME_TOKEN,
00079 ELEMENTDECL_EMPTY_TOKEN,
00080 ELEMENTDECL_ANY_TOKEN,
00081 ELEMENTDECL_PCDATA_TOKEN,
00082 ELEMENTDECL_LPAR_TOKEN,
00083 ELEMENTDECL_RPAR_TOKEN,
00084 ELEMENTDECL_QUESTION_TOKEN,
00085 ELEMENTDECL_STAR_TOKEN,
00086 ELEMENTDECL_PLUS_TOKEN,
00087 ELEMENTDECL_BAR_TOKEN,
00088 ELEMENTDECL_COMMA_TOKEN,
00089 ELEMENTDECL_END_TOKEN,
00090
00091 ATTLISTDECL_PREFIX_TOKEN,
00092 ATTLISTDECL_NAME_TOKEN,
00093 ATTLISTDECL_ATTDEF_PREFIX_TOKEN,
00094 ATTLISTDECL_ATTDEF_NAME_TOKEN,
00095 ATTLISTDECL_ATTTYPE_ENTITY_TOKEN,
00096 ATTLISTDECL_ATTTYPE_ENTITIES_TOKEN,
00097 ATTLISTDECL_ATTTYPE_NMTOKEN_TOKEN,
00098 ATTLISTDECL_ATTTYPE_NMTOKENS_TOKEN,
00099 ATTLISTDECL_ATTTYPE_ID_TOKEN,
00100 ATTLISTDECL_ATTTYPE_IDREF_TOKEN,
00101 ATTLISTDECL_ATTTYPE_IDREFS_TOKEN,
00102 ATTLISTDECL_ATTTYPE_CDATA_TOKEN,
00103 ATTLISTDECL_NOTATION_NAME_TOKEN,
00104 ATTLISTDECL_ENUMERATION_NAME_TOKEN,
00105 ATTLISTDECL_DEFAULT_IMPLIED_TOKEN,
00106 ATTLISTDECL_DEFAULT_REQUIRED_TOKEN,
00107 ATTLISTDECL_DEFAULT_FIXED_TOKEN,
00108 ATTLISTDECL_END_TOKEN,
00109
00110 NOTATIONDECL_NAME_TOKEN,
00111 NOTATIONDECL_END_TOKEN,
00112
00113 ENTITYDECL_NAME_TOKEN,
00114 ENTITYDECL_VALUE_TOKEN,
00115 ENTITYDECL_END_TOKEN,
00116 PARAMENTITYDECL_NAME_TOKEN,
00117
00118 END_OF_BUFFER_TOKEN = 99
00119 } FAXPP_TokenType;
00120
00122 typedef struct {
00123 FAXPP_TokenType type;
00124 FAXPP_Text value;
00125 unsigned int line;
00126 unsigned int column;
00127 } FAXPP_Token;
00128
00136 const char *FAXPP_token_to_string(const FAXPP_TokenType type);
00137
00138 #endif