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