Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / libxml / src / include / libxml / xmlautomata.h
blobbf1b131c653427eff6989dfd8e57698411787da6
1 /*
2 * Summary: API to build regexp automata
3 * Description: the API to build regexp automata
5 * Copy: See Copyright for the status of this software.
7 * Author: Daniel Veillard
8 */
10 #ifndef __XML_AUTOMATA_H__
11 #define __XML_AUTOMATA_H__
13 #include <libxml/xmlversion.h>
14 #include <libxml/tree.h>
16 #ifdef LIBXML_REGEXP_ENABLED
17 #ifdef LIBXML_AUTOMATA_ENABLED
18 #include <libxml/xmlregexp.h>
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
24 /**
25 * xmlAutomataPtr:
27 * A libxml automata description, It can be compiled into a regexp
29 typedef struct _xmlAutomata xmlAutomata;
30 typedef xmlAutomata *xmlAutomataPtr;
32 /**
33 * xmlAutomataStatePtr:
35 * A state int the automata description,
37 typedef struct _xmlAutomataState xmlAutomataState;
38 typedef xmlAutomataState *xmlAutomataStatePtr;
41 * Building API
43 XMLPUBFUN xmlAutomataPtr XMLCALL
44 xmlNewAutomata (void);
45 XMLPUBFUN void XMLCALL
46 xmlFreeAutomata (xmlAutomataPtr am);
48 XMLPUBFUN xmlAutomataStatePtr XMLCALL
49 xmlAutomataGetInitState (xmlAutomataPtr am);
50 XMLPUBFUN int XMLCALL
51 xmlAutomataSetFinalState (xmlAutomataPtr am,
52 xmlAutomataStatePtr state);
53 XMLPUBFUN xmlAutomataStatePtr XMLCALL
54 xmlAutomataNewState (xmlAutomataPtr am);
55 XMLPUBFUN xmlAutomataStatePtr XMLCALL
56 xmlAutomataNewTransition (xmlAutomataPtr am,
57 xmlAutomataStatePtr from,
58 xmlAutomataStatePtr to,
59 const xmlChar *token,
60 void *data);
61 XMLPUBFUN xmlAutomataStatePtr XMLCALL
62 xmlAutomataNewTransition2 (xmlAutomataPtr am,
63 xmlAutomataStatePtr from,
64 xmlAutomataStatePtr to,
65 const xmlChar *token,
66 const xmlChar *token2,
67 void *data);
68 XMLPUBFUN xmlAutomataStatePtr XMLCALL
69 xmlAutomataNewNegTrans (xmlAutomataPtr am,
70 xmlAutomataStatePtr from,
71 xmlAutomataStatePtr to,
72 const xmlChar *token,
73 const xmlChar *token2,
74 void *data);
76 XMLPUBFUN xmlAutomataStatePtr XMLCALL
77 xmlAutomataNewCountTrans (xmlAutomataPtr am,
78 xmlAutomataStatePtr from,
79 xmlAutomataStatePtr to,
80 const xmlChar *token,
81 int min,
82 int max,
83 void *data);
84 XMLPUBFUN xmlAutomataStatePtr XMLCALL
85 xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
86 xmlAutomataStatePtr from,
87 xmlAutomataStatePtr to,
88 const xmlChar *token,
89 const xmlChar *token2,
90 int min,
91 int max,
92 void *data);
93 XMLPUBFUN xmlAutomataStatePtr XMLCALL
94 xmlAutomataNewOnceTrans (xmlAutomataPtr am,
95 xmlAutomataStatePtr from,
96 xmlAutomataStatePtr to,
97 const xmlChar *token,
98 int min,
99 int max,
100 void *data);
101 XMLPUBFUN xmlAutomataStatePtr XMLCALL
102 xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
103 xmlAutomataStatePtr from,
104 xmlAutomataStatePtr to,
105 const xmlChar *token,
106 const xmlChar *token2,
107 int min,
108 int max,
109 void *data);
110 XMLPUBFUN xmlAutomataStatePtr XMLCALL
111 xmlAutomataNewAllTrans (xmlAutomataPtr am,
112 xmlAutomataStatePtr from,
113 xmlAutomataStatePtr to,
114 int lax);
115 XMLPUBFUN xmlAutomataStatePtr XMLCALL
116 xmlAutomataNewEpsilon (xmlAutomataPtr am,
117 xmlAutomataStatePtr from,
118 xmlAutomataStatePtr to);
119 XMLPUBFUN xmlAutomataStatePtr XMLCALL
120 xmlAutomataNewCountedTrans (xmlAutomataPtr am,
121 xmlAutomataStatePtr from,
122 xmlAutomataStatePtr to,
123 int counter);
124 XMLPUBFUN xmlAutomataStatePtr XMLCALL
125 xmlAutomataNewCounterTrans (xmlAutomataPtr am,
126 xmlAutomataStatePtr from,
127 xmlAutomataStatePtr to,
128 int counter);
129 XMLPUBFUN int XMLCALL
130 xmlAutomataNewCounter (xmlAutomataPtr am,
131 int min,
132 int max);
134 XMLPUBFUN xmlRegexpPtr XMLCALL
135 xmlAutomataCompile (xmlAutomataPtr am);
136 XMLPUBFUN int XMLCALL
137 xmlAutomataIsDeterminist (xmlAutomataPtr am);
139 #ifdef __cplusplus
141 #endif
143 #endif /* LIBXML_AUTOMATA_ENABLED */
144 #endif /* LIBXML_REGEXP_ENABLED */
146 #endif /* __XML_AUTOMATA_H__ */