/app/libxml2-2.4.28/include/libxml2/libxml/xmlautomata.h


    1 /*
    2  * automata.h : description of the API to build regexp automats
    3  *
    4  * See Copyright for the status of this software.
    5  *
    6  * Daniel Veillard <veillard@redhat.com>
    7  */
    8 
    9 #ifndef __XML_AUTOMATA_H__
   10 #define __XML_AUTOMATA_H__
   11 
   12 #include <libxml/xmlversion.h>
   13 #include <libxml/tree.h>
   14 
   15 #ifdef LIBXML_AUTOMATA_ENABLED
   16 #include <libxml/xmlregexp.h>
   17 
   18 #ifdef __cplusplus
   19 extern "C" {
   20 #endif
   21 
   22 /**
   23  * xmlAutomataPtr:
   24  *
   25  * A libxml automata description, It can be compiled into a regexp
   26  */
   27 typedef struct _xmlAutomata xmlAutomata;
   28 typedef xmlAutomata *xmlAutomataPtr;
   29 
   30 /**
   31  * xmlAutomataStatePtr:
   32  *
   33  * A state int the automata description,
   34  */
   35 typedef struct _xmlAutomataState xmlAutomataState;
   36 typedef xmlAutomataState *xmlAutomataStatePtr;
   37 
   38 /*
   39  * Building API
   40  */
   41 xmlAutomataPtr		xmlNewAutomata		(void);
   42 void			xmlFreeAutomata		(xmlAutomataPtr am);
   43 
   44 xmlAutomataStatePtr	xmlAutomataGetInitState	(xmlAutomataPtr am);
   45 int			xmlAutomataSetFinalState(xmlAutomataPtr am,
   46 						 xmlAutomataStatePtr state);
   47 xmlAutomataStatePtr	xmlAutomataNewState	(xmlAutomataPtr am);
   48 xmlAutomataStatePtr	xmlAutomataNewTransition(xmlAutomataPtr am,
   49 						 xmlAutomataStatePtr from,
   50 						 xmlAutomataStatePtr to,
   51 						 const xmlChar *token,
   52 						 void *data);
   53 xmlAutomataStatePtr	xmlAutomataNewCountTrans(xmlAutomataPtr am,
   54 						 xmlAutomataStatePtr from,
   55 						 xmlAutomataStatePtr to,
   56 						 const xmlChar *token,
   57 						 int min,
   58 						 int max,
   59 						 void *data);
   60 xmlAutomataStatePtr	xmlAutomataNewOnceTrans	(xmlAutomataPtr am,
   61 						 xmlAutomataStatePtr from,
   62 						 xmlAutomataStatePtr to,
   63 						 const xmlChar *token,
   64 						 int min,
   65 						 int max,
   66 						 void *data);
   67 xmlAutomataStatePtr	xmlAutomataNewAllTrans	(xmlAutomataPtr am,
   68 						 xmlAutomataStatePtr from,
   69 						 xmlAutomataStatePtr to,
   70 						 int lax);
   71 xmlAutomataStatePtr	xmlAutomataNewEpsilon	(xmlAutomataPtr am,
   72 						 xmlAutomataStatePtr from,
   73 						 xmlAutomataStatePtr to);
   74 xmlAutomataStatePtr	xmlAutomataNewCountedTrans(xmlAutomataPtr am,
   75 						 xmlAutomataStatePtr from,
   76 						 xmlAutomataStatePtr to,
   77 						 int counter);
   78 xmlAutomataStatePtr	xmlAutomataNewCounterTrans(xmlAutomataPtr am,
   79 						 xmlAutomataStatePtr from,
   80 						 xmlAutomataStatePtr to,
   81 						 int counter);
   82 int			xmlAutomataNewCounter	(xmlAutomataPtr am,
   83 						 int min,
   84 						 int max);
   85 
   86 xmlRegexpPtr		xmlAutomataCompile	(xmlAutomataPtr am);
   87 int	    		xmlAutomataIsDeterminist(xmlAutomataPtr am);
   88 
   89 #ifdef __cplusplus
   90 }
   91 #endif 
   92 
   93 #endif /* LIBXML_AUTOMATA_ENABLED */
   94 #endif /* __XML_AUTOMATA_H__ */