xmlautomata.h

Go to the documentation of this file.
00001 /*
00002  * Summary: API to build regexp automata
00003  * Description: the API to build regexp automata
00004  *
00005  * Copy: See Copyright for the status of this software.
00006  *
00007  * Author: Daniel Veillard
00008  */
00009 
00010 #ifndef __XML_AUTOMATA_H__
00011 #define __XML_AUTOMATA_H__
00012 
00013 #include <libxml/xmlversion.h>
00014 #include <libxml/tree.h>
00015 
00016 #ifdef LIBXML_REGEXP_ENABLED
00017 #ifdef LIBXML_AUTOMATA_ENABLED
00018 #include <libxml/xmlregexp.h>
00019 
00020 #ifdef __cplusplus
00021 extern "C" {
00022 #endif
00023 
00029 typedef struct _xmlAutomata xmlAutomata;
00030 typedef xmlAutomata *xmlAutomataPtr;
00031 
00037 typedef struct _xmlAutomataState xmlAutomataState;
00038 typedef xmlAutomataState *xmlAutomataStatePtr;
00039 
00040 /*
00041  * Building API
00042  */
00043 XMLPUBFUN xmlAutomataPtr XMLCALL        
00044             xmlNewAutomata      (void);
00045 XMLPUBFUN void XMLCALL          
00046             xmlFreeAutomata     (xmlAutomataPtr am);
00047 
00048 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00049             xmlAutomataGetInitState (xmlAutomataPtr am);
00050 XMLPUBFUN int XMLCALL           
00051             xmlAutomataSetFinalState    (xmlAutomataPtr am,
00052                          xmlAutomataStatePtr state);
00053 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00054             xmlAutomataNewState     (xmlAutomataPtr am);
00055 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00056             xmlAutomataNewTransition    (xmlAutomataPtr am,
00057                          xmlAutomataStatePtr from,
00058                          xmlAutomataStatePtr to,
00059                          const xmlChar *token,
00060                          void *data);
00061 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00062             xmlAutomataNewTransition2   (xmlAutomataPtr am,
00063                          xmlAutomataStatePtr from,
00064                          xmlAutomataStatePtr to,
00065                          const xmlChar *token,
00066                          const xmlChar *token2,
00067                          void *data);
00068 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00069                     xmlAutomataNewNegTrans  (xmlAutomataPtr am,
00070                          xmlAutomataStatePtr from,
00071                          xmlAutomataStatePtr to,
00072                          const xmlChar *token,
00073                          const xmlChar *token2,
00074                          void *data);
00075 
00076 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00077             xmlAutomataNewCountTrans    (xmlAutomataPtr am,
00078                          xmlAutomataStatePtr from,
00079                          xmlAutomataStatePtr to,
00080                          const xmlChar *token,
00081                          int min,
00082                          int max,
00083                          void *data);
00084 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00085             xmlAutomataNewCountTrans2   (xmlAutomataPtr am,
00086                          xmlAutomataStatePtr from,
00087                          xmlAutomataStatePtr to,
00088                          const xmlChar *token,
00089                          const xmlChar *token2,
00090                          int min,
00091                          int max,
00092                          void *data);
00093 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00094             xmlAutomataNewOnceTrans (xmlAutomataPtr am,
00095                          xmlAutomataStatePtr from,
00096                          xmlAutomataStatePtr to,
00097                          const xmlChar *token,
00098                          int min,
00099                          int max,
00100                          void *data);
00101 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00102             xmlAutomataNewOnceTrans2    (xmlAutomataPtr am, 
00103                          xmlAutomataStatePtr from,
00104                          xmlAutomataStatePtr to, 
00105                          const xmlChar *token,
00106                          const xmlChar *token2,
00107                          int min, 
00108                          int max, 
00109                          void *data);
00110 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00111             xmlAutomataNewAllTrans  (xmlAutomataPtr am,
00112                          xmlAutomataStatePtr from,
00113                          xmlAutomataStatePtr to,
00114                          int lax);
00115 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00116             xmlAutomataNewEpsilon   (xmlAutomataPtr am,
00117                          xmlAutomataStatePtr from,
00118                          xmlAutomataStatePtr to);
00119 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00120             xmlAutomataNewCountedTrans  (xmlAutomataPtr am,
00121                          xmlAutomataStatePtr from,
00122                          xmlAutomataStatePtr to,
00123                          int counter);
00124 XMLPUBFUN xmlAutomataStatePtr XMLCALL   
00125             xmlAutomataNewCounterTrans  (xmlAutomataPtr am,
00126                          xmlAutomataStatePtr from,
00127                          xmlAutomataStatePtr to,
00128                          int counter);
00129 XMLPUBFUN int XMLCALL           
00130             xmlAutomataNewCounter   (xmlAutomataPtr am,
00131                          int min,
00132                          int max);
00133 
00134 XMLPUBFUN xmlRegexpPtr XMLCALL      
00135             xmlAutomataCompile      (xmlAutomataPtr am);
00136 XMLPUBFUN int XMLCALL               
00137             xmlAutomataIsDeterminist    (xmlAutomataPtr am);
00138 
00139 #ifdef __cplusplus
00140 }
00141 #endif 
00142 
00143 #endif /* LIBXML_AUTOMATA_ENABLED */
00144 #endif /* LIBXML_REGEXP_ENABLED */
00145 
00146 #endif /* __XML_AUTOMATA_H__ */
footer
 SourceForge.net Logo