00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __XML_AUTOMATA_H__
00010 #define __XML_AUTOMATA_H__
00011
00012 #include <libxml/xmlversion.h>
00013 #include <libxml/tree.h>
00014
00015 #ifdef LIBXML_AUTOMATA_ENABLED
00016 #include <libxml/xmlregexp.h>
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00027 typedef struct _xmlAutomata xmlAutomata;
00028 typedef xmlAutomata *xmlAutomataPtr;
00029
00035 typedef struct _xmlAutomataState xmlAutomataState;
00036 typedef xmlAutomataState *xmlAutomataStatePtr;
00037
00038
00039
00040
00041 XMLPUBFUN xmlAutomataPtr XMLCALL
00042 xmlNewAutomata (void);
00043 XMLPUBFUN void XMLCALL
00044 xmlFreeAutomata (xmlAutomataPtr am);
00045
00046 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00047 xmlAutomataGetInitState (xmlAutomataPtr am);
00048 XMLPUBFUN int XMLCALL
00049 xmlAutomataSetFinalState (xmlAutomataPtr am,
00050 xmlAutomataStatePtr state);
00051 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00052 xmlAutomataNewState (xmlAutomataPtr am);
00053 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00054 xmlAutomataNewTransition (xmlAutomataPtr am,
00055 xmlAutomataStatePtr from,
00056 xmlAutomataStatePtr to,
00057 const xmlChar *token,
00058 void *data);
00059 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00060 xmlAutomataNewTransition2 (xmlAutomataPtr am,
00061 xmlAutomataStatePtr from,
00062 xmlAutomataStatePtr to,
00063 const xmlChar *token,
00064 const xmlChar *token2,
00065 void *data);
00066 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00067 xmlAutomataNewCountTrans (xmlAutomataPtr am,
00068 xmlAutomataStatePtr from,
00069 xmlAutomataStatePtr to,
00070 const xmlChar *token,
00071 int min,
00072 int max,
00073 void *data);
00074 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00075 xmlAutomataNewOnceTrans (xmlAutomataPtr am,
00076 xmlAutomataStatePtr from,
00077 xmlAutomataStatePtr to,
00078 const xmlChar *token,
00079 int min,
00080 int max,
00081 void *data);
00082 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00083 xmlAutomataNewAllTrans (xmlAutomataPtr am,
00084 xmlAutomataStatePtr from,
00085 xmlAutomataStatePtr to,
00086 int lax);
00087 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00088 xmlAutomataNewEpsilon (xmlAutomataPtr am,
00089 xmlAutomataStatePtr from,
00090 xmlAutomataStatePtr to);
00091 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00092 xmlAutomataNewCountedTrans (xmlAutomataPtr am,
00093 xmlAutomataStatePtr from,
00094 xmlAutomataStatePtr to,
00095 int counter);
00096 XMLPUBFUN xmlAutomataStatePtr XMLCALL
00097 xmlAutomataNewCounterTrans (xmlAutomataPtr am,
00098 xmlAutomataStatePtr from,
00099 xmlAutomataStatePtr to,
00100 int counter);
00101 XMLPUBFUN int XMLCALL
00102 xmlAutomataNewCounter (xmlAutomataPtr am,
00103 int min,
00104 int max);
00105
00106 XMLPUBFUN xmlRegexpPtr XMLCALL
00107 xmlAutomataCompile (xmlAutomataPtr am);
00108 XMLPUBFUN int XMLCALL
00109 xmlAutomataIsDeterminist (xmlAutomataPtr am);
00110
00111 #ifdef __cplusplus
00112 }
00113 #endif
00114
00115 #endif
00116 #endif
00117