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