Annotation of embedaddon/libxml2/include/libxml/xmlautomata.h, revision 1.1.1.1
1.1 misho 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__ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>