From 35a201cc8ef0c3f5b2df88d2e528aabee1048348 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Fri, 30 Apr 2021 18:47:09 +0200 Subject: Initial/Final commit --- libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle | 262 +++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle (limited to 'libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle') diff --git a/libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle b/libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle new file mode 100644 index 0000000..01d411a --- /dev/null +++ b/libxml2-2.9.10/os400/libxmlrpg/xmlregexp.rpgle @@ -0,0 +1,262 @@ + * Summary: regular expressions handling + * Description: basic API for libxml regular expressions handling used + * for XML Schemas and validation. + * + * Copy: See Copyright for the status of this software. + * + * Author: Patrick Monnerat , DATASPHERE S.A. + + /if not defined(XML_REGEXP_H__) + /define XML_REGEXP_H__ + + /include "libxmlrpg/xmlversion" + + /if defined(LIBXML_REGEXP_ENABLED) + + /include "libxmlrpg/xmlTypesC" + + * xmlRegexpPtr: + * + * A libxml regular expression, they can actually be far more complex + * thank the POSIX regex expressions. + + d xmlRegexpPtr s * based(######typedef######) + + * xmlRegExecCtxtPtr: + * + * A libxml progressive regular expression evaluation context + + d xmlRegExecCtxtPtr... + d s * based(######typedef######) + + /include "libxmlrpg/tree" + /include "libxmlrpg/dict" + + * The POSIX like API + + d xmlRegexpCompile... + d pr extproc('xmlRegexpCompile') + d like(xmlRegexpPtr) + d regexp * value options(*string) const xmlChar * + + d xmlRegFreeRegexp... + d pr extproc('xmlRegFreeRegexp') + d regexp value like(xmlRegexpPtr) + + d xmlRegexpExec pr extproc('xmlRegexpExec') + d like(xmlCint) + d comp value like(xmlRegexpPtr) + d value * value options(*string) const xmlChar * + + d xmlRegexpPrint pr extproc('xmlRegexpPrint') + d output * value FILE * + d regexp value like(xmlRegexpPtr) + + d xmlRegexpIsDeterminist... + d pr extproc('xmlRegexpIsDeterminist') + d like(xmlCint) + d comp value like(xmlRegexpPtr) + + * xmlRegExecCallbacks: + * @exec: the regular expression context + * @token: the current token string + * @transdata: transition data + * @inputdata: input data + * + * Callback function when doing a transition in the automata + + d xmlRegExecCallbacks... + d s * based(######typedef######) + d procptr + + * The progressive API + + d xmlRegNewExecCtxt... + d pr extproc('xmlRegNewExecCtxt') + d like(xmlRegExecCtxtPtr) + d comp value like(xmlRegexpPtr) + d callback value like(xmlRegExecCallbacks) + d data * value void * + + d xmlRegFreeExecCtxt... + d pr extproc('xmlRegFreeExecCtxt') + d exec value like(xmlRegExecCtxtPtr) + + d xmlRegExecPushString... + d pr extproc('xmlRegExecPushString') + d like(xmlCint) + d exec value like(xmlRegExecCtxtPtr) + d value * value options(*string) const xmlChar * + d data * value void * + + d xmlRegExecPushString2... + d pr extproc('xmlRegExecPushString2') + d like(xmlCint) + d exec value like(xmlRegExecCtxtPtr) + d value * value options(*string) const xmlChar * + d value2 * value options(*string) const xmlChar * + d data * value void * + + d xmlRegExecNextValues... + d pr extproc('xmlRegExecNextValues') + d like(xmlCint) + d exec value like(xmlRegExecCtxtPtr) + d nbval like(xmlCint) + d nbneg like(xmlCint) + d values * xmlChar * (*) + d terminal like(xmlCint) + + d xmlRegExecErrInfo... + d pr extproc('xmlRegExecErrInfo') + d like(xmlCint) + d exec value like(xmlRegExecCtxtPtr) + d string * const xmlChar * (*) + d nbval like(xmlCint) + d nbneg like(xmlCint) + d values * xmlChar * (*) + d terminal like(xmlCint) + + /if defined(LIBXML_EXPR_ENABLED) + + * Formal regular expression handling + * Its goal is to do some formal work on content models + + * expressions are used within a context + + d xmlExpCtxtPtr s * based(######typedef######) + + d xmlExpFreeCtxt pr extproc('xmlExpFreeCtxt') + d ctxt value like(xmlExpCtxtPtr) + + d xmlExpNewCtxt pr extproc('xmlExpNewCtxt') + d like(xmlExpCtxtPtr) + d maxNodes value like(xmlCint) + d dict value like(xmlDictPtr) + + d xmlExpCtxtNbNodes... + d pr extproc('xmlExpCtxtNbNodes') + d like(xmlCint) + d ctxt value like(xmlExpCtxtPtr) + + d xmlExpCtxtNbCons... + d pr extproc('xmlExpCtxtNbCons') + d like(xmlCint) + d ctxt value like(xmlExpCtxtPtr) + + * Expressions are trees but the tree is opaque + + d xmlExpNodePtr s * based(######typedef######) + + d xmlExpNodeType s based(######typedef######) + d like(xmlCenum) + d XML_EXP_EMPTY c 0 + d XML_EXP_FORBID... + d c 1 + d XML_EXP_ATOM c 2 + d XML_EXP_SEQ c 3 + d XML_EXP_OR c 4 + d XML_EXP_COUNT c 5 + + * 2 core expressions shared by all for the empty language set + * and for the set with just the empty token + + d forbiddenExp s import('forbiddenExp') + d like(xmlExpNodePtr) + + d emptyExp s import('emptyExp') + d like(xmlExpNodePtr) + + + * Expressions are reference counted internally + + d xmlExpFree pr extproc('xmlExpFree') + d expr value like(xmlExpNodePtr) + + d xmlExpRef pr extproc('xmlExpRef') + d expr value like(xmlExpNodePtr) + + * constructors can be either manual or from a string + + d xmlExpParse pr extproc('xmlExpParse') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr * value options(*string) const char * + + d xmlExpNewAtom pr extproc('xmlExpNewAtom') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d name * value options(*string) const xmlChar * + d len value like(xmlCint) + + d xmlExpNewOr pr extproc('xmlExpNewOr') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d left value like(xmlExpNodePtr) + d right value like(xmlExpNodePtr) + + d xmlExpNewSeq pr extproc('xmlExpNewSeq') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d left value like(xmlExpNodePtr) + d right value like(xmlExpNodePtr) + + d xmlExpNewRange pr extproc('xmlExpNewRange') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d subset value like(xmlExpNodePtr) + d min value like(xmlCint) + d max value like(xmlCint) + + * The really interesting APIs + + d xmlExpIsNillable... + d pr extproc('xmlExpIsNillable') + d like(xmlCint) + d expr value like(xmlExpNodePtr) + + d xmlExpMaxToken pr extproc('xmlExpMaxToken') + d like(xmlCint) + d expr value like(xmlExpNodePtr) + + d xmlExpGetLanguage... + d pr extproc('xmlExpGetLanguage') + d like(xmlCint) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d langList * const xmlChar *(*) + d len value like(xmlCint) + + d xmlExpGetStart pr extproc('xmlExpGetStart') + d like(xmlCint) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d tokList * const xmlChar *(*) + d len value like(xmlCint) + + d xmlExpStringDerive... + d pr extproc('xmlExpStringDerive') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d str * value options(*string) const xmlChar * + d len value like(xmlCint) + + d xmlExpExpDerive... + d pr extproc('xmlExpExpDerive') + d like(xmlExpNodePtr) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d sub value like(xmlExpNodePtr) + + d xmlExpSubsume pr extproc('xmlExpSubsume') + d like(xmlCint) + d ctxt value like(xmlExpCtxtPtr) + d expr value like(xmlExpNodePtr) + d sub value like(xmlExpNodePtr) + + d xmlExpDump pr extproc('xmlExpDump') + d buf value like(xmlBufferPtr) + d expr value like(xmlExpNodePtr) + /endif LIBXML_EXPR_ENABLED + /endif LIBXML_REGEXP_ENABLD + /endif XML_REGEXP_H__ -- cgit v1.2.3