2 * automata.h : description of the API to build regexp automats
4 * See Copyright for the status of this software.
6 * Daniel Veillard <veillard@redhat.com>
9 #ifndef __XML_AUTOMATA_H__
10 #define __XML_AUTOMATA_H__
12 #include <libxml/xmlversion.h>
13 #include <libxml/tree.h>
15 #ifdef LIBXML_AUTOMATA_ENABLED
16 #include <libxml/xmlregexp.h>
25 * A libxml automata description, It can be compiled into a regexp
27 typedef struct _xmlAutomata xmlAutomata;
28 typedef xmlAutomata *xmlAutomataPtr;
31 * xmlAutomataStatePtr:
33 * A state int the automata description,
35 typedef struct _xmlAutomataState xmlAutomataState;
36 typedef xmlAutomataState *xmlAutomataStatePtr;
41 xmlAutomataPtr xmlNewAutomata (void);
42 void xmlFreeAutomata (xmlAutomataPtr am);
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,
53 xmlAutomataStatePtr xmlAutomataNewCountTrans(xmlAutomataPtr am,
54 xmlAutomataStatePtr from,
55 xmlAutomataStatePtr to,
60 xmlAutomataStatePtr xmlAutomataNewOnceTrans (xmlAutomataPtr am,
61 xmlAutomataStatePtr from,
62 xmlAutomataStatePtr to,
67 xmlAutomataStatePtr xmlAutomataNewAllTrans (xmlAutomataPtr am,
68 xmlAutomataStatePtr from,
69 xmlAutomataStatePtr to,
71 xmlAutomataStatePtr xmlAutomataNewEpsilon (xmlAutomataPtr am,
72 xmlAutomataStatePtr from,
73 xmlAutomataStatePtr to);
74 xmlAutomataStatePtr xmlAutomataNewCountedTrans(xmlAutomataPtr am,
75 xmlAutomataStatePtr from,
76 xmlAutomataStatePtr to,
78 xmlAutomataStatePtr xmlAutomataNewCounterTrans(xmlAutomataPtr am,
79 xmlAutomataStatePtr from,
80 xmlAutomataStatePtr to,
82 int xmlAutomataNewCounter (xmlAutomataPtr am,
86 xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am);
87 int xmlAutomataIsDeterminist(xmlAutomataPtr am);
93 #endif /* LIBXML_AUTOMATA_ENABLED */
94 #endif /* __XML_AUTOMATA_H__ */