Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/xmlautomata.h
4394 views
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
15
#ifdef LIBXML_REGEXP_ENABLED
16
#ifdef LIBXML_AUTOMATA_ENABLED
17
18
#include <libxml/xmlstring.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
44
xmlNewAutomata (void);
45
XMLPUBFUN void
46
xmlFreeAutomata (xmlAutomataPtr am);
47
48
XMLPUBFUN xmlAutomataStatePtr
49
xmlAutomataGetInitState (xmlAutomataPtr am);
50
XMLPUBFUN int
51
xmlAutomataSetFinalState (xmlAutomataPtr am,
52
xmlAutomataStatePtr state);
53
XMLPUBFUN xmlAutomataStatePtr
54
xmlAutomataNewState (xmlAutomataPtr am);
55
XMLPUBFUN xmlAutomataStatePtr
56
xmlAutomataNewTransition (xmlAutomataPtr am,
57
xmlAutomataStatePtr from,
58
xmlAutomataStatePtr to,
59
const xmlChar *token,
60
void *data);
61
XMLPUBFUN xmlAutomataStatePtr
62
xmlAutomataNewTransition2 (xmlAutomataPtr am,
63
xmlAutomataStatePtr from,
64
xmlAutomataStatePtr to,
65
const xmlChar *token,
66
const xmlChar *token2,
67
void *data);
68
XMLPUBFUN xmlAutomataStatePtr
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
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
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
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
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
111
xmlAutomataNewAllTrans (xmlAutomataPtr am,
112
xmlAutomataStatePtr from,
113
xmlAutomataStatePtr to,
114
int lax);
115
XMLPUBFUN xmlAutomataStatePtr
116
xmlAutomataNewEpsilon (xmlAutomataPtr am,
117
xmlAutomataStatePtr from,
118
xmlAutomataStatePtr to);
119
XMLPUBFUN xmlAutomataStatePtr
120
xmlAutomataNewCountedTrans (xmlAutomataPtr am,
121
xmlAutomataStatePtr from,
122
xmlAutomataStatePtr to,
123
int counter);
124
XMLPUBFUN xmlAutomataStatePtr
125
xmlAutomataNewCounterTrans (xmlAutomataPtr am,
126
xmlAutomataStatePtr from,
127
xmlAutomataStatePtr to,
128
int counter);
129
XMLPUBFUN int
130
xmlAutomataNewCounter (xmlAutomataPtr am,
131
int min,
132
int max);
133
134
XMLPUBFUN struct _xmlRegexp *
135
xmlAutomataCompile (xmlAutomataPtr am);
136
XMLPUBFUN int
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__ */
147
148