imgtools/imgcheck/libxml/xmlautomata.h
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     1 /*
       
     2  * Summary: API to build regexp automata
       
     3  * Description: the API to build regexp automata
       
     4  *
       
     5  * Copy: See Copyright for the status of this software.
       
     6  *
       
     7  * Author: Daniel Veillard
       
     8  */
       
     9 
       
    10 #ifndef __XML_AUTOMATA_H__
       
    11 #define __XML_AUTOMATA_H__
       
    12 
       
    13 #include <libxml/xmlversion.h>
       
    14 #include <libxml/tree.h>
       
    15 
       
    16 #ifdef LIBXML_REGEXP_ENABLED
       
    17 #ifdef LIBXML_AUTOMATA_ENABLED
       
    18 #include <libxml/xmlregexp.h>
       
    19 
       
    20 #ifdef __cplusplus
       
    21 extern "C" {
       
    22 #endif
       
    23 
       
    24 /**
       
    25  * xmlAutomataPtr:
       
    26  *
       
    27  * A libxml automata description, It can be compiled into a regexp
       
    28  */
       
    29 typedef struct _xmlAutomata xmlAutomata;
       
    30 typedef xmlAutomata *xmlAutomataPtr;
       
    31 
       
    32 /**
       
    33  * xmlAutomataStatePtr:
       
    34  *
       
    35  * A state int the automata description,
       
    36  */
       
    37 typedef struct _xmlAutomataState xmlAutomataState;
       
    38 typedef xmlAutomataState *xmlAutomataStatePtr;
       
    39 
       
    40 /*
       
    41  * Building API
       
    42  */
       
    43 XMLPUBFUN xmlAutomataPtr XMLCALL		
       
    44 		    xmlNewAutomata		(void);
       
    45 XMLPUBFUN void XMLCALL			
       
    46 		    xmlFreeAutomata		(xmlAutomataPtr am);
       
    47 
       
    48 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    49 		    xmlAutomataGetInitState	(xmlAutomataPtr am);
       
    50 XMLPUBFUN int XMLCALL			
       
    51 		    xmlAutomataSetFinalState	(xmlAutomataPtr am,
       
    52 						 xmlAutomataStatePtr state);
       
    53 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    54 		    xmlAutomataNewState		(xmlAutomataPtr am);
       
    55 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    56 		    xmlAutomataNewTransition	(xmlAutomataPtr am,
       
    57 						 xmlAutomataStatePtr from,
       
    58 						 xmlAutomataStatePtr to,
       
    59 						 const xmlChar *token,
       
    60 						 void *data);
       
    61 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    62 		    xmlAutomataNewTransition2	(xmlAutomataPtr am,
       
    63 						 xmlAutomataStatePtr from,
       
    64 						 xmlAutomataStatePtr to,
       
    65 						 const xmlChar *token,
       
    66 						 const xmlChar *token2,
       
    67 						 void *data);
       
    68 XMLPUBFUN xmlAutomataStatePtr XMLCALL
       
    69                     xmlAutomataNewNegTrans	(xmlAutomataPtr am,
       
    70 						 xmlAutomataStatePtr from,
       
    71 						 xmlAutomataStatePtr to,
       
    72 						 const xmlChar *token,
       
    73 						 const xmlChar *token2,
       
    74 						 void *data);
       
    75 
       
    76 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    77 		    xmlAutomataNewCountTrans	(xmlAutomataPtr am,
       
    78 						 xmlAutomataStatePtr from,
       
    79 						 xmlAutomataStatePtr to,
       
    80 						 const xmlChar *token,
       
    81 						 int min,
       
    82 						 int max,
       
    83 						 void *data);
       
    84 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    85 		    xmlAutomataNewCountTrans2	(xmlAutomataPtr am,
       
    86 						 xmlAutomataStatePtr from,
       
    87 						 xmlAutomataStatePtr to,
       
    88 						 const xmlChar *token,
       
    89 						 const xmlChar *token2,
       
    90 						 int min,
       
    91 						 int max,
       
    92 						 void *data);
       
    93 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
    94 		    xmlAutomataNewOnceTrans	(xmlAutomataPtr am,
       
    95 						 xmlAutomataStatePtr from,
       
    96 						 xmlAutomataStatePtr to,
       
    97 						 const xmlChar *token,
       
    98 						 int min,
       
    99 						 int max,
       
   100 						 void *data);
       
   101 XMLPUBFUN xmlAutomataStatePtr XMLCALL
       
   102 		    xmlAutomataNewOnceTrans2	(xmlAutomataPtr am, 
       
   103 						 xmlAutomataStatePtr from,
       
   104 						 xmlAutomataStatePtr to, 
       
   105 						 const xmlChar *token,
       
   106 						 const xmlChar *token2,
       
   107 						 int min, 
       
   108 						 int max, 
       
   109 						 void *data);
       
   110 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
   111 		    xmlAutomataNewAllTrans	(xmlAutomataPtr am,
       
   112 						 xmlAutomataStatePtr from,
       
   113 						 xmlAutomataStatePtr to,
       
   114 						 int lax);
       
   115 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
   116 		    xmlAutomataNewEpsilon	(xmlAutomataPtr am,
       
   117 						 xmlAutomataStatePtr from,
       
   118 						 xmlAutomataStatePtr to);
       
   119 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
   120 		    xmlAutomataNewCountedTrans	(xmlAutomataPtr am,
       
   121 						 xmlAutomataStatePtr from,
       
   122 						 xmlAutomataStatePtr to,
       
   123 						 int counter);
       
   124 XMLPUBFUN xmlAutomataStatePtr XMLCALL	
       
   125 		    xmlAutomataNewCounterTrans	(xmlAutomataPtr am,
       
   126 						 xmlAutomataStatePtr from,
       
   127 						 xmlAutomataStatePtr to,
       
   128 						 int counter);
       
   129 XMLPUBFUN int XMLCALL			
       
   130 		    xmlAutomataNewCounter	(xmlAutomataPtr am,
       
   131 						 int min,
       
   132 						 int max);
       
   133 
       
   134 XMLPUBFUN xmlRegexpPtr XMLCALL		
       
   135 		    xmlAutomataCompile		(xmlAutomataPtr am);
       
   136 XMLPUBFUN int XMLCALL	    		
       
   137 		    xmlAutomataIsDeterminist	(xmlAutomataPtr am);
       
   138 
       
   139 #ifdef __cplusplus
       
   140 }
       
   141 #endif 
       
   142 
       
   143 #endif /* LIBXML_AUTOMATA_ENABLED */
       
   144 #endif /* LIBXML_REGEXP_ENABLED */
       
   145 
       
   146 #endif /* __XML_AUTOMATA_H__ */