File indexing completed on 2025-02-22 10:41:51
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __XML_AUTOMATA_H__
0011 #define __XML_AUTOMATA_H__
0012
0013 #include <libxml/xmlversion.h>
0014
0015 #ifdef LIBXML_REGEXP_ENABLED
0016 #ifdef LIBXML_AUTOMATA_ENABLED
0017
0018 #include <libxml/xmlstring.h>
0019
0020 #ifdef __cplusplus
0021 extern "C" {
0022 #endif
0023
0024
0025
0026
0027
0028
0029 typedef struct _xmlAutomata xmlAutomata;
0030 typedef xmlAutomata *xmlAutomataPtr;
0031
0032
0033
0034
0035
0036
0037 typedef struct _xmlAutomataState xmlAutomataState;
0038 typedef xmlAutomataState *xmlAutomataStatePtr;
0039
0040
0041
0042
0043 XMLPUBFUN xmlAutomataPtr
0044 xmlNewAutomata (void);
0045 XMLPUBFUN void
0046 xmlFreeAutomata (xmlAutomataPtr am);
0047
0048 XMLPUBFUN xmlAutomataStatePtr
0049 xmlAutomataGetInitState (xmlAutomataPtr am);
0050 XMLPUBFUN int
0051 xmlAutomataSetFinalState (xmlAutomataPtr am,
0052 xmlAutomataStatePtr state);
0053 XMLPUBFUN xmlAutomataStatePtr
0054 xmlAutomataNewState (xmlAutomataPtr am);
0055 XMLPUBFUN xmlAutomataStatePtr
0056 xmlAutomataNewTransition (xmlAutomataPtr am,
0057 xmlAutomataStatePtr from,
0058 xmlAutomataStatePtr to,
0059 const xmlChar *token,
0060 void *data);
0061 XMLPUBFUN xmlAutomataStatePtr
0062 xmlAutomataNewTransition2 (xmlAutomataPtr am,
0063 xmlAutomataStatePtr from,
0064 xmlAutomataStatePtr to,
0065 const xmlChar *token,
0066 const xmlChar *token2,
0067 void *data);
0068 XMLPUBFUN xmlAutomataStatePtr
0069 xmlAutomataNewNegTrans (xmlAutomataPtr am,
0070 xmlAutomataStatePtr from,
0071 xmlAutomataStatePtr to,
0072 const xmlChar *token,
0073 const xmlChar *token2,
0074 void *data);
0075
0076 XMLPUBFUN xmlAutomataStatePtr
0077 xmlAutomataNewCountTrans (xmlAutomataPtr am,
0078 xmlAutomataStatePtr from,
0079 xmlAutomataStatePtr to,
0080 const xmlChar *token,
0081 int min,
0082 int max,
0083 void *data);
0084 XMLPUBFUN xmlAutomataStatePtr
0085 xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
0086 xmlAutomataStatePtr from,
0087 xmlAutomataStatePtr to,
0088 const xmlChar *token,
0089 const xmlChar *token2,
0090 int min,
0091 int max,
0092 void *data);
0093 XMLPUBFUN xmlAutomataStatePtr
0094 xmlAutomataNewOnceTrans (xmlAutomataPtr am,
0095 xmlAutomataStatePtr from,
0096 xmlAutomataStatePtr to,
0097 const xmlChar *token,
0098 int min,
0099 int max,
0100 void *data);
0101 XMLPUBFUN xmlAutomataStatePtr
0102 xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
0103 xmlAutomataStatePtr from,
0104 xmlAutomataStatePtr to,
0105 const xmlChar *token,
0106 const xmlChar *token2,
0107 int min,
0108 int max,
0109 void *data);
0110 XMLPUBFUN xmlAutomataStatePtr
0111 xmlAutomataNewAllTrans (xmlAutomataPtr am,
0112 xmlAutomataStatePtr from,
0113 xmlAutomataStatePtr to,
0114 int lax);
0115 XMLPUBFUN xmlAutomataStatePtr
0116 xmlAutomataNewEpsilon (xmlAutomataPtr am,
0117 xmlAutomataStatePtr from,
0118 xmlAutomataStatePtr to);
0119 XMLPUBFUN xmlAutomataStatePtr
0120 xmlAutomataNewCountedTrans (xmlAutomataPtr am,
0121 xmlAutomataStatePtr from,
0122 xmlAutomataStatePtr to,
0123 int counter);
0124 XMLPUBFUN xmlAutomataStatePtr
0125 xmlAutomataNewCounterTrans (xmlAutomataPtr am,
0126 xmlAutomataStatePtr from,
0127 xmlAutomataStatePtr to,
0128 int counter);
0129 XMLPUBFUN int
0130 xmlAutomataNewCounter (xmlAutomataPtr am,
0131 int min,
0132 int max);
0133
0134 XMLPUBFUN struct _xmlRegexp *
0135 xmlAutomataCompile (xmlAutomataPtr am);
0136 XMLPUBFUN int
0137 xmlAutomataIsDeterminist (xmlAutomataPtr am);
0138
0139 #ifdef __cplusplus
0140 }
0141 #endif
0142
0143 #endif
0144 #endif
0145
0146 #endif