00001
00002
00003
00004
00005
00006
00007
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
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
00144 #endif
00145
00146 #endif