Path: blob/master/libs/xml2/include/libxml/xmlautomata.h
4394 views
/*1* Summary: API to build regexp automata2* Description: the API to build regexp automata3*4* Copy: See Copyright for the status of this software.5*6* Author: Daniel Veillard7*/89#ifndef __XML_AUTOMATA_H__10#define __XML_AUTOMATA_H__1112#include <libxml/xmlversion.h>1314#ifdef LIBXML_REGEXP_ENABLED15#ifdef LIBXML_AUTOMATA_ENABLED1617#include <libxml/xmlstring.h>1819#ifdef __cplusplus20extern "C" {21#endif2223/**24* xmlAutomataPtr:25*26* A libxml automata description, It can be compiled into a regexp27*/28typedef struct _xmlAutomata xmlAutomata;29typedef xmlAutomata *xmlAutomataPtr;3031/**32* xmlAutomataStatePtr:33*34* A state int the automata description,35*/36typedef struct _xmlAutomataState xmlAutomataState;37typedef xmlAutomataState *xmlAutomataStatePtr;3839/*40* Building API41*/42XMLPUBFUN xmlAutomataPtr43xmlNewAutomata (void);44XMLPUBFUN void45xmlFreeAutomata (xmlAutomataPtr am);4647XMLPUBFUN xmlAutomataStatePtr48xmlAutomataGetInitState (xmlAutomataPtr am);49XMLPUBFUN int50xmlAutomataSetFinalState (xmlAutomataPtr am,51xmlAutomataStatePtr state);52XMLPUBFUN xmlAutomataStatePtr53xmlAutomataNewState (xmlAutomataPtr am);54XMLPUBFUN xmlAutomataStatePtr55xmlAutomataNewTransition (xmlAutomataPtr am,56xmlAutomataStatePtr from,57xmlAutomataStatePtr to,58const xmlChar *token,59void *data);60XMLPUBFUN xmlAutomataStatePtr61xmlAutomataNewTransition2 (xmlAutomataPtr am,62xmlAutomataStatePtr from,63xmlAutomataStatePtr to,64const xmlChar *token,65const xmlChar *token2,66void *data);67XMLPUBFUN xmlAutomataStatePtr68xmlAutomataNewNegTrans (xmlAutomataPtr am,69xmlAutomataStatePtr from,70xmlAutomataStatePtr to,71const xmlChar *token,72const xmlChar *token2,73void *data);7475XMLPUBFUN xmlAutomataStatePtr76xmlAutomataNewCountTrans (xmlAutomataPtr am,77xmlAutomataStatePtr from,78xmlAutomataStatePtr to,79const xmlChar *token,80int min,81int max,82void *data);83XMLPUBFUN xmlAutomataStatePtr84xmlAutomataNewCountTrans2 (xmlAutomataPtr am,85xmlAutomataStatePtr from,86xmlAutomataStatePtr to,87const xmlChar *token,88const xmlChar *token2,89int min,90int max,91void *data);92XMLPUBFUN xmlAutomataStatePtr93xmlAutomataNewOnceTrans (xmlAutomataPtr am,94xmlAutomataStatePtr from,95xmlAutomataStatePtr to,96const xmlChar *token,97int min,98int max,99void *data);100XMLPUBFUN xmlAutomataStatePtr101xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,102xmlAutomataStatePtr from,103xmlAutomataStatePtr to,104const xmlChar *token,105const xmlChar *token2,106int min,107int max,108void *data);109XMLPUBFUN xmlAutomataStatePtr110xmlAutomataNewAllTrans (xmlAutomataPtr am,111xmlAutomataStatePtr from,112xmlAutomataStatePtr to,113int lax);114XMLPUBFUN xmlAutomataStatePtr115xmlAutomataNewEpsilon (xmlAutomataPtr am,116xmlAutomataStatePtr from,117xmlAutomataStatePtr to);118XMLPUBFUN xmlAutomataStatePtr119xmlAutomataNewCountedTrans (xmlAutomataPtr am,120xmlAutomataStatePtr from,121xmlAutomataStatePtr to,122int counter);123XMLPUBFUN xmlAutomataStatePtr124xmlAutomataNewCounterTrans (xmlAutomataPtr am,125xmlAutomataStatePtr from,126xmlAutomataStatePtr to,127int counter);128XMLPUBFUN int129xmlAutomataNewCounter (xmlAutomataPtr am,130int min,131int max);132133XMLPUBFUN struct _xmlRegexp *134xmlAutomataCompile (xmlAutomataPtr am);135XMLPUBFUN int136xmlAutomataIsDeterminist (xmlAutomataPtr am);137138#ifdef __cplusplus139}140#endif141142#endif /* LIBXML_AUTOMATA_ENABLED */143#endif /* LIBXML_REGEXP_ENABLED */144145#endif /* __XML_AUTOMATA_H__ */146147148