codekingpro/portable-devtools
114k
1/*2 * Summary: API to build regexp automata3 * Description: the API to build regexp automata4 *5 * Copy: See Copyright for the status of this software.6 *7 * Author: Daniel Veillard8 */9 10#ifndef __XML_AUTOMATA_H__11#define __XML_AUTOMATA_H__12 13#include <libxml/xmlversion.h>14 15#ifdef LIBXML_REGEXP_ENABLED16#ifdef LIBXML_AUTOMATA_ENABLED17 18#include <libxml/xmlstring.h>19 20#ifdef __cplusplus21extern "C" {22#endif23 24/**25 * xmlAutomataPtr:26 *27 * A libxml automata description, It can be compiled into a regexp28 */29typedef struct _xmlAutomata xmlAutomata;30typedef xmlAutomata *xmlAutomataPtr;31 32/**33 * xmlAutomataStatePtr:34 *35 * A state int the automata description,36 */37typedef struct _xmlAutomataState xmlAutomataState;38typedef xmlAutomataState *xmlAutomataStatePtr;39 40/*41 * Building API42 */43XMLPUBFUN xmlAutomataPtr44 xmlNewAutomata (void);45XMLPUBFUN void46 xmlFreeAutomata (xmlAutomataPtr am);47 48XMLPUBFUN xmlAutomataStatePtr49 xmlAutomataGetInitState (xmlAutomataPtr am);50XMLPUBFUN int51 xmlAutomataSetFinalState (xmlAutomataPtr am,52 xmlAutomataStatePtr state);53XMLPUBFUN xmlAutomataStatePtr54 xmlAutomataNewState (xmlAutomataPtr am);55XMLPUBFUN xmlAutomataStatePtr56 xmlAutomataNewTransition (xmlAutomataPtr am,57 xmlAutomataStatePtr from,58 xmlAutomataStatePtr to,59 const xmlChar *token,60 void *data);61XMLPUBFUN xmlAutomataStatePtr62 xmlAutomataNewTransition2 (xmlAutomataPtr am,63 xmlAutomataStatePtr from,64 xmlAutomataStatePtr to,65 const xmlChar *token,66 const xmlChar *token2,67 void *data);68XMLPUBFUN xmlAutomataStatePtr69 xmlAutomataNewNegTrans (xmlAutomataPtr am,70 xmlAutomataStatePtr from,71 xmlAutomataStatePtr to,72 const xmlChar *token,73 const xmlChar *token2,74 void *data);75 76XMLPUBFUN xmlAutomataStatePtr77 xmlAutomataNewCountTrans (xmlAutomataPtr am,78 xmlAutomataStatePtr from,79 xmlAutomataStatePtr to,80 const xmlChar *token,81 int min,82 int max,83 void *data);84XMLPUBFUN xmlAutomataStatePtr85 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);93XMLPUBFUN xmlAutomataStatePtr94 xmlAutomataNewOnceTrans (xmlAutomataPtr am,95 xmlAutomataStatePtr from,96 xmlAutomataStatePtr to,97 const xmlChar *token,98 int min,99 int max,100 void *data);101XMLPUBFUN xmlAutomataStatePtr102 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);110XMLPUBFUN xmlAutomataStatePtr111 xmlAutomataNewAllTrans (xmlAutomataPtr am,112 xmlAutomataStatePtr from,113 xmlAutomataStatePtr to,114 int lax);115XMLPUBFUN xmlAutomataStatePtr116 xmlAutomataNewEpsilon (xmlAutomataPtr am,117 xmlAutomataStatePtr from,118 xmlAutomataStatePtr to);119XMLPUBFUN xmlAutomataStatePtr120 xmlAutomataNewCountedTrans (xmlAutomataPtr am,121 xmlAutomataStatePtr from,122 xmlAutomataStatePtr to,123 int counter);124XMLPUBFUN xmlAutomataStatePtr125 xmlAutomataNewCounterTrans (xmlAutomataPtr am,126 xmlAutomataStatePtr from,127 xmlAutomataStatePtr to,128 int counter);129XMLPUBFUN int130 xmlAutomataNewCounter (xmlAutomataPtr am,131 int min,132 int max);133 134XMLPUBFUN struct _xmlRegexp *135 xmlAutomataCompile (xmlAutomataPtr am);136XMLPUBFUN int137 xmlAutomataIsDeterminist (xmlAutomataPtr am);138 139#ifdef __cplusplus140}141#endif142 143#endif /* LIBXML_AUTOMATA_ENABLED */144#endif /* LIBXML_REGEXP_ENABLED */145 146#endif /* __XML_AUTOMATA_H__ */147 