|
|
1.1 paf 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 <veillard@redhat.com>
7: */
8:
9: #ifndef __XML_AUTOMATA_H__
10: #define __XML_AUTOMATA_H__
11:
12: #include <libxml/xmlversion.h>
13: #include <libxml/tree.h>
14:
15: #ifdef LIBXML_AUTOMATA_ENABLED
16: #include <libxml/xmlregexp.h>
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;
28: typedef xmlAutomata *xmlAutomataPtr;
29:
30: /**
31: * xmlAutomataStatePtr:
32: *
33: * A state int the automata description,
34: */
35: typedef struct _xmlAutomataState xmlAutomataState;
36: typedef xmlAutomataState *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);
1.2 ! paf 53: xmlAutomataStatePtr xmlAutomataNewTransition2(xmlAutomataPtr am,
! 54: xmlAutomataStatePtr from,
! 55: xmlAutomataStatePtr to,
! 56: const xmlChar *token,
! 57: const xmlChar *token2,
! 58: void *data);
1.1 paf 59: xmlAutomataStatePtr xmlAutomataNewCountTrans(xmlAutomataPtr am,
60: xmlAutomataStatePtr from,
61: xmlAutomataStatePtr to,
62: const xmlChar *token,
63: int min,
64: int max,
65: void *data);
66: xmlAutomataStatePtr xmlAutomataNewOnceTrans (xmlAutomataPtr am,
67: xmlAutomataStatePtr from,
68: xmlAutomataStatePtr to,
69: const xmlChar *token,
70: int min,
71: int max,
72: void *data);
73: xmlAutomataStatePtr xmlAutomataNewAllTrans (xmlAutomataPtr am,
74: xmlAutomataStatePtr from,
75: xmlAutomataStatePtr to,
76: int lax);
77: xmlAutomataStatePtr xmlAutomataNewEpsilon (xmlAutomataPtr am,
78: xmlAutomataStatePtr from,
79: xmlAutomataStatePtr to);
80: xmlAutomataStatePtr xmlAutomataNewCountedTrans(xmlAutomataPtr am,
81: xmlAutomataStatePtr from,
82: xmlAutomataStatePtr to,
83: int counter);
84: xmlAutomataStatePtr xmlAutomataNewCounterTrans(xmlAutomataPtr am,
85: xmlAutomataStatePtr from,
86: xmlAutomataStatePtr to,
87: int counter);
88: int xmlAutomataNewCounter (xmlAutomataPtr am,
89: int min,
90: int max);
91:
92: xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am);
93: int xmlAutomataIsDeterminist(xmlAutomataPtr am);
94:
95: #ifdef __cplusplus
96: }
97: #endif
98:
99: #endif /* LIBXML_AUTOMATA_ENABLED */
100: #endif /* __XML_AUTOMATA_H__ */