00001
00014 #ifndef XMLTOKEN_H_INCLUDED
00015 #define XMLTOKEN_H_INCLUDED
00016
00017 #include <LibXmlKit/xmlnode.h>
00018
00022 typedef enum {
00023 XML_TOKEN_STATE_ELM_HDR,
00024 XML_TOKEN_STATE_ELM_NAME,
00025 XML_TOKEN_STATE_ELM_END,
00026 XML_TOKEN_STATE_TEXT,
00027 XML_TOKEN_STATE_FINISH
00028 } XmlTokenState ;
00029
00031 static const int XML_TOKEN_CHAR_ELM_BEGIN = '<' ;
00032 static const int XML_TOKEN_CHAR_ELM_END = '>' ;
00033 static const int XML_TOKEN_CHAR_TEXT = '#' ;
00034 static const int XML_TOKEN_CHAR_EOF = EOF ;
00035
00042 typedef struct {
00044 XmlTokenState token_state ;
00046 XmlNode * token_node ;
00047 } XmlToken ;
00048
00054 typedef XmlToken * XmlTokenPtr ;
00055
00061 typedef const XmlToken * XmlConstTokenPtr ;
00062
00071 static inline void
00072 xml_token_set(XmlTokenPtr dst, XmlTokenState state, XmlNode * node)
00073 {
00074 dst->token_state = state ;
00075 dst->token_node = node ;
00076 }
00077
00085 void
00086 xml_token_print(FILE * outfp, XmlConstTokenPtr token) ;
00087
00088 #endif
00089