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