#ifndef XML_TOK_H /* xml/html tokenizer (c) Øyvind Kolås 2002 */ #define inbufsize 4096 #define outbufsize 4096 enum { t_none, t_whitespace, t_prolog, t_dtd, t_comment, t_word, t_tag, t_closetag, t_closeemptytag, t_endtag, t_att, t_val, t_eof, t_entity, t_error }; typedef struct { FILE *file_in; int state; char rbuf[outbufsize]; char curtag[outbufsize]; int c; int c_held; unsigned char inbuf[inbufsize]; int inbuflen; int inbufpos; int line_no; } xml_tok_state; xml_tok_state *xml_tok_init (FILE * file_in); void xml_tok_cleanup (xml_tok_state * t); /* get an xml token * @param data pointer to pointer to string where the result * ing data should be put * @return token type * */ int xml_tok_get (xml_tok_state * t, char **data); /** get a html token * same as above, but tries to balance bad html parse * trees, tries to do an automatic transformation from * html to xhtml */ int html_tok_get (xml_tok_state * t, char **data); #define XML_TOK_H #endif /*XML_TOK_H */