Return to parserInternals.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
1.1 ! misho 1: /* ! 2: * Summary: internals routines exported by the parser. ! 3: * Description: this module exports a number of internal parsing routines ! 4: * they are not really all intended for applications but ! 5: * can prove useful doing low level processing. ! 6: * ! 7: * Copy: See Copyright for the status of this software. ! 8: * ! 9: * Author: Daniel Veillard ! 10: */ ! 11: ! 12: #ifndef __XML_PARSER_INTERNALS_H__ ! 13: #define __XML_PARSER_INTERNALS_H__ ! 14: ! 15: #include <libxml/xmlversion.h> ! 16: #include <libxml/parser.h> ! 17: #include <libxml/HTMLparser.h> ! 18: #include <libxml/chvalid.h> ! 19: ! 20: #ifdef __cplusplus ! 21: extern "C" { ! 22: #endif ! 23: ! 24: /** ! 25: * xmlParserMaxDepth: ! 26: * ! 27: * arbitrary depth limit for the XML documents that we allow to ! 28: * process. This is not a limitation of the parser but a safety ! 29: * boundary feature, use XML_PARSE_HUGE option to override it. ! 30: */ ! 31: XMLPUBVAR unsigned int xmlParserMaxDepth; ! 32: ! 33: /** ! 34: * XML_MAX_TEXT_LENGTH: ! 35: * ! 36: * Maximum size allowed for a single text node when building a tree. ! 37: * This is not a limitation of the parser but a safety boundary feature, ! 38: * use XML_PARSE_HUGE option to override it. ! 39: */ ! 40: #define XML_MAX_TEXT_LENGTH 10000000 ! 41: ! 42: /** ! 43: * XML_MAX_NAMELEN: ! 44: * ! 45: * Identifiers can be longer, but this will be more costly ! 46: * at runtime. ! 47: */ ! 48: #define XML_MAX_NAMELEN 100 ! 49: ! 50: /** ! 51: * INPUT_CHUNK: ! 52: * ! 53: * The parser tries to always have that amount of input ready. ! 54: * One of the point is providing context when reporting errors. ! 55: */ ! 56: #define INPUT_CHUNK 250 ! 57: ! 58: /************************************************************************ ! 59: * * ! 60: * UNICODE version of the macros. * ! 61: * * ! 62: ************************************************************************/ ! 63: /** ! 64: * IS_BYTE_CHAR: ! 65: * @c: an byte value (int) ! 66: * ! 67: * Macro to check the following production in the XML spec: ! 68: * ! 69: * [2] Char ::= #x9 | #xA | #xD | [#x20...] ! 70: * any byte character in the accepted range ! 71: */ ! 72: #define IS_BYTE_CHAR(c) xmlIsChar_ch(c) ! 73: ! 74: /** ! 75: * IS_CHAR: ! 76: * @c: an UNICODE value (int) ! 77: * ! 78: * Macro to check the following production in the XML spec: ! 79: * ! 80: * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] ! 81: * | [#x10000-#x10FFFF] ! 82: * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. ! 83: */ ! 84: #define IS_CHAR(c) xmlIsCharQ(c) ! 85: ! 86: /** ! 87: * IS_CHAR_CH: ! 88: * @c: an xmlChar (usually an unsigned char) ! 89: * ! 90: * Behaves like IS_CHAR on single-byte value ! 91: */ ! 92: #define IS_CHAR_CH(c) xmlIsChar_ch(c) ! 93: ! 94: /** ! 95: * IS_BLANK: ! 96: * @c: an UNICODE value (int) ! 97: * ! 98: * Macro to check the following production in the XML spec: ! 99: * ! 100: * [3] S ::= (#x20 | #x9 | #xD | #xA)+ ! 101: */ ! 102: #define IS_BLANK(c) xmlIsBlankQ(c) ! 103: ! 104: /** ! 105: * IS_BLANK_CH: ! 106: * @c: an xmlChar value (normally unsigned char) ! 107: * ! 108: * Behaviour same as IS_BLANK ! 109: */ ! 110: #define IS_BLANK_CH(c) xmlIsBlank_ch(c) ! 111: ! 112: /** ! 113: * IS_BASECHAR: ! 114: * @c: an UNICODE value (int) ! 115: * ! 116: * Macro to check the following production in the XML spec: ! 117: * ! 118: * [85] BaseChar ::= ... long list see REC ... ! 119: */ ! 120: #define IS_BASECHAR(c) xmlIsBaseCharQ(c) ! 121: ! 122: /** ! 123: * IS_DIGIT: ! 124: * @c: an UNICODE value (int) ! 125: * ! 126: * Macro to check the following production in the XML spec: ! 127: * ! 128: * [88] Digit ::= ... long list see REC ... ! 129: */ ! 130: #define IS_DIGIT(c) xmlIsDigitQ(c) ! 131: ! 132: /** ! 133: * IS_DIGIT_CH: ! 134: * @c: an xmlChar value (usually an unsigned char) ! 135: * ! 136: * Behaves like IS_DIGIT but with a single byte argument ! 137: */ ! 138: #define IS_DIGIT_CH(c) xmlIsDigit_ch(c) ! 139: ! 140: /** ! 141: * IS_COMBINING: ! 142: * @c: an UNICODE value (int) ! 143: * ! 144: * Macro to check the following production in the XML spec: ! 145: * ! 146: * [87] CombiningChar ::= ... long list see REC ... ! 147: */ ! 148: #define IS_COMBINING(c) xmlIsCombiningQ(c) ! 149: ! 150: /** ! 151: * IS_COMBINING_CH: ! 152: * @c: an xmlChar (usually an unsigned char) ! 153: * ! 154: * Always false (all combining chars > 0xff) ! 155: */ ! 156: #define IS_COMBINING_CH(c) 0 ! 157: ! 158: /** ! 159: * IS_EXTENDER: ! 160: * @c: an UNICODE value (int) ! 161: * ! 162: * Macro to check the following production in the XML spec: ! 163: * ! 164: * ! 165: * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | ! 166: * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | ! 167: * [#x309D-#x309E] | [#x30FC-#x30FE] ! 168: */ ! 169: #define IS_EXTENDER(c) xmlIsExtenderQ(c) ! 170: ! 171: /** ! 172: * IS_EXTENDER_CH: ! 173: * @c: an xmlChar value (usually an unsigned char) ! 174: * ! 175: * Behaves like IS_EXTENDER but with a single-byte argument ! 176: */ ! 177: #define IS_EXTENDER_CH(c) xmlIsExtender_ch(c) ! 178: ! 179: /** ! 180: * IS_IDEOGRAPHIC: ! 181: * @c: an UNICODE value (int) ! 182: * ! 183: * Macro to check the following production in the XML spec: ! 184: * ! 185: * ! 186: * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] ! 187: */ ! 188: #define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c) ! 189: ! 190: /** ! 191: * IS_LETTER: ! 192: * @c: an UNICODE value (int) ! 193: * ! 194: * Macro to check the following production in the XML spec: ! 195: * ! 196: * ! 197: * [84] Letter ::= BaseChar | Ideographic ! 198: */ ! 199: #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c)) ! 200: ! 201: /** ! 202: * IS_LETTER_CH: ! 203: * @c: an xmlChar value (normally unsigned char) ! 204: * ! 205: * Macro behaves like IS_LETTER, but only check base chars ! 206: * ! 207: */ ! 208: #define IS_LETTER_CH(c) xmlIsBaseChar_ch(c) ! 209: ! 210: /** ! 211: * IS_ASCII_LETTER: ! 212: * @c: an xmlChar value ! 213: * ! 214: * Macro to check [a-zA-Z] ! 215: * ! 216: */ ! 217: #define IS_ASCII_LETTER(c) (((0x41 <= (c)) && ((c) <= 0x5a)) || \ ! 218: ((0x61 <= (c)) && ((c) <= 0x7a))) ! 219: ! 220: /** ! 221: * IS_ASCII_DIGIT: ! 222: * @c: an xmlChar value ! 223: * ! 224: * Macro to check [0-9] ! 225: * ! 226: */ ! 227: #define IS_ASCII_DIGIT(c) ((0x30 <= (c)) && ((c) <= 0x39)) ! 228: ! 229: /** ! 230: * IS_PUBIDCHAR: ! 231: * @c: an UNICODE value (int) ! 232: * ! 233: * Macro to check the following production in the XML spec: ! 234: * ! 235: * ! 236: * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] ! 237: */ ! 238: #define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c) ! 239: ! 240: /** ! 241: * IS_PUBIDCHAR_CH: ! 242: * @c: an xmlChar value (normally unsigned char) ! 243: * ! 244: * Same as IS_PUBIDCHAR but for single-byte value ! 245: */ ! 246: #define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c) ! 247: ! 248: /** ! 249: * SKIP_EOL: ! 250: * @p: and UTF8 string pointer ! 251: * ! 252: * Skips the end of line chars. ! 253: */ ! 254: #define SKIP_EOL(p) \ ! 255: if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \ ! 256: if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; } ! 257: ! 258: /** ! 259: * MOVETO_ENDTAG: ! 260: * @p: and UTF8 string pointer ! 261: * ! 262: * Skips to the next '>' char. ! 263: */ ! 264: #define MOVETO_ENDTAG(p) \ ! 265: while ((*p) && (*(p) != '>')) (p)++ ! 266: ! 267: /** ! 268: * MOVETO_STARTTAG: ! 269: * @p: and UTF8 string pointer ! 270: * ! 271: * Skips to the next '<' char. ! 272: */ ! 273: #define MOVETO_STARTTAG(p) \ ! 274: while ((*p) && (*(p) != '<')) (p)++ ! 275: ! 276: /** ! 277: * Global variables used for predefined strings. ! 278: */ ! 279: XMLPUBVAR const xmlChar xmlStringText[]; ! 280: XMLPUBVAR const xmlChar xmlStringTextNoenc[]; ! 281: XMLPUBVAR const xmlChar xmlStringComment[]; ! 282: ! 283: /* ! 284: * Function to finish the work of the macros where needed. ! 285: */ ! 286: XMLPUBFUN int XMLCALL xmlIsLetter (int c); ! 287: ! 288: /** ! 289: * Parser context. ! 290: */ ! 291: XMLPUBFUN xmlParserCtxtPtr XMLCALL ! 292: xmlCreateFileParserCtxt (const char *filename); ! 293: XMLPUBFUN xmlParserCtxtPtr XMLCALL ! 294: xmlCreateURLParserCtxt (const char *filename, ! 295: int options); ! 296: XMLPUBFUN xmlParserCtxtPtr XMLCALL ! 297: xmlCreateMemoryParserCtxt(const char *buffer, ! 298: int size); ! 299: XMLPUBFUN xmlParserCtxtPtr XMLCALL ! 300: xmlCreateEntityParserCtxt(const xmlChar *URL, ! 301: const xmlChar *ID, ! 302: const xmlChar *base); ! 303: XMLPUBFUN int XMLCALL ! 304: xmlSwitchEncoding (xmlParserCtxtPtr ctxt, ! 305: xmlCharEncoding enc); ! 306: XMLPUBFUN int XMLCALL ! 307: xmlSwitchToEncoding (xmlParserCtxtPtr ctxt, ! 308: xmlCharEncodingHandlerPtr handler); ! 309: XMLPUBFUN int XMLCALL ! 310: xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt, ! 311: xmlParserInputPtr input, ! 312: xmlCharEncodingHandlerPtr handler); ! 313: ! 314: #ifdef IN_LIBXML ! 315: /* internal error reporting */ ! 316: XMLPUBFUN void XMLCALL ! 317: __xmlErrEncoding (xmlParserCtxtPtr ctxt, ! 318: xmlParserErrors xmlerr, ! 319: const char *msg, ! 320: const xmlChar * str1, ! 321: const xmlChar * str2); ! 322: #endif ! 323: ! 324: /** ! 325: * Input Streams. ! 326: */ ! 327: XMLPUBFUN xmlParserInputPtr XMLCALL ! 328: xmlNewStringInputStream (xmlParserCtxtPtr ctxt, ! 329: const xmlChar *buffer); ! 330: XMLPUBFUN xmlParserInputPtr XMLCALL ! 331: xmlNewEntityInputStream (xmlParserCtxtPtr ctxt, ! 332: xmlEntityPtr entity); ! 333: XMLPUBFUN int XMLCALL ! 334: xmlPushInput (xmlParserCtxtPtr ctxt, ! 335: xmlParserInputPtr input); ! 336: XMLPUBFUN xmlChar XMLCALL ! 337: xmlPopInput (xmlParserCtxtPtr ctxt); ! 338: XMLPUBFUN void XMLCALL ! 339: xmlFreeInputStream (xmlParserInputPtr input); ! 340: XMLPUBFUN xmlParserInputPtr XMLCALL ! 341: xmlNewInputFromFile (xmlParserCtxtPtr ctxt, ! 342: const char *filename); ! 343: XMLPUBFUN xmlParserInputPtr XMLCALL ! 344: xmlNewInputStream (xmlParserCtxtPtr ctxt); ! 345: ! 346: /** ! 347: * Namespaces. ! 348: */ ! 349: XMLPUBFUN xmlChar * XMLCALL ! 350: xmlSplitQName (xmlParserCtxtPtr ctxt, ! 351: const xmlChar *name, ! 352: xmlChar **prefix); ! 353: ! 354: /** ! 355: * Generic production rules. ! 356: */ ! 357: XMLPUBFUN const xmlChar * XMLCALL ! 358: xmlParseName (xmlParserCtxtPtr ctxt); ! 359: XMLPUBFUN xmlChar * XMLCALL ! 360: xmlParseNmtoken (xmlParserCtxtPtr ctxt); ! 361: XMLPUBFUN xmlChar * XMLCALL ! 362: xmlParseEntityValue (xmlParserCtxtPtr ctxt, ! 363: xmlChar **orig); ! 364: XMLPUBFUN xmlChar * XMLCALL ! 365: xmlParseAttValue (xmlParserCtxtPtr ctxt); ! 366: XMLPUBFUN xmlChar * XMLCALL ! 367: xmlParseSystemLiteral (xmlParserCtxtPtr ctxt); ! 368: XMLPUBFUN xmlChar * XMLCALL ! 369: xmlParsePubidLiteral (xmlParserCtxtPtr ctxt); ! 370: XMLPUBFUN void XMLCALL ! 371: xmlParseCharData (xmlParserCtxtPtr ctxt, ! 372: int cdata); ! 373: XMLPUBFUN xmlChar * XMLCALL ! 374: xmlParseExternalID (xmlParserCtxtPtr ctxt, ! 375: xmlChar **publicID, ! 376: int strict); ! 377: XMLPUBFUN void XMLCALL ! 378: xmlParseComment (xmlParserCtxtPtr ctxt); ! 379: XMLPUBFUN const xmlChar * XMLCALL ! 380: xmlParsePITarget (xmlParserCtxtPtr ctxt); ! 381: XMLPUBFUN void XMLCALL ! 382: xmlParsePI (xmlParserCtxtPtr ctxt); ! 383: XMLPUBFUN void XMLCALL ! 384: xmlParseNotationDecl (xmlParserCtxtPtr ctxt); ! 385: XMLPUBFUN void XMLCALL ! 386: xmlParseEntityDecl (xmlParserCtxtPtr ctxt); ! 387: XMLPUBFUN int XMLCALL ! 388: xmlParseDefaultDecl (xmlParserCtxtPtr ctxt, ! 389: xmlChar **value); ! 390: XMLPUBFUN xmlEnumerationPtr XMLCALL ! 391: xmlParseNotationType (xmlParserCtxtPtr ctxt); ! 392: XMLPUBFUN xmlEnumerationPtr XMLCALL ! 393: xmlParseEnumerationType (xmlParserCtxtPtr ctxt); ! 394: XMLPUBFUN int XMLCALL ! 395: xmlParseEnumeratedType (xmlParserCtxtPtr ctxt, ! 396: xmlEnumerationPtr *tree); ! 397: XMLPUBFUN int XMLCALL ! 398: xmlParseAttributeType (xmlParserCtxtPtr ctxt, ! 399: xmlEnumerationPtr *tree); ! 400: XMLPUBFUN void XMLCALL ! 401: xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt); ! 402: XMLPUBFUN xmlElementContentPtr XMLCALL ! 403: xmlParseElementMixedContentDecl ! 404: (xmlParserCtxtPtr ctxt, ! 405: int inputchk); ! 406: XMLPUBFUN xmlElementContentPtr XMLCALL ! 407: xmlParseElementChildrenContentDecl ! 408: (xmlParserCtxtPtr ctxt, ! 409: int inputchk); ! 410: XMLPUBFUN int XMLCALL ! 411: xmlParseElementContentDecl(xmlParserCtxtPtr ctxt, ! 412: const xmlChar *name, ! 413: xmlElementContentPtr *result); ! 414: XMLPUBFUN int XMLCALL ! 415: xmlParseElementDecl (xmlParserCtxtPtr ctxt); ! 416: XMLPUBFUN void XMLCALL ! 417: xmlParseMarkupDecl (xmlParserCtxtPtr ctxt); ! 418: XMLPUBFUN int XMLCALL ! 419: xmlParseCharRef (xmlParserCtxtPtr ctxt); ! 420: XMLPUBFUN xmlEntityPtr XMLCALL ! 421: xmlParseEntityRef (xmlParserCtxtPtr ctxt); ! 422: XMLPUBFUN void XMLCALL ! 423: xmlParseReference (xmlParserCtxtPtr ctxt); ! 424: XMLPUBFUN void XMLCALL ! 425: xmlParsePEReference (xmlParserCtxtPtr ctxt); ! 426: XMLPUBFUN void XMLCALL ! 427: xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt); ! 428: #ifdef LIBXML_SAX1_ENABLED ! 429: XMLPUBFUN const xmlChar * XMLCALL ! 430: xmlParseAttribute (xmlParserCtxtPtr ctxt, ! 431: xmlChar **value); ! 432: XMLPUBFUN const xmlChar * XMLCALL ! 433: xmlParseStartTag (xmlParserCtxtPtr ctxt); ! 434: XMLPUBFUN void XMLCALL ! 435: xmlParseEndTag (xmlParserCtxtPtr ctxt); ! 436: #endif /* LIBXML_SAX1_ENABLED */ ! 437: XMLPUBFUN void XMLCALL ! 438: xmlParseCDSect (xmlParserCtxtPtr ctxt); ! 439: XMLPUBFUN void XMLCALL ! 440: xmlParseContent (xmlParserCtxtPtr ctxt); ! 441: XMLPUBFUN void XMLCALL ! 442: xmlParseElement (xmlParserCtxtPtr ctxt); ! 443: XMLPUBFUN xmlChar * XMLCALL ! 444: xmlParseVersionNum (xmlParserCtxtPtr ctxt); ! 445: XMLPUBFUN xmlChar * XMLCALL ! 446: xmlParseVersionInfo (xmlParserCtxtPtr ctxt); ! 447: XMLPUBFUN xmlChar * XMLCALL ! 448: xmlParseEncName (xmlParserCtxtPtr ctxt); ! 449: XMLPUBFUN const xmlChar * XMLCALL ! 450: xmlParseEncodingDecl (xmlParserCtxtPtr ctxt); ! 451: XMLPUBFUN int XMLCALL ! 452: xmlParseSDDecl (xmlParserCtxtPtr ctxt); ! 453: XMLPUBFUN void XMLCALL ! 454: xmlParseXMLDecl (xmlParserCtxtPtr ctxt); ! 455: XMLPUBFUN void XMLCALL ! 456: xmlParseTextDecl (xmlParserCtxtPtr ctxt); ! 457: XMLPUBFUN void XMLCALL ! 458: xmlParseMisc (xmlParserCtxtPtr ctxt); ! 459: XMLPUBFUN void XMLCALL ! 460: xmlParseExternalSubset (xmlParserCtxtPtr ctxt, ! 461: const xmlChar *ExternalID, ! 462: const xmlChar *SystemID); ! 463: /** ! 464: * XML_SUBSTITUTE_NONE: ! 465: * ! 466: * If no entities need to be substituted. ! 467: */ ! 468: #define XML_SUBSTITUTE_NONE 0 ! 469: /** ! 470: * XML_SUBSTITUTE_REF: ! 471: * ! 472: * Whether general entities need to be substituted. ! 473: */ ! 474: #define XML_SUBSTITUTE_REF 1 ! 475: /** ! 476: * XML_SUBSTITUTE_PEREF: ! 477: * ! 478: * Whether parameter entities need to be substituted. ! 479: */ ! 480: #define XML_SUBSTITUTE_PEREF 2 ! 481: /** ! 482: * XML_SUBSTITUTE_BOTH: ! 483: * ! 484: * Both general and parameter entities need to be substituted. ! 485: */ ! 486: #define XML_SUBSTITUTE_BOTH 3 ! 487: ! 488: XMLPUBFUN xmlChar * XMLCALL ! 489: xmlStringDecodeEntities (xmlParserCtxtPtr ctxt, ! 490: const xmlChar *str, ! 491: int what, ! 492: xmlChar end, ! 493: xmlChar end2, ! 494: xmlChar end3); ! 495: XMLPUBFUN xmlChar * XMLCALL ! 496: xmlStringLenDecodeEntities (xmlParserCtxtPtr ctxt, ! 497: const xmlChar *str, ! 498: int len, ! 499: int what, ! 500: xmlChar end, ! 501: xmlChar end2, ! 502: xmlChar end3); ! 503: ! 504: /* ! 505: * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP. ! 506: */ ! 507: XMLPUBFUN int XMLCALL nodePush (xmlParserCtxtPtr ctxt, ! 508: xmlNodePtr value); ! 509: XMLPUBFUN xmlNodePtr XMLCALL nodePop (xmlParserCtxtPtr ctxt); ! 510: XMLPUBFUN int XMLCALL inputPush (xmlParserCtxtPtr ctxt, ! 511: xmlParserInputPtr value); ! 512: XMLPUBFUN xmlParserInputPtr XMLCALL inputPop (xmlParserCtxtPtr ctxt); ! 513: XMLPUBFUN const xmlChar * XMLCALL namePop (xmlParserCtxtPtr ctxt); ! 514: XMLPUBFUN int XMLCALL namePush (xmlParserCtxtPtr ctxt, ! 515: const xmlChar *value); ! 516: ! 517: /* ! 518: * other commodities shared between parser.c and parserInternals. ! 519: */ ! 520: XMLPUBFUN int XMLCALL xmlSkipBlankChars (xmlParserCtxtPtr ctxt); ! 521: XMLPUBFUN int XMLCALL xmlStringCurrentChar (xmlParserCtxtPtr ctxt, ! 522: const xmlChar *cur, ! 523: int *len); ! 524: XMLPUBFUN void XMLCALL xmlParserHandlePEReference(xmlParserCtxtPtr ctxt); ! 525: XMLPUBFUN int XMLCALL xmlCheckLanguageID (const xmlChar *lang); ! 526: ! 527: /* ! 528: * Really core function shared with HTML parser. ! 529: */ ! 530: XMLPUBFUN int XMLCALL xmlCurrentChar (xmlParserCtxtPtr ctxt, ! 531: int *len); ! 532: XMLPUBFUN int XMLCALL xmlCopyCharMultiByte (xmlChar *out, ! 533: int val); ! 534: XMLPUBFUN int XMLCALL xmlCopyChar (int len, ! 535: xmlChar *out, ! 536: int val); ! 537: XMLPUBFUN void XMLCALL xmlNextChar (xmlParserCtxtPtr ctxt); ! 538: XMLPUBFUN void XMLCALL xmlParserInputShrink (xmlParserInputPtr in); ! 539: ! 540: #ifdef LIBXML_HTML_ENABLED ! 541: /* ! 542: * Actually comes from the HTML parser but launched from the init stuff. ! 543: */ ! 544: XMLPUBFUN void XMLCALL htmlInitAutoClose (void); ! 545: XMLPUBFUN htmlParserCtxtPtr XMLCALL htmlCreateFileParserCtxt(const char *filename, ! 546: const char *encoding); ! 547: #endif ! 548: ! 549: /* ! 550: * Specific function to keep track of entities references ! 551: * and used by the XSLT debugger. ! 552: */ ! 553: #ifdef LIBXML_LEGACY_ENABLED ! 554: /** ! 555: * xmlEntityReferenceFunc: ! 556: * @ent: the entity ! 557: * @firstNode: the fist node in the chunk ! 558: * @lastNode: the last nod in the chunk ! 559: * ! 560: * Callback function used when one needs to be able to track back the ! 561: * provenance of a chunk of nodes inherited from an entity replacement. ! 562: */ ! 563: typedef void (*xmlEntityReferenceFunc) (xmlEntityPtr ent, ! 564: xmlNodePtr firstNode, ! 565: xmlNodePtr lastNode); ! 566: ! 567: XMLPUBFUN void XMLCALL xmlSetEntityReferenceFunc (xmlEntityReferenceFunc func); ! 568: ! 569: XMLPUBFUN xmlChar * XMLCALL ! 570: xmlParseQuotedString (xmlParserCtxtPtr ctxt); ! 571: XMLPUBFUN void XMLCALL ! 572: xmlParseNamespace (xmlParserCtxtPtr ctxt); ! 573: XMLPUBFUN xmlChar * XMLCALL ! 574: xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt); ! 575: XMLPUBFUN xmlChar * XMLCALL ! 576: xmlScanName (xmlParserCtxtPtr ctxt); ! 577: XMLPUBFUN xmlChar * XMLCALL ! 578: xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt); ! 579: XMLPUBFUN void XMLCALL xmlParserHandleReference(xmlParserCtxtPtr ctxt); ! 580: XMLPUBFUN xmlChar * XMLCALL ! 581: xmlNamespaceParseQName (xmlParserCtxtPtr ctxt, ! 582: xmlChar **prefix); ! 583: /** ! 584: * Entities ! 585: */ ! 586: XMLPUBFUN xmlChar * XMLCALL ! 587: xmlDecodeEntities (xmlParserCtxtPtr ctxt, ! 588: int len, ! 589: int what, ! 590: xmlChar end, ! 591: xmlChar end2, ! 592: xmlChar end3); ! 593: XMLPUBFUN void XMLCALL ! 594: xmlHandleEntity (xmlParserCtxtPtr ctxt, ! 595: xmlEntityPtr entity); ! 596: ! 597: #endif /* LIBXML_LEGACY_ENABLED */ ! 598: ! 599: #ifdef IN_LIBXML ! 600: /* ! 601: * internal only ! 602: */ ! 603: XMLPUBFUN void XMLCALL ! 604: xmlErrMemory (xmlParserCtxtPtr ctxt, ! 605: const char *extra); ! 606: #endif ! 607: ! 608: #ifdef __cplusplus ! 609: } ! 610: #endif ! 611: #endif /* __XML_PARSER_INTERNALS_H__ */