Annotation of embedaddon/libxml2/include/libxml/parserInternals.h, revision 1.1.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>