parserInternals.h
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:23k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * parserInternals.h : internals routines exported by the parser.
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8. #ifndef __XML_PARSER_INTERNALS_H__
  9. #define __XML_PARSER_INTERNALS_H__
  10. #include <libxml/parser.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. #define XML_MAX_NAMELEN 1000
  15. /************************************************************************
  16.  * *
  17.  * UNICODE version of the macros.       *
  18.  * *
  19.  ************************************************************************/
  20. /*
  21.  * [2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD]
  22.  *                  | [#x10000-#x10FFFF]
  23.  * any Unicode character, excluding the surrogate blocks, FFFE, and FFFF.
  24.  */
  25. #define IS_CHAR(c)
  26.     ((((c) == 0x09) || ((c) == 0x0A) || ((c) == 0x0D) ||
  27.       (((c) >= 0x20) && ((c) != 0xFFFE) && ((c) != 0xFFFF))) &&
  28.       (((c) <= 0xD7FF) || ((c) >= 0xE000)) && ((c) >= 0) &&
  29.       ((c) <= 0x10FFFF))
  30. /*
  31.  * [3] S ::= (#x20 | #x9 | #xD | #xA)+
  32.  */
  33. #define IS_BLANK(c) (((c) == 0x20) || ((c) == 0x09) || ((c) == 0xA) ||
  34.                      ((c) == 0x0D))
  35. /*
  36.  * [85] BaseChar ::= ... long list see REC ...
  37.  *
  38.  * VI is your friend !
  39.  * :1,$ s/[#x([0-9A-Z]*)-#x([0-9A-Z]*)]/     (((c) >= 0x1) && ((c) <= 0x2)) ||/
  40.  * and 
  41.  * :1,$ s/#x([0-9A-Z]*)/     ((c) == 0x1) ||/
  42.  */
  43. #define IS_BASECHAR(c)
  44.      ((((c) >= 0x0041) && ((c) <= 0x005A)) ||
  45.       (((c) >= 0x0061) && ((c) <= 0x007A)) ||
  46.       (((c) >= 0x00C0) && ((c) <= 0x00D6)) ||
  47.       (((c) >= 0x00D8) && ((c) <= 0x00F6)) ||
  48.       (((c) >= 0x00F8) && ((c) <= 0x00FF)) ||
  49.      (((c) >= 0x100) && ( /* accelerator */
  50.       (((c) >= 0x0100) && ((c) <= 0x0131)) ||
  51.       (((c) >= 0x0134) && ((c) <= 0x013E)) ||
  52.       (((c) >= 0x0141) && ((c) <= 0x0148)) ||
  53.       (((c) >= 0x014A) && ((c) <= 0x017E)) ||
  54.       (((c) >= 0x0180) && ((c) <= 0x01C3)) ||
  55.       (((c) >= 0x01CD) && ((c) <= 0x01F0)) ||
  56.       (((c) >= 0x01F4) && ((c) <= 0x01F5)) ||
  57.       (((c) >= 0x01FA) && ((c) <= 0x0217)) ||
  58.       (((c) >= 0x0250) && ((c) <= 0x02A8)) ||
  59.       (((c) >= 0x02BB) && ((c) <= 0x02C1)) ||
  60.       ((c) == 0x0386) ||
  61.       (((c) >= 0x0388) && ((c) <= 0x038A)) ||
  62.       ((c) == 0x038C) ||
  63.       (((c) >= 0x038E) && ((c) <= 0x03A1)) ||
  64.       (((c) >= 0x03A3) && ((c) <= 0x03CE)) ||
  65.       (((c) >= 0x03D0) && ((c) <= 0x03D6)) ||
  66.       ((c) == 0x03DA) ||
  67.       ((c) == 0x03DC) ||
  68.       ((c) == 0x03DE) ||
  69.       ((c) == 0x03E0) ||
  70.       (((c) >= 0x03E2) && ((c) <= 0x03F3)) ||
  71.       (((c) >= 0x0401) && ((c) <= 0x040C)) ||
  72.       (((c) >= 0x040E) && ((c) <= 0x044F)) ||
  73.       (((c) >= 0x0451) && ((c) <= 0x045C)) ||
  74.       (((c) >= 0x045E) && ((c) <= 0x0481)) ||
  75.       (((c) >= 0x0490) && ((c) <= 0x04C4)) ||
  76.       (((c) >= 0x04C7) && ((c) <= 0x04C8)) ||
  77.       (((c) >= 0x04CB) && ((c) <= 0x04CC)) ||
  78.       (((c) >= 0x04D0) && ((c) <= 0x04EB)) ||
  79.       (((c) >= 0x04EE) && ((c) <= 0x04F5)) ||
  80.       (((c) >= 0x04F8) && ((c) <= 0x04F9)) ||
  81.       (((c) >= 0x0531) && ((c) <= 0x0556)) ||
  82.       ((c) == 0x0559) ||
  83.       (((c) >= 0x0561) && ((c) <= 0x0586)) ||
  84.       (((c) >= 0x05D0) && ((c) <= 0x05EA)) ||
  85.       (((c) >= 0x05F0) && ((c) <= 0x05F2)) ||
  86.       (((c) >= 0x0621) && ((c) <= 0x063A)) ||
  87.       (((c) >= 0x0641) && ((c) <= 0x064A)) ||
  88.       (((c) >= 0x0671) && ((c) <= 0x06B7)) ||
  89.       (((c) >= 0x06BA) && ((c) <= 0x06BE)) ||
  90.       (((c) >= 0x06C0) && ((c) <= 0x06CE)) ||
  91.       (((c) >= 0x06D0) && ((c) <= 0x06D3)) ||
  92.       ((c) == 0x06D5) ||
  93.       (((c) >= 0x06E5) && ((c) <= 0x06E6)) ||
  94.      (((c) > 0x905) && ( /* accelerator */
  95.       (((c) >= 0x0905) && ((c) <= 0x0939)) ||
  96.       ((c) == 0x093D) ||
  97.       (((c) >= 0x0958) && ((c) <= 0x0961)) ||
  98.       (((c) >= 0x0985) && ((c) <= 0x098C)) ||
  99.       (((c) >= 0x098F) && ((c) <= 0x0990)) ||
  100.       (((c) >= 0x0993) && ((c) <= 0x09A8)) ||
  101.       (((c) >= 0x09AA) && ((c) <= 0x09B0)) ||
  102.       ((c) == 0x09B2) ||
  103.       (((c) >= 0x09B6) && ((c) <= 0x09B9)) ||
  104.       (((c) >= 0x09DC) && ((c) <= 0x09DD)) ||
  105.       (((c) >= 0x09DF) && ((c) <= 0x09E1)) ||
  106.       (((c) >= 0x09F0) && ((c) <= 0x09F1)) ||
  107.       (((c) >= 0x0A05) && ((c) <= 0x0A0A)) ||
  108.       (((c) >= 0x0A0F) && ((c) <= 0x0A10)) ||
  109.       (((c) >= 0x0A13) && ((c) <= 0x0A28)) ||
  110.       (((c) >= 0x0A2A) && ((c) <= 0x0A30)) ||
  111.       (((c) >= 0x0A32) && ((c) <= 0x0A33)) ||
  112.       (((c) >= 0x0A35) && ((c) <= 0x0A36)) ||
  113.       (((c) >= 0x0A38) && ((c) <= 0x0A39)) ||
  114.       (((c) >= 0x0A59) && ((c) <= 0x0A5C)) ||
  115.       ((c) == 0x0A5E) ||
  116.       (((c) >= 0x0A72) && ((c) <= 0x0A74)) ||
  117.       (((c) >= 0x0A85) && ((c) <= 0x0A8B)) ||
  118.       ((c) == 0x0A8D) ||
  119.       (((c) >= 0x0A8F) && ((c) <= 0x0A91)) ||
  120.       (((c) >= 0x0A93) && ((c) <= 0x0AA8)) ||
  121.       (((c) >= 0x0AAA) && ((c) <= 0x0AB0)) ||
  122.       (((c) >= 0x0AB2) && ((c) <= 0x0AB3)) ||
  123.       (((c) >= 0x0AB5) && ((c) <= 0x0AB9)) ||
  124.       ((c) == 0x0ABD) ||
  125.       ((c) == 0x0AE0) ||
  126.       (((c) >= 0x0B05) && ((c) <= 0x0B0C)) ||
  127.       (((c) >= 0x0B0F) && ((c) <= 0x0B10)) ||
  128.       (((c) >= 0x0B13) && ((c) <= 0x0B28)) ||
  129.       (((c) >= 0x0B2A) && ((c) <= 0x0B30)) ||
  130.       (((c) >= 0x0B32) && ((c) <= 0x0B33)) ||
  131.       (((c) >= 0x0B36) && ((c) <= 0x0B39)) ||
  132.       ((c) == 0x0B3D) ||
  133.       (((c) >= 0x0B5C) && ((c) <= 0x0B5D)) ||
  134.       (((c) >= 0x0B5F) && ((c) <= 0x0B61)) ||
  135.       (((c) >= 0x0B85) && ((c) <= 0x0B8A)) ||
  136.       (((c) >= 0x0B8E) && ((c) <= 0x0B90)) ||
  137.       (((c) >= 0x0B92) && ((c) <= 0x0B95)) ||
  138.       (((c) >= 0x0B99) && ((c) <= 0x0B9A)) ||
  139.       ((c) == 0x0B9C) ||
  140.       (((c) >= 0x0B9E) && ((c) <= 0x0B9F)) ||
  141.       (((c) >= 0x0BA3) && ((c) <= 0x0BA4)) ||
  142.       (((c) >= 0x0BA8) && ((c) <= 0x0BAA)) ||
  143.       (((c) >= 0x0BAE) && ((c) <= 0x0BB5)) ||
  144.       (((c) >= 0x0BB7) && ((c) <= 0x0BB9)) ||
  145.       (((c) >= 0x0C05) && ((c) <= 0x0C0C)) ||
  146.       (((c) >= 0x0C0E) && ((c) <= 0x0C10)) ||
  147.       (((c) >= 0x0C12) && ((c) <= 0x0C28)) ||
  148.       (((c) >= 0x0C2A) && ((c) <= 0x0C33)) ||
  149.       (((c) >= 0x0C35) && ((c) <= 0x0C39)) ||
  150.       (((c) >= 0x0C60) && ((c) <= 0x0C61)) ||
  151.       (((c) >= 0x0C85) && ((c) <= 0x0C8C)) ||
  152.       (((c) >= 0x0C8E) && ((c) <= 0x0C90)) ||
  153.       (((c) >= 0x0C92) && ((c) <= 0x0CA8)) ||
  154.       (((c) >= 0x0CAA) && ((c) <= 0x0CB3)) ||
  155.       (((c) >= 0x0CB5) && ((c) <= 0x0CB9)) ||
  156.       ((c) == 0x0CDE) ||
  157.       (((c) >= 0x0CE0) && ((c) <= 0x0CE1)) ||
  158.       (((c) >= 0x0D05) && ((c) <= 0x0D0C)) ||
  159.       (((c) >= 0x0D0E) && ((c) <= 0x0D10)) ||
  160.       (((c) >= 0x0D12) && ((c) <= 0x0D28)) ||
  161.       (((c) >= 0x0D2A) && ((c) <= 0x0D39)) ||
  162.       (((c) >= 0x0D60) && ((c) <= 0x0D61)) ||
  163.       (((c) >= 0x0E01) && ((c) <= 0x0E2E)) ||
  164.       ((c) == 0x0E30) ||
  165.       (((c) >= 0x0E32) && ((c) <= 0x0E33)) ||
  166.       (((c) >= 0x0E40) && ((c) <= 0x0E45)) ||
  167.       (((c) >= 0x0E81) && ((c) <= 0x0E82)) ||
  168.       ((c) == 0x0E84) ||
  169.       (((c) >= 0x0E87) && ((c) <= 0x0E88)) ||
  170.       ((c) == 0x0E8A) ||
  171.       ((c) == 0x0E8D) ||
  172.       (((c) >= 0x0E94) && ((c) <= 0x0E97)) ||
  173.       (((c) >= 0x0E99) && ((c) <= 0x0E9F)) ||
  174.       (((c) >= 0x0EA1) && ((c) <= 0x0EA3)) ||
  175.       ((c) == 0x0EA5) ||
  176.       ((c) == 0x0EA7) ||
  177.       (((c) >= 0x0EAA) && ((c) <= 0x0EAB)) ||
  178.       (((c) >= 0x0EAD) && ((c) <= 0x0EAE)) ||
  179.       ((c) == 0x0EB0) ||
  180.       (((c) >= 0x0EB2) && ((c) <= 0x0EB3)) ||
  181.       ((c) == 0x0EBD) ||
  182.       (((c) >= 0x0EC0) && ((c) <= 0x0EC4)) ||
  183.       (((c) >= 0x0F40) && ((c) <= 0x0F47)) ||
  184.       (((c) >= 0x0F49) && ((c) <= 0x0F69)) ||
  185.      (((c) > 0x10A0) && ( /* accelerator */
  186.       (((c) >= 0x10A0) && ((c) <= 0x10C5)) ||
  187.       (((c) >= 0x10D0) && ((c) <= 0x10F6)) ||
  188.       ((c) == 0x1100) ||
  189.       (((c) >= 0x1102) && ((c) <= 0x1103)) ||
  190.       (((c) >= 0x1105) && ((c) <= 0x1107)) ||
  191.       ((c) == 0x1109) ||
  192.       (((c) >= 0x110B) && ((c) <= 0x110C)) ||
  193.       (((c) >= 0x110E) && ((c) <= 0x1112)) ||
  194.       ((c) == 0x113C) ||
  195.       ((c) == 0x113E) ||
  196.       ((c) == 0x1140) ||
  197.       ((c) == 0x114C) ||
  198.       ((c) == 0x114E) ||
  199.       ((c) == 0x1150) ||
  200.       (((c) >= 0x1154) && ((c) <= 0x1155)) ||
  201.       ((c) == 0x1159) ||
  202.       (((c) >= 0x115F) && ((c) <= 0x1161)) ||
  203.       ((c) == 0x1163) ||
  204.       ((c) == 0x1165) ||
  205.       ((c) == 0x1167) ||
  206.       ((c) == 0x1169) ||
  207.       (((c) >= 0x116D) && ((c) <= 0x116E)) ||
  208.       (((c) >= 0x1172) && ((c) <= 0x1173)) ||
  209.       ((c) == 0x1175) ||
  210.       ((c) == 0x119E) ||
  211.       ((c) == 0x11A8) ||
  212.       ((c) == 0x11AB) ||
  213.       (((c) >= 0x11AE) && ((c) <= 0x11AF)) ||
  214.       (((c) >= 0x11B7) && ((c) <= 0x11B8)) ||
  215.       ((c) == 0x11BA) ||
  216.       (((c) >= 0x11BC) && ((c) <= 0x11C2)) ||
  217.       ((c) == 0x11EB) ||
  218.       ((c) == 0x11F0) ||
  219.       ((c) == 0x11F9) ||
  220.       (((c) >= 0x1E00) && ((c) <= 0x1E9B)) ||
  221.       (((c) >= 0x1EA0) && ((c) <= 0x1EF9)) ||
  222.       (((c) >= 0x1F00) && ((c) <= 0x1F15)) ||
  223.       (((c) >= 0x1F18) && ((c) <= 0x1F1D)) ||
  224.       (((c) >= 0x1F20) && ((c) <= 0x1F45)) ||
  225.       (((c) >= 0x1F48) && ((c) <= 0x1F4D)) ||
  226.       (((c) >= 0x1F50) && ((c) <= 0x1F57)) ||
  227.       ((c) == 0x1F59) ||
  228.       ((c) == 0x1F5B) ||
  229.       ((c) == 0x1F5D) ||
  230.       (((c) >= 0x1F5F) && ((c) <= 0x1F7D)) ||
  231.       (((c) >= 0x1F80) && ((c) <= 0x1FB4)) ||
  232.       (((c) >= 0x1FB6) && ((c) <= 0x1FBC)) ||
  233.       ((c) == 0x1FBE) ||
  234.       (((c) >= 0x1FC2) && ((c) <= 0x1FC4)) ||
  235.       (((c) >= 0x1FC6) && ((c) <= 0x1FCC)) ||
  236.       (((c) >= 0x1FD0) && ((c) <= 0x1FD3)) ||
  237.       (((c) >= 0x1FD6) && ((c) <= 0x1FDB)) ||
  238.       (((c) >= 0x1FE0) && ((c) <= 0x1FEC)) ||
  239.       (((c) >= 0x1FF2) && ((c) <= 0x1FF4)) ||
  240.       (((c) >= 0x1FF6) && ((c) <= 0x1FFC)) ||
  241.       ((c) == 0x2126) ||
  242.       (((c) >= 0x212A) && ((c) <= 0x212B)) ||
  243.       ((c) == 0x212E) ||
  244.       (((c) >= 0x2180) && ((c) <= 0x2182)) ||
  245.       (((c) >= 0x3041) && ((c) <= 0x3094)) ||
  246.       (((c) >= 0x30A1) && ((c) <= 0x30FA)) ||
  247.       (((c) >= 0x3105) && ((c) <= 0x312C)) ||
  248.       (((c) >= 0xAC00) && ((c) <= 0xD7A3))) /* accelerators */ ))))))
  249. /*
  250.  * [88] Digit ::= ... long list see REC ...
  251.  */
  252. #define IS_DIGIT(c) 
  253.      ((((c) >= 0x0030) && ((c) <= 0x0039)) ||
  254.      (((c) >= 0x660) && ( /* accelerator */
  255.       (((c) >= 0x0660) && ((c) <= 0x0669)) ||
  256.       (((c) >= 0x06F0) && ((c) <= 0x06F9)) ||
  257.       (((c) >= 0x0966) && ((c) <= 0x096F)) ||
  258.       (((c) >= 0x09E6) && ((c) <= 0x09EF)) ||
  259.       (((c) >= 0x0A66) && ((c) <= 0x0A6F)) ||
  260.       (((c) >= 0x0AE6) && ((c) <= 0x0AEF)) ||
  261.       (((c) >= 0x0B66) && ((c) <= 0x0B6F)) ||
  262.       (((c) >= 0x0BE7) && ((c) <= 0x0BEF)) ||
  263.       (((c) >= 0x0C66) && ((c) <= 0x0C6F)) ||
  264.       (((c) >= 0x0CE6) && ((c) <= 0x0CEF)) ||
  265.       (((c) >= 0x0D66) && ((c) <= 0x0D6F)) ||
  266.       (((c) >= 0x0E50) && ((c) <= 0x0E59)) ||
  267.       (((c) >= 0x0ED0) && ((c) <= 0x0ED9)) ||
  268.       (((c) >= 0x0F20) && ((c) <= 0x0F29))) /* accelerator */ ))
  269. /*
  270.  * [87] CombiningChar ::= ... long list see REC ...
  271.  */
  272. #define IS_COMBINING(c) 
  273.     ((((c) >= 0x300) && ( /* accelerator */
  274.       (((c) >= 0x0300) && ((c) <= 0x0345)) ||
  275.       (((c) >= 0x0360) && ((c) <= 0x0361)) ||
  276.       (((c) >= 0x0483) && ((c) <= 0x0486)) ||
  277.       (((c) >= 0x0591) && ((c) <= 0x05A1)) ||
  278.       (((c) >= 0x05A3) && ((c) <= 0x05B9)) ||
  279.       (((c) >= 0x05BB) && ((c) <= 0x05BD)) ||
  280.       ((c) == 0x05BF) ||
  281.       (((c) >= 0x05C1) && ((c) <= 0x05C2)) ||
  282.       ((c) == 0x05C4) ||
  283.       (((c) >= 0x064B) && ((c) <= 0x0652)) ||
  284.       ((c) == 0x0670) ||
  285.       (((c) >= 0x06D6) && ((c) <= 0x06DC)) ||
  286.       (((c) >= 0x06DD) && ((c) <= 0x06DF)) ||
  287.       (((c) >= 0x06E0) && ((c) <= 0x06E4)) ||
  288.       (((c) >= 0x06E7) && ((c) <= 0x06E8)) ||
  289.       (((c) >= 0x06EA) && ((c) <= 0x06ED)) ||
  290.      (((c) > 0x0901) && ( /* accelerator */
  291.       (((c) >= 0x0901) && ((c) <= 0x0903)) ||
  292.       ((c) == 0x093C) ||
  293.       (((c) >= 0x093E) && ((c) <= 0x094C)) ||
  294.       ((c) == 0x094D) ||
  295.       (((c) >= 0x0951) && ((c) <= 0x0954)) ||
  296.       (((c) >= 0x0962) && ((c) <= 0x0963)) ||
  297.       (((c) >= 0x0981) && ((c) <= 0x0983)) ||
  298.       ((c) == 0x09BC) ||
  299.       ((c) == 0x09BE) ||
  300.       ((c) == 0x09BF) ||
  301.       (((c) >= 0x09C0) && ((c) <= 0x09C4)) ||
  302.       (((c) >= 0x09C7) && ((c) <= 0x09C8)) ||
  303.       (((c) >= 0x09CB) && ((c) <= 0x09CD)) ||
  304.       ((c) == 0x09D7) ||
  305.       (((c) >= 0x09E2) && ((c) <= 0x09E3)) ||
  306.      (((c) > 0x0A02) && ( /* accelerator */
  307.       ((c) == 0x0A02) ||
  308.       ((c) == 0x0A3C) ||
  309.       ((c) == 0x0A3E) ||
  310.       ((c) == 0x0A3F) ||
  311.       (((c) >= 0x0A40) && ((c) <= 0x0A42)) ||
  312.       (((c) >= 0x0A47) && ((c) <= 0x0A48)) ||
  313.       (((c) >= 0x0A4B) && ((c) <= 0x0A4D)) ||
  314.       (((c) >= 0x0A70) && ((c) <= 0x0A71)) ||
  315.       (((c) >= 0x0A81) && ((c) <= 0x0A83)) ||
  316.       ((c) == 0x0ABC) ||
  317.       (((c) >= 0x0ABE) && ((c) <= 0x0AC5)) ||
  318.       (((c) >= 0x0AC7) && ((c) <= 0x0AC9)) ||
  319.       (((c) >= 0x0ACB) && ((c) <= 0x0ACD)) ||
  320.       (((c) >= 0x0B01) && ((c) <= 0x0B03)) ||
  321.       ((c) == 0x0B3C) ||
  322.       (((c) >= 0x0B3E) && ((c) <= 0x0B43)) ||
  323.       (((c) >= 0x0B47) && ((c) <= 0x0B48)) ||
  324.       (((c) >= 0x0B4B) && ((c) <= 0x0B4D)) ||
  325.       (((c) >= 0x0B56) && ((c) <= 0x0B57)) ||
  326.       (((c) >= 0x0B82) && ((c) <= 0x0B83)) ||
  327.       (((c) >= 0x0BBE) && ((c) <= 0x0BC2)) ||
  328.       (((c) >= 0x0BC6) && ((c) <= 0x0BC8)) ||
  329.       (((c) >= 0x0BCA) && ((c) <= 0x0BCD)) ||
  330.       ((c) == 0x0BD7) ||
  331.       (((c) >= 0x0C01) && ((c) <= 0x0C03)) ||
  332.       (((c) >= 0x0C3E) && ((c) <= 0x0C44)) ||
  333.       (((c) >= 0x0C46) && ((c) <= 0x0C48)) ||
  334.       (((c) >= 0x0C4A) && ((c) <= 0x0C4D)) ||
  335.       (((c) >= 0x0C55) && ((c) <= 0x0C56)) ||
  336.       (((c) >= 0x0C82) && ((c) <= 0x0C83)) ||
  337.       (((c) >= 0x0CBE) && ((c) <= 0x0CC4)) ||
  338.       (((c) >= 0x0CC6) && ((c) <= 0x0CC8)) ||
  339.       (((c) >= 0x0CCA) && ((c) <= 0x0CCD)) ||
  340.       (((c) >= 0x0CD5) && ((c) <= 0x0CD6)) ||
  341.       (((c) >= 0x0D02) && ((c) <= 0x0D03)) ||
  342.       (((c) >= 0x0D3E) && ((c) <= 0x0D43)) ||
  343.       (((c) >= 0x0D46) && ((c) <= 0x0D48)) ||
  344.       (((c) >= 0x0D4A) && ((c) <= 0x0D4D)) ||
  345.       ((c) == 0x0D57) ||
  346.      (((c) > 0x0E31) && ( /* accelerator */
  347.       ((c) == 0x0E31) ||
  348.       (((c) >= 0x0E34) && ((c) <= 0x0E3A)) ||
  349.       (((c) >= 0x0E47) && ((c) <= 0x0E4E)) ||
  350.       ((c) == 0x0EB1) ||
  351.       (((c) >= 0x0EB4) && ((c) <= 0x0EB9)) ||
  352.       (((c) >= 0x0EBB) && ((c) <= 0x0EBC)) ||
  353.       (((c) >= 0x0EC8) && ((c) <= 0x0ECD)) ||
  354.       (((c) >= 0x0F18) && ((c) <= 0x0F19)) ||
  355.       ((c) == 0x0F35) ||
  356.       ((c) == 0x0F37) ||
  357.       ((c) == 0x0F39) ||
  358.       ((c) == 0x0F3E) ||
  359.       ((c) == 0x0F3F) ||
  360.       (((c) >= 0x0F71) && ((c) <= 0x0F84)) ||
  361.       (((c) >= 0x0F86) && ((c) <= 0x0F8B)) ||
  362.       (((c) >= 0x0F90) && ((c) <= 0x0F95)) ||
  363.       ((c) == 0x0F97) ||
  364.       (((c) >= 0x0F99) && ((c) <= 0x0FAD)) ||
  365.       (((c) >= 0x0FB1) && ((c) <= 0x0FB7)) ||
  366.       ((c) == 0x0FB9) ||
  367.       (((c) >= 0x20D0) && ((c) <= 0x20DC)) ||
  368.       ((c) == 0x20E1) ||
  369.       (((c) >= 0x302A) && ((c) <= 0x302F)) ||
  370.       ((c) == 0x3099) ||
  371.       ((c) == 0x309A)) /* accelerator */ ))))))))
  372. /*
  373.  * [89] Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 |
  374.  *                   #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] |
  375.  *                   [#x309D-#x309E] | [#x30FC-#x30FE]
  376.  */
  377. #define IS_EXTENDER(c)
  378.     (((c) == 0xb7) || ((c) == 0x2d0) || ((c) == 0x2d1) ||
  379.      ((c) == 0x387) || ((c) == 0x640) || ((c) == 0xe46) ||
  380.      ((c) == 0xec6) || ((c) == 0x3005) ||
  381.      (((c) >= 0x3031) && ((c) <= 0x3035)) ||
  382.      (((c) >= 0x309b) && ((c) <= 0x309e)) ||
  383.      (((c) >= 0x30fc) && ((c) <= 0x30fe)))
  384. /*
  385.  * [86] Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
  386.  */
  387. #define IS_IDEOGRAPHIC(c)
  388.     ((((c) >= 0x4e00) && ((c) <= 0x9fa5)) ||
  389.      (((c) >= 0xf900) && ((c) <= 0xfa2d)) ||
  390.      (((c) >= 0x3021) && ((c) <= 0x3029)) ||
  391.       ((c) == 0x3007))
  392. /*
  393.  * [84] Letter ::= BaseChar | Ideographic 
  394.  */
  395. #define IS_LETTER(c) (IS_BASECHAR(c) || IS_IDEOGRAPHIC(c))
  396. /*
  397.  * [13] PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]
  398.  */
  399. #define IS_PUBIDCHAR(c)
  400.     (((c) == 0x20) || ((c) == 0x0D) || ((c) == 0x0A) ||
  401.      (((c) >= 'a') && ((c) <= 'z')) ||
  402.      (((c) >= 'A') && ((c) <= 'Z')) ||
  403.      (((c) >= '0') && ((c) <= '9')) ||
  404.      ((c) == '-') || ((c) == ''') || ((c) == '(') || ((c) == ')') ||
  405.      ((c) == '+') || ((c) == ',') || ((c) == '.') || ((c) == '/') ||
  406.      ((c) == ':') || ((c) == '=') || ((c) == '?') || ((c) == ';') ||
  407.      ((c) == '!') || ((c) == '*') || ((c) == '#') || ((c) == '@') ||
  408.      ((c) == '$') || ((c) == '_') || ((c) == '%'))
  409. #define SKIP_EOL(p) 
  410.     if (*(p) == 0x13) { p++ ; if (*(p) == 0x10) p++; }
  411.     if (*(p) == 0x10) { p++ ; if (*(p) == 0x13) p++; }
  412. #define MOVETO_ENDTAG(p)
  413.     while ((*p) && (*(p) != '>')) (p)++
  414. #define MOVETO_STARTTAG(p)
  415.     while ((*p) && (*(p) != '<')) (p)++
  416. /**
  417.  * Parser context
  418.  */
  419. xmlParserCtxtPtr xmlCreateDocParserCtxt (xmlChar *cur);
  420. xmlParserCtxtPtr xmlCreateFileParserCtxt (const char *filename);
  421. xmlParserCtxtPtr xmlCreateMemoryParserCtxt(char *buffer,
  422.  int size);
  423. xmlParserCtxtPtr xmlNewParserCtxt (void);
  424. xmlParserCtxtPtr xmlCreateEntityParserCtxt(const xmlChar *URL,
  425.  const xmlChar *ID,
  426.  const xmlChar *base);
  427. void xmlSwitchEncoding (xmlParserCtxtPtr ctxt,
  428.  xmlCharEncoding enc);
  429. void xmlFreeParserCtxt (xmlParserCtxtPtr ctxt);
  430. /**
  431.  * Entities
  432.  */
  433. void xmlHandleEntity (xmlParserCtxtPtr ctxt,
  434.  xmlEntityPtr entity);
  435. /**
  436.  * Input Streams
  437.  */
  438. xmlParserInputPtr xmlNewEntityInputStream (xmlParserCtxtPtr ctxt,
  439.  xmlEntityPtr entity);
  440. void xmlPushInput (xmlParserCtxtPtr ctxt,
  441.  xmlParserInputPtr input);
  442. xmlChar xmlPopInput (xmlParserCtxtPtr ctxt);
  443. void xmlFreeInputStream (xmlParserInputPtr input);
  444. xmlParserInputPtr xmlNewInputFromFile (xmlParserCtxtPtr ctxt,
  445.  const char *filename);
  446. /**
  447.  * Namespaces.
  448.  */
  449. xmlChar * xmlSplitQName (xmlParserCtxtPtr ctxt,
  450.  const xmlChar *name,
  451.  xmlChar **prefix);
  452. xmlChar * xmlNamespaceParseNCName (xmlParserCtxtPtr ctxt);
  453. xmlChar * xmlNamespaceParseQName (xmlParserCtxtPtr ctxt,
  454.  xmlChar **prefix);
  455. xmlChar * xmlNamespaceParseNSDef (xmlParserCtxtPtr ctxt);
  456. xmlChar * xmlParseQuotedString (xmlParserCtxtPtr ctxt);
  457. void xmlParseNamespace (xmlParserCtxtPtr ctxt);
  458. /**
  459.  * Generic production rules
  460.  */
  461. xmlChar * xmlScanName (xmlParserCtxtPtr ctxt);
  462. xmlChar * xmlParseName (xmlParserCtxtPtr ctxt);
  463. xmlChar * xmlParseNmtoken (xmlParserCtxtPtr ctxt);
  464. xmlChar * xmlParseEntityValue (xmlParserCtxtPtr ctxt,
  465.  xmlChar **orig);
  466. xmlChar * xmlParseAttValue (xmlParserCtxtPtr ctxt);
  467. xmlChar * xmlParseSystemLiteral (xmlParserCtxtPtr ctxt);
  468. xmlChar * xmlParsePubidLiteral (xmlParserCtxtPtr ctxt);
  469. void xmlParseCharData (xmlParserCtxtPtr ctxt,
  470.  int cdata);
  471. xmlChar * xmlParseExternalID (xmlParserCtxtPtr ctxt,
  472.  xmlChar **publicID,
  473.  int strict);
  474. void xmlParseComment (xmlParserCtxtPtr ctxt);
  475. xmlChar * xmlParsePITarget (xmlParserCtxtPtr ctxt);
  476. void xmlParsePI (xmlParserCtxtPtr ctxt);
  477. void xmlParseNotationDecl (xmlParserCtxtPtr ctxt);
  478. void xmlParseEntityDecl (xmlParserCtxtPtr ctxt);
  479. int xmlParseDefaultDecl (xmlParserCtxtPtr ctxt,
  480.  xmlChar **value);
  481. xmlEnumerationPtr xmlParseNotationType (xmlParserCtxtPtr ctxt);
  482. xmlEnumerationPtr xmlParseEnumerationType (xmlParserCtxtPtr ctxt);
  483. int xmlParseEnumeratedType (xmlParserCtxtPtr ctxt,
  484.  xmlEnumerationPtr *tree);
  485. int xmlParseAttributeType (xmlParserCtxtPtr ctxt,
  486.  xmlEnumerationPtr *tree);
  487. void xmlParseAttributeListDecl(xmlParserCtxtPtr ctxt);
  488. xmlElementContentPtr xmlParseElementMixedContentDecl
  489. (xmlParserCtxtPtr ctxt);
  490. xmlElementContentPtr xmlParseElementChildrenContentDecl
  491. (xmlParserCtxtPtr ctxt);
  492. int xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
  493.  xmlChar *name,
  494.  xmlElementContentPtr *result);
  495. int xmlParseElementDecl (xmlParserCtxtPtr ctxt);
  496. void xmlParseMarkupDecl (xmlParserCtxtPtr ctxt);
  497. int xmlParseCharRef (xmlParserCtxtPtr ctxt);
  498. xmlEntityPtr xmlParseEntityRef (xmlParserCtxtPtr ctxt);
  499. void xmlParseReference (xmlParserCtxtPtr ctxt);
  500. void xmlParsePEReference (xmlParserCtxtPtr ctxt);
  501. void xmlParseDocTypeDecl (xmlParserCtxtPtr ctxt);
  502. xmlChar * xmlParseAttribute (xmlParserCtxtPtr ctxt,
  503.  xmlChar **value);
  504. xmlChar * xmlParseStartTag (xmlParserCtxtPtr ctxt);
  505. void xmlParseEndTag (xmlParserCtxtPtr ctxt);
  506. void xmlParseCDSect (xmlParserCtxtPtr ctxt);
  507. void xmlParseContent (xmlParserCtxtPtr ctxt);
  508. void xmlParseElement (xmlParserCtxtPtr ctxt);
  509. xmlChar * xmlParseVersionNum (xmlParserCtxtPtr ctxt);
  510. xmlChar * xmlParseVersionInfo (xmlParserCtxtPtr ctxt);
  511. xmlChar * xmlParseEncName (xmlParserCtxtPtr ctxt);
  512. xmlChar * xmlParseEncodingDecl (xmlParserCtxtPtr ctxt);
  513. int xmlParseSDDecl (xmlParserCtxtPtr ctxt);
  514. void xmlParseXMLDecl (xmlParserCtxtPtr ctxt);
  515. void xmlParseTextDecl (xmlParserCtxtPtr ctxt);
  516. void xmlParseMisc (xmlParserCtxtPtr ctxt);
  517. void xmlParseExternalSubset (xmlParserCtxtPtr ctxt,
  518.  const xmlChar *ExternalID,
  519.  const xmlChar *SystemID); 
  520. /*
  521.  * Entities substitution
  522.  */
  523. #define XML_SUBSTITUTE_NONE 0
  524. #define XML_SUBSTITUTE_REF 1
  525. #define XML_SUBSTITUTE_PEREF 2
  526. #define XML_SUBSTITUTE_BOTH  3
  527. xmlChar * xmlDecodeEntities (xmlParserCtxtPtr ctxt,
  528.  int len,
  529.  int what,
  530.  xmlChar end,
  531.  xmlChar  end2,
  532.  xmlChar end3);
  533. xmlChar * xmlStringDecodeEntities (xmlParserCtxtPtr ctxt,
  534.  const xmlChar *str,
  535.  int what,
  536.  xmlChar end,
  537.  xmlChar  end2,
  538.  xmlChar end3);
  539. /*
  540.  * Generated by MACROS on top of parser.c c.f. PUSH_AND_POP
  541.  */
  542. int nodePush (xmlParserCtxtPtr ctxt,
  543.  xmlNodePtr value);
  544. xmlNodePtr nodePop (xmlParserCtxtPtr ctxt);
  545. int inputPush (xmlParserCtxtPtr ctxt,
  546.  xmlParserInputPtr value);
  547. xmlParserInputPtr inputPop (xmlParserCtxtPtr ctxt);
  548. #ifdef __cplusplus
  549. }
  550. #endif
  551. #endif /* __XML_PARSER_INTERNALS_H__ */