ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     /**
 * @file
 * 
 * @brief API to build regexp automata
 * 
 * These are internal functions and shouldn't be used.
 *
 * @copyright See Copyright for the status of this software.
 *
 * @author Daniel Veillard
 */

#ifndef __XML_AUTOMATA_H__
#define __XML_AUTOMATA_H__

#include <libxml/xmlversion.h>

#ifdef LIBXML_REGEXP_ENABLED

#include <libxml/xmlstring.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * A libxml automata description
 *
 * It can be compiled into a regexp
 */
typedef struct _xmlAutomata xmlAutomata;
typedef xmlAutomata *xmlAutomataPtr;

/**
 * A state in the automata description
 */
typedef struct _xmlAutomataState xmlAutomataState;
typedef xmlAutomataState *xmlAutomataStatePtr;

/*
 * Building API
 */
XML_DEPRECATED
XMLPUBFUN xmlAutomata *
		    xmlNewAutomata		(void);
XML_DEPRECATED
XMLPUBFUN void
		    xmlFreeAutomata		(xmlAutomata *am);

XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataGetInitState	(xmlAutomata *am);
XML_DEPRECATED
XMLPUBFUN int
		    xmlAutomataSetFinalState	(xmlAutomata *am,
						 xmlAutomataState *state);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewState		(xmlAutomata *am);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewTransition	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewTransition2	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 const xmlChar *token2,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
                    xmlAutomataNewNegTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 const xmlChar *token2,
						 void *data);

XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewCountTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 int min,
						 int max,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewCountTrans2	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 const xmlChar *token2,
						 int min,
						 int max,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewOnceTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 int min,
						 int max,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewOnceTrans2	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 const xmlChar *token,
						 const xmlChar *token2,
						 int min,
						 int max,
						 void *data);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewAllTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 int lax);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewEpsilon	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewCountedTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 int counter);
XML_DEPRECATED
XMLPUBFUN xmlAutomataState *
		    xmlAutomataNewCounterTrans	(xmlAutomata *am,
						 xmlAutomataState *from,
						 xmlAutomataState *to,
						 int counter);
XML_DEPRECATED
XMLPUBFUN int
		    xmlAutomataNewCounter	(xmlAutomata *am,
						 int min,
						 int max);

XML_DEPRECATED
XMLPUBFUN struct _xmlRegexp *
		    xmlAutomataCompile		(xmlAutomata *am);
XML_DEPRECATED
XMLPUBFUN int
		    xmlAutomataIsDeterminist	(xmlAutomata *am);

#ifdef __cplusplus
}
#endif

#endif /* LIBXML_REGEXP_ENABLED */

#endif /* __XML_AUTOMATA_H__ */
