PNG IHDR ; IDATxܻn0K )(pA7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5 bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô!x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%tMז -lG6mrz2s%9s@-k9=)kB5\+͂ZsٲRn~GRCwIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL /F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ R IENDB`
![]() |
![]() |
![]() |
![]() |
libxml2 Reference Manual |
---|
xmlautomata - API to build regexp automata
the API to build regexp automata
Author(s): Daniel Veillard
typedef xmlAutomataState * xmlAutomataStatePtr; typedef struct _xmlAutomata xmlAutomata; typedef xmlAutomata * xmlAutomataPtr; typedef struct _xmlAutomataState xmlAutomataState; void xmlFreeAutomata (xmlAutomataPtr am); int xmlAutomataNewCounter (xmlAutomataPtr am,
int min,
int max); xmlAutomataStatePtr xmlAutomataGetInitState (xmlAutomataPtr am); xmlAutomataStatePtr xmlAutomataNewTransition2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
void * data); xmlAutomataStatePtr xmlAutomataNewState (xmlAutomataPtr am); xmlAutomataStatePtr xmlAutomataNewCountTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
int min,
int max,
void * data); xmlAutomataStatePtr xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
int min,
int max,
void * data); xmlAutomataStatePtr xmlAutomataNewAllTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int lax); xmlAutomataStatePtr xmlAutomataNewCountedTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int counter); xmlAutomataStatePtr xmlAutomataNewCounterTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int counter); xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am); xmlAutomataStatePtr xmlAutomataNewNegTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
void * data); xmlAutomataStatePtr xmlAutomataNewEpsilon (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to); xmlAutomataStatePtr xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
int min,
int max,
void * data); xmlAutomataPtr xmlNewAutomata (void); int xmlAutomataSetFinalState (xmlAutomataPtr am,
xmlAutomataStatePtr state); xmlAutomataStatePtr xmlAutomataNewOnceTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
int min,
int max,
void * data); xmlAutomataStatePtr xmlAutomataNewTransition (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
void * data); int xmlAutomataIsDeterminist (xmlAutomataPtr am);
struct _xmlAutomata { The content of this structure is not made public by the API. } xmlAutomata;
xmlAutomata * xmlAutomataPtr;
A libxml automata description, It can be compiled into a regexp
struct _xmlAutomataState { The content of this structure is not made public by the API. } xmlAutomataState;
xmlAutomataState * xmlAutomataStatePtr;
A state int the automata description,
xmlRegexpPtr xmlAutomataCompile (xmlAutomataPtr am)
Compile the automata into a Reg Exp ready for being executed. The automata should be free after this point.
am: | an automata |
Returns: | the compiled regexp or NULL in case of error |
xmlAutomataStatePtr xmlAutomataGetInitState (xmlAutomataPtr am)
Initial state lookup
am: | an automata |
Returns: | the initial state of the automata |
int xmlAutomataIsDeterminist (xmlAutomataPtr am)
Checks if an automata is determinist.
am: | an automata |
Returns: | 1 if true, 0 if not, and -1 in case of error |
xmlAutomataStatePtr xmlAutomataNewAllTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int lax)
If @to is NULL, this creates first a new target state in the automata and then adds a an ALL transition from the @from state to the target state. That transition is an epsilon transition allowed only when all transitions from the @from node have been activated.
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
lax: | allow to transition if not all all transitions have been activated |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewCountTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
int min,
int max,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the input string associated to that transition |
min: | the minimum successive occurences of token |
max: | the maximum successive occurences of token |
data: | data associated to the transition |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewCountTrans2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
int min,
int max,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the input string associated to that transition |
token2: | the second input string associated to that transition |
min: | the minimum successive occurences of token |
max: | the maximum successive occurences of token |
data: | data associated to the transition |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewCountedTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int counter)
If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will increment the counter provided
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
counter: | the counter associated to that transition |
Returns: | the target state or NULL in case of error |
int xmlAutomataNewCounter (xmlAutomataPtr am,
int min,
int max)
Create a new counter
am: | an automata |
min: | the minimal value on the counter |
max: | the maximal value on the counter |
Returns: | the counter number or -1 in case of error |
xmlAutomataStatePtr xmlAutomataNewCounterTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
int counter)
If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state which will be allowed only if the counter is within the right range.
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
counter: | the counter associated to that transition |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewEpsilon (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to)
If @to is NULL, this creates first a new target state in the automata and then adds an epsilon transition from the @from state to the target state
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewNegTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by any value except (@token,@token2) Note that if @token2 is not NULL, then (X, NULL) won't match to follow # the semantic of XSD ##other
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the first input string associated to that transition |
token2: | the second input string associated to that transition |
data: | data passed to the callback function if the transition is activated |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewOnceTrans (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
int min,
int max,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and whose number is between @min and @max, moreover that transition can only be crossed once.
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the input string associated to that transition |
min: | the minimum successive occurences of token |
max: | the maximum successive occurences of token |
data: | data associated to the transition |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewOnceTrans2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
int min,
int max,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by a succession of input of value @token and @token2 and whose number is between @min and @max, moreover that transition can only be crossed once.
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the input string associated to that transition |
token2: | the second input string associated to that transition |
min: | the minimum successive occurences of token |
max: | the maximum successive occurences of token |
data: | data associated to the transition |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewState (xmlAutomataPtr am)
Create a new disconnected state in the automata
am: | an automata |
Returns: | the new state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewTransition (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the input string associated to that transition |
data: | data passed to the callback function if the transition is activated |
Returns: | the target state or NULL in case of error |
xmlAutomataStatePtr xmlAutomataNewTransition2 (xmlAutomataPtr am,
xmlAutomataStatePtr from,
xmlAutomataStatePtr to,
const xmlChar * token,
const xmlChar * token2,
void * data)
If @to is NULL, this creates first a new target state in the automata and then adds a transition from the @from state to the target state activated by the value of @token
am: | an automata |
from: | the starting point of the transition |
to: | the target point of the transition or NULL |
token: | the first input string associated to that transition |
token2: | the second input string associated to that transition |
data: | data passed to the callback function if the transition is activated |
Returns: | the target state or NULL in case of error |
int xmlAutomataSetFinalState (xmlAutomataPtr am,
xmlAutomataStatePtr state)
Makes that state a final state
am: | an automata |
state: | a state in this automata |
Returns: | 0 or -1 in case of error |
xmlAutomataPtr xmlNewAutomata (void)
Create a new automata
Returns: | the new object or NULL in case of failure |