📄 parserinternals.h.svn-base
字号:
/* * Summary: internals routines exported by the parser. * Description: this module exports a number of internal parsing routines * they are not really all intended for applications but * can prove useful doing low level processing. * * Copy: See Copyright for the status of this software. * * Author: Daniel Veillard */#ifndef __XML_PARSER_INTERNALS_H__#define __XML_PARSER_INTERNALS_H__#include <libxml/xmlversion.h>#include <libxml/parser.h>#include <libxml/HTMLparser.h>#include <libxml/chvalid.h>#ifdef __cplusplusextern "C" {#endif/** * xmlParserMaxDepth: * * arbitrary depth limit for the XML documents that we allow to * process. This is not a limitation of the parser but a safety * boundary feature. */XMLPUBVAR unsigned int xmlParserMaxDepth; /** * XML_MAX_NAMELEN: * * Identifiers can be longer, but this will be more costly * at runtime. */#define XML_MAX_NAMELEN 100/** * INPUT_CHUNK: * * The parser tries to always have that amount of input ready. * One of the point is providing context when reporting errors. */#define INPUT_CHUNK 250/************************************************************************ * * * UNICODE version of the macros. * * * ************************************************************************//** * IS_BYTE_CHAR: * @c: an byte value (int) * * Macro to check the following production in the XML spec: * * [2] Char ::= #x9 | #xA | #xD | [#x20...] * any byte character in the accepted range */#define IS_BYTE_CHAR(c) xmlIsChar_ch(c)/** * IS_CHAR: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] * | [#x10000-#x10FFFF] * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */#define IS_CHAR(c) xmlIsCharQ(c)/** * IS_CHAR_CH: * @c: an xmlChar (usually an unsigned char) * * Behaves like IS_CHAR on single-byte value */#define IS_CHAR_CH(c) xmlIsChar_ch(c)/** * IS_BLANK: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * [3] S ::= (#x20 | #x9 | #xD | #xA)+ */#define IS_BLANK(c) xmlIsBlankQ(c)/** * IS_BLANK_CH: * @c: an xmlChar value (normally unsigned char) * * Behaviour same as IS_BLANK */#define IS_BLANK_CH(c) xmlIsBlank_ch(c)/** * IS_BASECHAR: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * [85] BaseChar ::= ... long list see REC ... */#define IS_BASECHAR(c) xmlIsBaseCharQ(c)/** * IS_DIGIT: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * [88] Digit ::= ... long list see REC ... */#define IS_DIGIT(c) xmlIsDigitQ(c)/** * IS_DIGIT_CH: * @c: an xmlChar value (usually an unsigned char) * * Behaves like IS_DIGIT but with a single byte argument */#define IS_DIGIT_CH(c) xmlIsDigit_ch(c)/** * IS_COMBINING: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * [87] CombiningChar ::= ... long list see REC ... */#define IS_COMBINING(c) xmlIsCombiningQ(c)/** * IS_COMBINING_CH: * @c: an xmlChar (usually an unsigned char) * * Always false (all combining chars > 0xff) */#define IS_COMBINING_CH(c) 0 /** * IS_EXTENDER: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | * #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | * [#x309D-#x309E] | [#x30FC-#x30FE] */#define IS_EXTENDER(c) xmlIsExtenderQ(c)/** * IS_EXTENDER_CH: * @c: an xmlChar value (usually an unsigned char) * * Behaves like IS_EXTENDER but with a single-byte argument */#define IS_EXTENDER_CH(c) xmlIsExtender_ch(c)/** * IS_IDEOGRAPHIC: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029] */#define IS_IDEOGRAPHIC(c) xmlIsIdeographicQ(c)/** * IS_LETTER: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * * [84] Letter ::= BaseChar | Ideographic */#define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))/** * IS_LETTER_CH: * @c: an xmlChar value (normally unsigned char) * * Macro behaves like IS_LETTER, but only check base chars * */#define IS_LETTER_CH(c) xmlIsBaseChar_ch(c)/** * IS_PUBIDCHAR: * @c: an UNICODE value (int) * * Macro to check the following production in the XML spec: * * * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%] */#define IS_PUBIDCHAR(c) xmlIsPubidCharQ(c)/** * IS_PUBIDCHAR_CH: * @c: an xmlChar value (normally unsigned char) * * Same as IS_PUBIDCHAR but for single-byte value */#define IS_PUBIDCHAR_CH(c) xmlIsPubidChar_ch(c)/** * SKIP_EOL: * @p: and UTF8 string pointer * * Skips the end of line chars. */#define SKIP_EOL(p) \ if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; } \ if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }/** * MOVETO_ENDTAG: * @p: and UTF8 string pointer * * Skips to the next '>' char. */#define MOVETO_ENDTAG(p) \ while ((*p) && (*(p) != '>')) (p)++/** * MOVETO_STARTTAG: * @p: and UTF8 string pointer * * Skips to the next '<' char. */#define MOVETO_STARTTAG(p) \ while ((*p) && (*(p) != '<')) (p)++/** * Global variables used for predefined strings. */XMLPUBVAR const xmlChar xmlStringText[];XMLPUBVAR const xmlChar xmlStringTextNoenc[];XMLPUBVAR const xmlChar xmlStringComment[];/* * Function to finish the work of the macros where needed. */XMLPUBFUN int XMLCALL xmlIsLetter (int c);/** * Parser context. */XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateFileParserCtxt (const char *filename);XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateURLParserCtxt (const char *filename, int options);XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateMemoryParserCtxt(const char *buffer, int size);XMLPUBFUN xmlParserCtxtPtr XMLCALL xmlCreateEntityParserCtxt(const xmlChar *URL, const xmlChar *ID, const xmlChar *base);XMLPUBFUN int XMLCALL xmlSwitchEncoding (xmlParserCtxtPtr ctxt, xmlCharEncoding enc);XMLPUBFUN int XMLCALL xmlSwitchToEncoding (xmlParserCtxtPtr ctxt, xmlCharEncodingHandlerPtr handler);XMLPUBFUN int XMLCALL xmlSwitchInputEncoding (xmlParserCtxtPtr ctxt, xmlParserInputPtr input, xmlCharEncodingHandlerPtr handler);#ifdef IN_LIBXML/* internal error reporting */XMLPUBFUN void XMLCALL __xmlErrEncoding (xmlParserCtxtPtr ctxt, xmlParserErrors error,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -