xmlautomata.h
1 /*
2 * automata.h : description of the API to build regexp automats
3 *
4 * See Copyright for the status of this software.
5 *
6 * Daniel Veillard
7 */
8
9 #ifndef __XML_AUTOMATA_H__
10 #define __XML_AUTOMATA_H__
11
12 #include
13 #include
14
15 #ifdef LIBXML_AUTOMATA_ENABLED
16 #include
17
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21
22 /**
23 * xmlAutomataPtr:
24 *
25 * A libxml automata description, It can be compiled into a regexp
26 */
27 typedef struct _xmlAutomata xmlAutomata; <typedef:xmlAutomata>
28 typedef xmlAutomata *xmlAutomataPtr; <typedef:xmlAutomataPtr>
29
30 /**
31 * xmlAutomataStatePtr:
32 *
33 * A state int the automata description,
34 */
35 typedef struct _xmlAutomataState xmlAutomataState; <typedef:xmlAutomataState>
36 typedef xmlAutomataState *xmlAutomataStatePtr; <typedef:xmlAutomataStatePtr>
37
38 /*
39 * Building API
40 */
41 xmlAutomataPtr xmlNewAutomata (void);
42 void xmlFreeAutomata (xmlAutomataPtr am);
43
44 xmlAutomataStatePtr xmlAutomataGetInitState (xmlAutomataPtr am);
45 int xmlAutomataSetFinalState(xmlAutomataPtr am,
46 xmlAutomataStatePtr state);
47 xmlAutomataStatePtr xmlAutomataNewState (xmlAutomataPtr am);
48 xmlAutomataStatePtr xmlAutomataNewTransition(xmlAutomataPtr am,
49 xmlAutomataStatePtr from,
50 xmlAutomataStatePtr to,
51 const xmlChar *token,
52 void *data);
53 xmlAutomataStatePtr xmlAutomataNewCountTrans(xmlAutomataPtr am,
54 xmlAutomataStatePtr from,
55 xmlAutomataStatePtr to,
56 const xmlChar *token,
57 int min,
58 int max,
59 void *data);
60 xmlAutomataStatePtr xmlAutomataNewOnceTrans (xmlAutomataPtr am,
61 xmlAutomataStatePtr from,
62 xmlAutomataStatePtr to,
63 const xmlChar *token,
64 int min,
65 int max,
66 void *data);
67 xmlAutomataStatePtr xmlAutomataNewAllTrans (xmlAutomataPtr am,
68 xmlAutomataStatePtr from,
69 xmlAutomataStatePtr to,
70 int lax);
71 xmlAutomataStatePtr xmlAutomataNewEpsilon (xmlAutomataPtr am,
72 xmlAutomataStatePtr from,
73 xmlAutomataStatePtr to);
74 xmlAutomataStatePtr xmlAutomataNewCountedTrans(xmlAutomataPtr am,
75 xmlAutomataStatePtr from,
76 xmlAutomataStatePtr to,
77 int counter);
78 xmlAutomataStatePtr xmlAutomataNewCounterTrans(xmlAutomataPtr am,
79 xmlAutomataStatePtr from,
80 xmlAutomataStatePtr to,
81 int counter);
82 int xmlAutomataNewCounter (xmlAutomataPtr am,
83 int min,
84 int max);
85
86 xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am);
87 int xmlAutomataIsDeterminist(xmlAutomataPtr am);
88
89 #ifdef __cplusplus
90 }
91 #endif
92
93 #endif /* LIBXML_AUTOMATA_ENABLED */
94 #endif /* __XML_AUTOMATA_H__ */