2
* Summary: API to build regexp automata
3
* Description: the API to build regexp automata
5
* Copy: See Copyright for the status of this software.
7
* Author: Daniel Veillard
10
#ifndef __XML_AUTOMATA_H__
11
#define __XML_AUTOMATA_H__
13
#include <libxml/xmlversion.h>
14
#include <libxml/tree.h>
16
#ifdef LIBXML_REGEXP_ENABLED
17
#ifdef LIBXML_AUTOMATA_ENABLED
18
#include <libxml/xmlregexp.h>
27
* A libxml automata description, It can be compiled into a regexp
29
typedef struct _xmlAutomata xmlAutomata;
30
typedef xmlAutomata *xmlAutomataPtr;
33
* xmlAutomataStatePtr:
35
* A state int the automata description,
37
typedef struct _xmlAutomataState xmlAutomataState;
38
typedef xmlAutomataState *xmlAutomataStatePtr;
43
XMLPUBFUN xmlAutomataPtr XMLCALL
44
xmlNewAutomata (void);
45
XMLPUBFUN void XMLCALL
46
xmlFreeAutomata (xmlAutomataPtr am);
48
XMLPUBFUN xmlAutomataStatePtr XMLCALL
49
xmlAutomataGetInitState (xmlAutomataPtr am);
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,
61
XMLPUBFUN xmlAutomataStatePtr XMLCALL
62
xmlAutomataNewTransition2 (xmlAutomataPtr am,
63
xmlAutomataStatePtr from,
64
xmlAutomataStatePtr to,
66
const xmlChar *token2,
68
XMLPUBFUN xmlAutomataStatePtr XMLCALL
69
xmlAutomataNewCountTrans (xmlAutomataPtr am,
70
xmlAutomataStatePtr from,
71
xmlAutomataStatePtr to,
76
XMLPUBFUN xmlAutomataStatePtr XMLCALL
77
xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
78
xmlAutomataStatePtr from,
79
xmlAutomataStatePtr to,
81
const xmlChar *token2,
85
XMLPUBFUN xmlAutomataStatePtr XMLCALL
86
xmlAutomataNewOnceTrans (xmlAutomataPtr am,
87
xmlAutomataStatePtr from,
88
xmlAutomataStatePtr to,
93
XMLPUBFUN xmlAutomataStatePtr XMLCALL
94
xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
95
xmlAutomataStatePtr from,
96
xmlAutomataStatePtr to,
98
const xmlChar *token2,
102
XMLPUBFUN xmlAutomataStatePtr XMLCALL
103
xmlAutomataNewAllTrans (xmlAutomataPtr am,
104
xmlAutomataStatePtr from,
105
xmlAutomataStatePtr to,
107
XMLPUBFUN xmlAutomataStatePtr XMLCALL
108
xmlAutomataNewEpsilon (xmlAutomataPtr am,
109
xmlAutomataStatePtr from,
110
xmlAutomataStatePtr to);
111
XMLPUBFUN xmlAutomataStatePtr XMLCALL
112
xmlAutomataNewCountedTrans (xmlAutomataPtr am,
113
xmlAutomataStatePtr from,
114
xmlAutomataStatePtr to,
116
XMLPUBFUN xmlAutomataStatePtr XMLCALL
117
xmlAutomataNewCounterTrans (xmlAutomataPtr am,
118
xmlAutomataStatePtr from,
119
xmlAutomataStatePtr to,
121
XMLPUBFUN int XMLCALL
122
xmlAutomataNewCounter (xmlAutomataPtr am,
126
XMLPUBFUN xmlRegexpPtr XMLCALL
127
xmlAutomataCompile (xmlAutomataPtr am);
128
XMLPUBFUN int XMLCALL
129
xmlAutomataIsDeterminist (xmlAutomataPtr am);
135
#endif /* LIBXML_AUTOMATA_ENABLED */
136
#endif /* LIBXML_REGEXP_ENABLED */
138
#endif /* __XML_AUTOMATA_H__ */