1 | /* |
2 | __ __ _ |
3 | ___\ \/ /_ __ __ _| |_ |
4 | / _ \\ /| '_ \ / _` | __| |
5 | | __// \| |_) | (_| | |_ |
6 | \___/_/\_\ .__/ \__,_|\__| |
7 | |_| XML parser |
8 | |
9 | Copyright (c) 1997-2000 Thai Open Source Software Center Ltd |
10 | Copyright (c) 2000 Clark Cooper <[email protected]> |
11 | Copyright (c) 2017-2019 Sebastian Pipping <[email protected]> |
12 | Licensed under the MIT license: |
13 | |
14 | Permission is hereby granted, free of charge, to any person obtaining |
15 | a copy of this software and associated documentation files (the |
16 | "Software"), to deal in the Software without restriction, including |
17 | without limitation the rights to use, copy, modify, merge, publish, |
18 | distribute, sublicense, and/or sell copies of the Software, and to permit |
19 | persons to whom the Software is furnished to do so, subject to the |
20 | following conditions: |
21 | |
22 | The above copyright notice and this permission notice shall be included |
23 | in all copies or substantial portions of the Software. |
24 | |
25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
26 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
27 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN |
28 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, |
29 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR |
30 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE |
31 | USE OR OTHER DEALINGS IN THE SOFTWARE. |
32 | */ |
33 | |
34 | enum { |
35 | BT_NONXML, /* e.g. noncharacter-FFFF */ |
36 | BT_MALFORM, /* illegal, with regard to encoding */ |
37 | BT_LT, /* less than = "<" */ |
38 | BT_AMP, /* ampersand = "&" */ |
39 | BT_RSQB, /* right square bracket = "[" */ |
40 | BT_LEAD2, /* lead byte of a 2-byte UTF-8 character */ |
41 | BT_LEAD3, /* lead byte of a 3-byte UTF-8 character */ |
42 | BT_LEAD4, /* lead byte of a 4-byte UTF-8 character */ |
43 | BT_TRAIL, /* trailing unit, e.g. second 16-bit unit of a 4-byte char. */ |
44 | BT_CR, /* carriage return = "\r" */ |
45 | BT_LF, /* line feed = "\n" */ |
46 | BT_GT, /* greater than = ">" */ |
47 | BT_QUOT, /* quotation character = "\"" */ |
48 | BT_APOS, /* aposthrophe = "'" */ |
49 | BT_EQUALS, /* equal sign = "=" */ |
50 | BT_QUEST, /* question mark = "?" */ |
51 | BT_EXCL, /* exclamation mark = "!" */ |
52 | BT_SOL, /* solidus, slash = "/" */ |
53 | BT_SEMI, /* semicolon = ";" */ |
54 | BT_NUM, /* number sign = "#" */ |
55 | BT_LSQB, /* left square bracket = "[" */ |
56 | BT_S, /* white space, e.g. "\t", " "[, "\r"] */ |
57 | BT_NMSTRT, /* non-hex name start letter = "G".."Z" + "g".."z" + "_" */ |
58 | BT_COLON, /* colon = ":" */ |
59 | BT_HEX, /* hex letter = "A".."F" + "a".."f" */ |
60 | BT_DIGIT, /* digit = "0".."9" */ |
61 | BT_NAME, /* dot and middle dot = "." + chr(0xb7) */ |
62 | BT_MINUS, /* minus = "-" */ |
63 | BT_OTHER, /* known not to be a name or name start character */ |
64 | BT_NONASCII, /* might be a name or name start character */ |
65 | BT_PERCNT, /* percent sign = "%" */ |
66 | BT_LPAR, /* left parenthesis = "(" */ |
67 | BT_RPAR, /* right parenthesis = "(" */ |
68 | BT_AST, /* asterisk = "*" */ |
69 | BT_PLUS, /* plus sign = "+" */ |
70 | BT_COMMA, /* comma = "," */ |
71 | BT_VERBAR /* vertical bar = "|" */ |
72 | }; |
73 | |
74 | #include <stddef.h> |
75 | |