1 | /* |
2 | * Summary: API to build regexp automata |
3 | * Description: the API to build regexp automata |
4 | * |
5 | * Copy: See Copyright for the status of this software. |
6 | * |
7 | * Author: Daniel Veillard |
8 | */ |
9 | |
10 | #ifndef __XML_AUTOMATA_H__ |
11 | #define __XML_AUTOMATA_H__ |
12 | |
13 | #include <libxml/xmlversion.h> |
14 | #include <libxml/tree.h> |
15 | |
16 | #ifdef LIBXML_REGEXP_ENABLED |
17 | #ifdef LIBXML_AUTOMATA_ENABLED |
18 | #include <libxml/xmlregexp.h> |
19 | |
20 | #ifdef __cplusplus |
21 | extern "C" { |
22 | #endif |
23 | |
24 | /** |
25 | * xmlAutomataPtr: |
26 | * |
27 | * A libxml automata description, It can be compiled into a regexp |
28 | */ |
29 | typedef struct _xmlAutomata xmlAutomata; |
30 | typedef xmlAutomata *xmlAutomataPtr; |
31 | |
32 | /** |
33 | * xmlAutomataStatePtr: |
34 | * |
35 | * A state int the automata description, |
36 | */ |
37 | typedef struct _xmlAutomataState xmlAutomataState; |
38 | typedef xmlAutomataState *xmlAutomataStatePtr; |
39 | |
40 | /* |
41 | * Building API |
42 | */ |
43 | XMLPUBFUN xmlAutomataPtr XMLCALL |
44 | xmlNewAutomata (void); |
45 | XMLPUBFUN void XMLCALL |
46 | xmlFreeAutomata (xmlAutomataPtr am); |
47 | |
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); |
75 | |
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); |
133 | |
134 | XMLPUBFUN xmlRegexpPtr XMLCALL |
135 | xmlAutomataCompile (xmlAutomataPtr am); |
136 | XMLPUBFUN int XMLCALL |
137 | xmlAutomataIsDeterminist (xmlAutomataPtr am); |
138 | |
139 | #ifdef __cplusplus |
140 | } |
141 | #endif |
142 | |
143 | #endif /* LIBXML_AUTOMATA_ENABLED */ |
144 | #endif /* LIBXML_REGEXP_ENABLED */ |
145 | |
146 | #endif /* __XML_AUTOMATA_H__ */ |
147 | |