Annotation of embedaddon/libxml2/include/libxml/parserInternals.h, revision 1.1

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__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>