Eneboo - Documentación para desarrolladores
|
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__ */