Spaces:
Runtime error
Runtime error
| /* | |
| * Summary: internals routines and limits exported by the parser. | |
| * Description: this module exports a number of internal parsing routines | |
| * they are not really all intended for applications but | |
| * can prove useful doing low level processing. | |
| * | |
| * Copy: See Copyright for the status of this software. | |
| * | |
| * Author: Daniel Veillard | |
| */ | |
| extern "C" { | |
| /** | |
| * xmlParserMaxDepth: | |
| * | |
| * arbitrary depth limit for the XML documents that we allow to | |
| * process. This is not a limitation of the parser but a safety | |
| * boundary feature, use XML_PARSE_HUGE option to override it. | |
| */ | |
| XMLPUBVAR unsigned int xmlParserMaxDepth; | |
| /** | |
| * XML_MAX_TEXT_LENGTH: | |
| * | |
| * Maximum size allowed for a single text node when building a tree. | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Introduced in 2.9.0 | |
| */ | |
| /** | |
| * XML_MAX_NAME_LENGTH: | |
| * | |
| * Maximum size allowed for a markup identifier. | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Note that with the use of parsing dictionaries overriding the limit | |
| * may result in more runtime memory usage in face of "unfriendly' content | |
| * Introduced in 2.9.0 | |
| */ | |
| /** | |
| * XML_MAX_DICTIONARY_LIMIT: | |
| * | |
| * Maximum size allowed by the parser for a dictionary by default | |
| * This is not a limitation of the parser but a safety boundary feature, | |
| * use XML_PARSE_HUGE option to override it. | |
| * Introduced in 2.9.0 | |
| */ | |
| /** | |
| * XML_MAX_LOOKUP_LIMIT: | |
| * | |
| * Maximum size allowed by the parser for ahead lookup | |
| * This is an upper boundary enforced by the parser to avoid bad | |
| * behaviour on "unfriendly' content | |
| * Introduced in 2.9.0 | |
| */ | |
| /** | |
| * XML_MAX_NAMELEN: | |
| * | |
| * Identifiers can be longer, but this will be more costly | |
| * at runtime. | |
| */ | |
| /** | |
| * INPUT_CHUNK: | |
| * | |
| * The parser tries to always have that amount of input ready. | |
| * One of the point is providing context when reporting errors. | |
| */ | |
| /************************************************************************ | |
| * * | |
| * UNICODE version of the macros. * | |
| * * | |
| ************************************************************************/ | |
| /** | |
| * IS_BYTE_CHAR: | |
| * @c: an byte value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [2] Char ::= #x9 | #xA | #xD | [#x20...] | |
| * any byte character in the accepted range | |
| */ | |
| /** | |
| * IS_CHAR: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | |
| * | [#x10000-#x10FFFF] | |
| * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. | |
| */ | |
| /** | |
| * IS_CHAR_CH: | |
| * @c: an xmlChar (usually an unsigned char) | |
| * | |
| * Behaves like IS_CHAR on single-byte value | |
| */ | |
| /** | |
| * IS_BLANK: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [3] S ::= (#x20 | #x9 | #xD | #xA)+ | |
| */ | |
| /** | |
| * IS_BLANK_CH: | |
| * @c: an xmlChar value (normally unsigned char) | |
| * | |
| * Behaviour same as IS_BLANK | |
| */ | |
| /** | |
| * IS_BASECHAR: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [85] BaseChar ::= ... long list see REC ... | |
| */ | |
| /** | |
| * IS_DIGIT: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [88] Digit ::= ... long list see REC ... | |
| */ | |
| /** | |
| * IS_DIGIT_CH: | |
| * @c: an xmlChar value (usually an unsigned char) | |
| * | |
| * Behaves like IS_DIGIT but with a single byte argument | |
| */ | |
| /** | |
| * IS_COMBINING: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * [87] CombiningChar ::= ... long list see REC ... | |
| */ | |
| /** | |
| * IS_COMBINING_CH: | |
| * @c: an xmlChar (usually an unsigned char) | |
| * | |
| * Always false (all combining chars > 0xff) | |
| */ | |
| /** | |
| * IS_EXTENDER: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * | |
| * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | | |
| * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | | |
| * [#x309D-#x309E] | [#x30FC-#x30FE] | |
| */ | |
| /** | |
| * IS_EXTENDER_CH: | |
| * @c: an xmlChar value (usually an unsigned char) | |
| * | |
| * Behaves like IS_EXTENDER but with a single-byte argument | |
| */ | |
| /** | |
| * IS_IDEOGRAPHIC: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * | |
| * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] | |
| */ | |
| /** | |
| * IS_LETTER: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * | |
| * [84] Letter ::= BaseChar | Ideographic | |
| */ | |
| /** | |
| * IS_LETTER_CH: | |
| * @c: an xmlChar value (normally unsigned char) | |
| * | |
| * Macro behaves like IS_LETTER, but only check base chars | |
| * | |
| */ | |
| /** | |
| * IS_ASCII_LETTER: | |
| * @c: an xmlChar value | |
| * | |
| * Macro to check [a-zA-Z] | |
| * | |
| */ | |
| /** | |
| * IS_ASCII_DIGIT: | |
| * @c: an xmlChar value | |
| * | |
| * Macro to check [0-9] | |
| * | |
| */ | |
| /** | |
| * IS_PUBIDCHAR: | |
| * @c: an UNICODE value (int) | |
| * | |
| * Macro to check the following production in the XML spec: | |
| * | |
| * | |
| * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] | |
| */ | |
| /** | |
| * IS_PUBIDCHAR_CH: | |
| * @c: an xmlChar value (normally unsigned char) | |
| * | |
| * Same as IS_PUBIDCHAR but for single-byte value | |
| */ | |
| /** | |
| * SKIP_EOL: | |
| * @p: and UTF8 string pointer | |
| * | |
| * Skips the end of line chars. | |
| */ | |
| /** | |
| * MOVETO_ENDTAG: | |
| * @p: and UTF8 string pointer | |
| * | |
| * Skips to the next '>' char. | |
| */ | |
| /** | |
| * MOVETO_STARTTAG: | |
| * @p: and UTF8 string pointer | |
| * | |
| * Skips to the next '<' char. | |
| */ | |
| /** | |
| * Global variables used for predefined strings. | |
| */ | |
| XMLPUBVAR const xmlChar xmlStringText[]; | |
| XMLPUBVAR const xmlChar xmlStringTextNoenc[]; | |
| XMLPUBVAR const xmlChar xmlStringComment[]; | |
| /* | |
| * Function to finish the work of the macros where needed. | |
| */ | |
| XMLPUBFUN int XMLCALL xmlIsLetter (int c); | |
| /** | |
| * Parser context. | |
| */ | |
| XMLPUBFUN xmlParserCtxtPtr XMLCALL | |
| xmlCreateFileParserCtxt (const char *filename); | |
| XMLPUBFUN xmlParserCtxtPtr XMLCALL | |
| xmlCreateURLParserCtxt (const char *filename, | |
| int options); | |
| XMLPUBFUN xmlParserCtxtPtr XMLCALL | |
| xmlCreateMemoryParserCtxt(const char *buffer, | |
| int size); | |
| XMLPUBFUN xmlParserCtxtPtr XMLCALL | |
| xmlCreateEntityParserCtxt(const xmlChar *URL, | |
| const xmlChar *ID, | |
| const xmlChar *base); | |
| XMLPUBFUN int XMLCALL | |
| xmlSwitchEncoding (xmlParserCtxtPtr ctxt, | |
| xmlCharEncoding enc); | |
| XMLPUBFUN int XMLCALL | |
| xmlSwitchToEncoding (xmlParserCtxtPtr ctxt, | |
| xmlCharEncodingHandlerPtr handler); | |
| XML_DEPRECATED | |
| XMLPUBFUN int XMLCALL | |
| xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt, | |
| xmlParserInputPtr input, | |
| xmlCharEncodingHandlerPtr handler); | |
| /* internal error reporting */ | |
| XMLPUBFUN void XMLCALL | |
| __xmlErrEncoding (xmlParserCtxtPtr ctxt, | |
| xmlParserErrors xmlerr, | |
| const char *msg, | |
| const xmlChar * str1, | |
| const xmlChar * str2) LIBXML_ATTR_FORMAT(3,0); | |
| /** | |
| * Input Streams. | |
| */ | |
| XMLPUBFUN xmlParserInputPtr XMLCALL | |
| xmlNewStringInputStream (xmlParserCtxtPtr ctxt, | |
| const xmlChar *buffer); | |
| XMLPUBFUN xmlParserInputPtr XMLCALL | |
| xmlNewEntityInputStream (xmlParserCtxtPtr ctxt, | |
| xmlEntityPtr entity); | |
| XMLPUBFUN int XMLCALL | |
| xmlPushInput (xmlParserCtxtPtr ctxt, | |
| xmlParserInputPtr input); | |
| XMLPUBFUN xmlChar XMLCALL | |
| xmlPopInput (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlFreeInputStream (xmlParserInputPtr input); | |
| XMLPUBFUN xmlParserInputPtr XMLCALL | |
| xmlNewInputFromFile (xmlParserCtxtPtr ctxt, | |
| const char *filename); | |
| XMLPUBFUN xmlParserInputPtr XMLCALL | |
| xmlNewInputStream (xmlParserCtxtPtr ctxt); | |
| /** | |
| * Namespaces. | |
| */ | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlSplitQName (xmlParserCtxtPtr ctxt, | |
| const xmlChar *name, | |
| xmlChar **prefix); | |
| /** | |
| * Generic production rules. | |
| */ | |
| XMLPUBFUN const xmlChar * XMLCALL | |
| xmlParseName (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseNmtoken (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseEntityValue (xmlParserCtxtPtr ctxt, | |
| xmlChar **orig); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseAttValue (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseSystemLiteral (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParsePubidLiteral (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseCharData (xmlParserCtxtPtr ctxt, | |
| int cdata); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseExternalID (xmlParserCtxtPtr ctxt, | |
| xmlChar **publicID, | |
| int strict); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseComment (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN const xmlChar * XMLCALL | |
| xmlParsePITarget (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParsePI (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseNotationDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseEntityDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseDefaultDecl (xmlParserCtxtPtr ctxt, | |
| xmlChar **value); | |
| XMLPUBFUN xmlEnumerationPtr XMLCALL | |
| xmlParseNotationType (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlEnumerationPtr XMLCALL | |
| xmlParseEnumerationType (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseEnumeratedType (xmlParserCtxtPtr ctxt, | |
| xmlEnumerationPtr *tree); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseAttributeType (xmlParserCtxtPtr ctxt, | |
| xmlEnumerationPtr *tree); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlParseElementMixedContentDecl | |
| (xmlParserCtxtPtr ctxt, | |
| int inputchk); | |
| XMLPUBFUN xmlElementContentPtr XMLCALL | |
| xmlParseElementChildrenContentDecl | |
| (xmlParserCtxtPtr ctxt, | |
| int inputchk); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, | |
| const xmlChar *name, | |
| xmlElementContentPtr *result); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseElementDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseMarkupDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseCharRef (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlEntityPtr XMLCALL | |
| xmlParseEntityRef (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseReference (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParsePEReference (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN const xmlChar * XMLCALL | |
| xmlParseAttribute (xmlParserCtxtPtr ctxt, | |
| xmlChar **value); | |
| XMLPUBFUN const xmlChar * XMLCALL | |
| xmlParseStartTag (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseEndTag (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseCDSect (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseContent (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseElement (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseVersionNum (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseVersionInfo (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseEncName (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN const xmlChar * XMLCALL | |
| xmlParseEncodingDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL | |
| xmlParseSDDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseXMLDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseTextDecl (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseMisc (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL | |
| xmlParseExternalSubset (xmlParserCtxtPtr ctxt, | |
| const xmlChar *ExternalID, | |
| const xmlChar *SystemID); | |
| /** | |
| * XML_SUBSTITUTE_NONE: | |
| * | |
| * If no entities need to be substituted. | |
| */ | |
| /** | |
| * XML_SUBSTITUTE_REF: | |
| * | |
| * Whether general entities need to be substituted. | |
| */ | |
| /** | |
| * XML_SUBSTITUTE_PEREF: | |
| * | |
| * Whether parameter entities need to be substituted. | |
| */ | |
| /** | |
| * XML_SUBSTITUTE_BOTH: | |
| * | |
| * Both general and parameter entities need to be substituted. | |
| */ | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlStringDecodeEntities (xmlParserCtxtPtr ctxt, | |
| const xmlChar *str, | |
| int what, | |
| xmlChar end, | |
| xmlChar end2, | |
| xmlChar end3); | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlStringLenDecodeEntities (xmlParserCtxtPtr ctxt, | |
| const xmlChar *str, | |
| int len, | |
| int what, | |
| xmlChar end, | |
| xmlChar end2, | |
| xmlChar end3); | |
| /* | |
| * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP. | |
| */ | |
| XMLPUBFUN int XMLCALL nodePush (xmlParserCtxtPtr ctxt, | |
| xmlNodePtr value); | |
| XMLPUBFUN xmlNodePtr XMLCALL nodePop (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL inputPush (xmlParserCtxtPtr ctxt, | |
| xmlParserInputPtr value); | |
| XMLPUBFUN xmlParserInputPtr XMLCALL inputPop (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN const xmlChar * XMLCALL namePop (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL namePush (xmlParserCtxtPtr ctxt, | |
| const xmlChar *value); | |
| /* | |
| * other commodities shared between parser.c and parserInternals. | |
| */ | |
| XMLPUBFUN int XMLCALL xmlSkipBlankChars (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL xmlStringCurrentChar (xmlParserCtxtPtr ctxt, | |
| const xmlChar *cur, | |
| int *len); | |
| XMLPUBFUN void XMLCALL xmlParserHandlePEReference(xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN int XMLCALL xmlCheckLanguageID (const xmlChar *lang); | |
| /* | |
| * Really core function shared with HTML parser. | |
| */ | |
| XMLPUBFUN int XMLCALL xmlCurrentChar (xmlParserCtxtPtr ctxt, | |
| int *len); | |
| XMLPUBFUN int XMLCALL xmlCopyCharMultiByte (xmlChar *out, | |
| int val); | |
| XMLPUBFUN int XMLCALL xmlCopyChar (int len, | |
| xmlChar *out, | |
| int val); | |
| XMLPUBFUN void XMLCALL xmlNextChar (xmlParserCtxtPtr ctxt); | |
| XMLPUBFUN void XMLCALL xmlParserInputShrink (xmlParserInputPtr in); | |
| /* | |
| * Actually comes from the HTML parser but launched from the init stuff. | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL htmlInitAutoClose (void); | |
| XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filename, | |
| const char *encoding); | |
| /* | |
| * Specific function to keep track of entities references | |
| * and used by the XSLT debugger. | |
| */ | |
| /** | |
| * xmlEntityReferenceFunc: | |
| * @ent: the entity | |
| * @firstNode: the fist node in the chunk | |
| * @lastNode: the last nod in the chunk | |
| * | |
| * Callback function used when one needs to be able to track back the | |
| * provenance of a chunk of nodes inherited from an entity replacement. | |
| */ | |
| typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent, | |
| xmlNodePtr firstNode, | |
| xmlNodePtr lastNode); | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlParseQuotedString (xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL | |
| xmlParseNamespace (xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlScanName (xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt); | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlNamespaceParseQName (xmlParserCtxtPtr ctxt, | |
| xmlChar **prefix); | |
| /** | |
| * Entities | |
| */ | |
| XML_DEPRECATED | |
| XMLPUBFUN xmlChar * XMLCALL | |
| xmlDecodeEntities (xmlParserCtxtPtr ctxt, | |
| int len, | |
| int what, | |
| xmlChar end, | |
| xmlChar end2, | |
| xmlChar end3); | |
| XML_DEPRECATED | |
| XMLPUBFUN void XMLCALL | |
| xmlHandleEntity (xmlParserCtxtPtr ctxt, | |
| xmlEntityPtr entity); | |
| /* | |
| * internal only | |
| */ | |
| XMLPUBFUN void XMLCALL | |
| xmlErrMemory (xmlParserCtxtPtr ctxt, | |
| const char *extra); | |
| } | |