LTKCPP-- LLRP Toolkit C Plus Plus Library
xmlautomata.h
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 
29 typedef struct _xmlAutomata xmlAutomata;
30 typedef xmlAutomata *xmlAutomataPtr;
31 
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__ */