rusteerio 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/CONTRIBUTING.md +73 -0
  2. package/Cargo.lock +1051 -0
  3. package/Cargo.toml +36 -0
  4. package/LICENSE +21 -0
  5. package/README.md +252 -2
  6. package/RELEASING.md +138 -0
  7. package/THIRD_PARTY_NOTICES.md +7443 -0
  8. package/build.rs +3 -0
  9. package/dist/chunk-DKULX6VO.mjs +3185 -0
  10. package/dist/chunk-DKULX6VO.mjs.map +1 -0
  11. package/dist/chunk-OHPGEY3E.mjs +32 -0
  12. package/dist/chunk-OHPGEY3E.mjs.map +1 -0
  13. package/dist/index.cjs +3230 -0
  14. package/dist/index.cjs.map +1 -0
  15. package/dist/index.d.mts +113 -0
  16. package/dist/index.d.ts +113 -0
  17. package/dist/index.mjs +38 -0
  18. package/dist/index.mjs.map +1 -0
  19. package/dist/slim.cjs +2441 -0
  20. package/dist/slim.cjs.map +1 -0
  21. package/dist/slim.d.mts +11 -0
  22. package/dist/slim.d.ts +11 -0
  23. package/dist/slim.mjs +19 -0
  24. package/dist/slim.mjs.map +1 -0
  25. package/dist/types-BP6TpxE5.d.mts +532 -0
  26. package/dist/types-BP6TpxE5.d.ts +532 -0
  27. package/dist/utils.cjs +61 -0
  28. package/dist/utils.cjs.map +1 -0
  29. package/dist/utils.d.mts +13 -0
  30. package/dist/utils.d.ts +13 -0
  31. package/dist/utils.mjs +17 -0
  32. package/dist/utils.mjs.map +1 -0
  33. package/native/src/arena.rs +1781 -0
  34. package/native/src/attributes.rs +923 -0
  35. package/native/src/codec.rs +172 -0
  36. package/native/src/diagnostics.rs +1249 -0
  37. package/native/src/extraction.rs +226 -0
  38. package/native/src/gc.rs +166 -0
  39. package/native/src/hook_sink.rs +727 -0
  40. package/native/src/hook_stream.rs +513 -0
  41. package/native/src/lib.rs +2095 -0
  42. package/native/src/location.rs +392 -0
  43. package/native/src/runtime.rs +189 -0
  44. package/native/src/selector.rs +1287 -0
  45. package/native/src/sink.rs +261 -0
  46. package/native/src/stream.rs +334 -0
  47. package/native/src/tokenizer.rs +355 -0
  48. package/native/src/tracker.rs +232 -0
  49. package/native/vendor/README.md +25 -0
  50. package/native/vendor/html5ever-0.35.0/.cargo_vcs_info.json +6 -0
  51. package/native/vendor/html5ever-0.35.0/Cargo.lock +828 -0
  52. package/native/vendor/html5ever-0.35.0/Cargo.toml +85 -0
  53. package/native/vendor/html5ever-0.35.0/LICENSE-APACHE +201 -0
  54. package/native/vendor/html5ever-0.35.0/LICENSE-MIT +25 -0
  55. package/native/vendor/html5ever-0.35.0/README.md +60 -0
  56. package/native/vendor/html5ever-0.35.0/benches/html5ever.rs +86 -0
  57. package/native/vendor/html5ever-0.35.0/data/bench/lipsum-zh.html +19 -0
  58. package/native/vendor/html5ever-0.35.0/data/bench/lipsum.html +40 -0
  59. package/native/vendor/html5ever-0.35.0/data/bench/medium-fragment.html +24 -0
  60. package/native/vendor/html5ever-0.35.0/data/bench/small-fragment.html +7 -0
  61. package/native/vendor/html5ever-0.35.0/data/bench/strong.html +1 -0
  62. package/native/vendor/html5ever-0.35.0/data/bench/tiny-fragment.html +1 -0
  63. package/native/vendor/html5ever-0.35.0/examples/arena.rs +356 -0
  64. package/native/vendor/html5ever-0.35.0/examples/capi/tokenize.c +74 -0
  65. package/native/vendor/html5ever-0.35.0/examples/noop-tokenize.rs +47 -0
  66. package/native/vendor/html5ever-0.35.0/examples/noop-tree-builder.rs +132 -0
  67. package/native/vendor/html5ever-0.35.0/examples/print-tree-actions.rs +185 -0
  68. package/native/vendor/html5ever-0.35.0/examples/tokenize.rs +111 -0
  69. package/native/vendor/html5ever-0.35.0/src/driver.rs +148 -0
  70. package/native/vendor/html5ever-0.35.0/src/lib.rs +30 -0
  71. package/native/vendor/html5ever-0.35.0/src/macros.rs +34 -0
  72. package/native/vendor/html5ever-0.35.0/src/serialize/mod.rs +255 -0
  73. package/native/vendor/html5ever-0.35.0/src/tokenizer/char_ref/mod.rs +451 -0
  74. package/native/vendor/html5ever-0.35.0/src/tokenizer/interface.rs +99 -0
  75. package/native/vendor/html5ever-0.35.0/src/tokenizer/mod.rs +2305 -0
  76. package/native/vendor/html5ever-0.35.0/src/tokenizer/states.rs +97 -0
  77. package/native/vendor/html5ever-0.35.0/src/tree_builder/data.rs +170 -0
  78. package/native/vendor/html5ever-0.35.0/src/tree_builder/mod.rs +1848 -0
  79. package/native/vendor/html5ever-0.35.0/src/tree_builder/rules.rs +1494 -0
  80. package/native/vendor/html5ever-0.35.0/src/tree_builder/tag_sets.rs +114 -0
  81. package/native/vendor/html5ever-0.35.0/src/tree_builder/types.rs +91 -0
  82. package/native/vendor/html5ever-0.35.0/src/util/str.rs +52 -0
  83. package/native/vendor/html5gum-0.8.4/Cargo.lock +1006 -0
  84. package/native/vendor/html5gum-0.8.4/Cargo.toml +109 -0
  85. package/native/vendor/html5gum-0.8.4/LICENSE +19 -0
  86. package/native/vendor/html5gum-0.8.4/README.md +110 -0
  87. package/native/vendor/html5gum-0.8.4/benches/files/0050.html +2131 -0
  88. package/native/vendor/html5gum-0.8.4/benches/files/6D30.html +1004 -0
  89. package/native/vendor/html5gum-0.8.4/benches/files.rs +32 -0
  90. package/native/vendor/html5gum-0.8.4/benches/patterns.rs +31 -0
  91. package/native/vendor/html5gum-0.8.4/src/arrayvec.rs +29 -0
  92. package/native/vendor/html5gum-0.8.4/src/char_validator.rs +134 -0
  93. package/native/vendor/html5gum-0.8.4/src/emitters/callback.rs +676 -0
  94. package/native/vendor/html5gum-0.8.4/src/emitters/default.rs +207 -0
  95. package/native/vendor/html5gum-0.8.4/src/emitters/emitter.rs +344 -0
  96. package/native/vendor/html5gum-0.8.4/src/emitters/html5ever.rs +306 -0
  97. package/native/vendor/html5gum-0.8.4/src/emitters/mod.rs +25 -0
  98. package/native/vendor/html5gum-0.8.4/src/entities.rs +3342 -0
  99. package/native/vendor/html5gum-0.8.4/src/error.rs +96 -0
  100. package/native/vendor/html5gum-0.8.4/src/htmlstring.rs +130 -0
  101. package/native/vendor/html5gum-0.8.4/src/lib.rs +66 -0
  102. package/native/vendor/html5gum-0.8.4/src/machine.rs +2136 -0
  103. package/native/vendor/html5gum-0.8.4/src/machine_helper.rs +277 -0
  104. package/native/vendor/html5gum-0.8.4/src/read_helper.rs +244 -0
  105. package/native/vendor/html5gum-0.8.4/src/reader.rs +440 -0
  106. package/native/vendor/html5gum-0.8.4/src/span.rs +98 -0
  107. package/native/vendor/html5gum-0.8.4/src/state.rs +16 -0
  108. package/native/vendor/html5gum-0.8.4/src/testutils.rs +71 -0
  109. package/native/vendor/html5gum-0.8.4/src/tokenizer.rs +189 -0
  110. package/native/vendor/html5gum-0.8.4/src/utils.rs +88 -0
  111. package/native/vendor/markup5ever-0.35.0/.cargo_vcs_info.json +6 -0
  112. package/native/vendor/markup5ever-0.35.0/Cargo.toml +45 -0
  113. package/native/vendor/markup5ever-0.35.0/LICENSE-APACHE +201 -0
  114. package/native/vendor/markup5ever-0.35.0/LICENSE-MIT +25 -0
  115. package/native/vendor/markup5ever-0.35.0/interface/mod.rs +422 -0
  116. package/native/vendor/markup5ever-0.35.0/interface/tree_builder.rs +280 -0
  117. package/native/vendor/markup5ever-0.35.0/lib.rs +59 -0
  118. package/native/vendor/markup5ever-0.35.0/serialize.rs +77 -0
  119. package/native/vendor/markup5ever-0.35.0/util/buffer_queue.rs +333 -0
  120. package/native/vendor/markup5ever-0.35.0/util/smallcharset.rs +88 -0
  121. package/package.json +137 -4
  122. package/rusteerio.darwin-arm64.node +0 -0
  123. package/rusteerio.darwin-x64.node +0 -0
  124. package/rusteerio.linux-arm64-gnu.node +0 -0
  125. package/rusteerio.linux-arm64-musl.node +0 -0
  126. package/rusteerio.linux-x64-gnu.node +0 -0
  127. package/rusteerio.linux-x64-musl.node +0 -0
  128. package/rusteerio.win32-arm64-msvc.node +0 -0
  129. package/rusteerio.win32-x64-msvc.node +0 -0
  130. package/scripts/check-native.mjs +15 -0
  131. package/scripts/check-release.mjs +235 -0
  132. package/scripts/fix-declarations.mjs +27 -0
  133. package/scripts/generate-notices.mjs +176 -0
  134. package/scripts/notices/README.md +13 -0
  135. package/scripts/notices/cheerio-MIT.txt +21 -0
  136. package/scripts/notices/html5ever-AUTHORS.txt +20 -0
  137. package/scripts/notices/html5ever-COPYRIGHT.txt +8 -0
  138. package/scripts/notices/html5ever-LICENSE-APACHE.txt +201 -0
  139. package/scripts/notices/html5ever-LICENSE-MIT.txt +25 -0
  140. package/scripts/notices/napi-rs-MIT.txt +43 -0
  141. package/scripts/notices/neon-MIT.txt +19 -0
  142. package/scripts/notices/runtime-01c266bced4a434da005.txt +3 -0
  143. package/scripts/notices/runtime-0a54e647fe54104658b5.txt +14 -0
  144. package/scripts/notices/runtime-0b74dfa0bcee5c420c6b.txt +25 -0
  145. package/scripts/notices/runtime-0d542e0c8804e39aa7f3.txt +177 -0
  146. package/scripts/notices/runtime-0f96a83840e146e43c0e.txt +21 -0
  147. package/scripts/notices/runtime-123a331b5dbf04c30097.txt +25 -0
  148. package/scripts/notices/runtime-172020dbfd5b53a226df.txt +34 -0
  149. package/scripts/notices/runtime-209fbbe0ad52d9235e37.txt +26 -0
  150. package/scripts/notices/runtime-23f18e03dc49df91622f.txt +23 -0
  151. package/scripts/notices/runtime-268872b9816f90fd8e85.txt +220 -0
  152. package/scripts/notices/runtime-35242e7a83f69875e6ed.txt +176 -0
  153. package/scripts/notices/runtime-378f5840b258e2779c39.txt +25 -0
  154. package/scripts/notices/runtime-4108245a1f2df9d4e94d.txt +25 -0
  155. package/scripts/notices/runtime-4455bf75a91154108304.txt +21 -0
  156. package/scripts/notices/runtime-553fffcd9b1cb158bc3e.txt +13 -0
  157. package/scripts/notices/runtime-62c7a1e35f56406896d7.txt +176 -0
  158. package/scripts/notices/runtime-6485b8ed310d3f0340bf.txt +25 -0
  159. package/scripts/notices/runtime-69fef7b0f322a6555415.txt +201 -0
  160. package/scripts/notices/runtime-6df43f6f4b5d4587f3d8.txt +187 -0
  161. package/scripts/notices/runtime-799e9ca9d179295ef372.txt +24 -0
  162. package/scripts/notices/runtime-7b63ecd5f1902af1b637.txt +25 -0
  163. package/scripts/notices/runtime-7bc7d5de2a0b793d4e1a.txt +21 -0
  164. package/scripts/notices/runtime-7e12e5df4bae12cb2158.txt +24 -0
  165. package/scripts/notices/runtime-861399f8c21c042b1105.txt +12 -0
  166. package/scripts/notices/runtime-8ada45cd9f843acf64e4.txt +201 -0
  167. package/scripts/notices/runtime-90eb64f0279b0d9432ac.txt +12 -0
  168. package/scripts/notices/runtime-a60eea817514531668d7.txt +201 -0
  169. package/scripts/notices/runtime-a7c936ff1ed8fa340172.txt +25 -0
  170. package/scripts/notices/runtime-ab6eec6caf0fa5775e41.txt +275 -0
  171. package/scripts/notices/runtime-b1181a40b2a7b25cf66f.txt +19 -0
  172. package/scripts/notices/runtime-b71bd43a069ca0641a9e.txt +25 -0
  173. package/scripts/notices/runtime-c16f8dcf1a368b83be78.txt +201 -0
  174. package/scripts/notices/runtime-c2cfccb812fe482101a8.txt +21 -0
  175. package/scripts/notices/runtime-e99d88d232bf57d70f0f.txt +25 -0
  176. package/scripts/notices/runtime-f32fb3b417a194167cfa.txt +9 -0
  177. package/scripts/notices/runtime-f5062c9a188d81dfe66b.txt +39 -0
  178. package/scripts/notices/runtime-f9070a832833fa7488fd.txt +4 -0
  179. package/scripts/notices/runtime-fab3dd6bdab226f1c086.txt +373 -0
  180. package/scripts/notices/runtime-fba3318d0c600380177e.txt +62 -0
  181. package/scripts/notices/runtime-ff8f68cb076caf8cefe7.txt +25 -0
  182. package/scripts/notices/runtime-ff92bed461f50338dd70.txt +74 -0
  183. package/scripts/notices/runtime.json +1632 -0
  184. package/scripts/notices/sources.json +555 -0
  185. package/scripts/notices/xray-MIT.txt +21 -0
  186. package/src/attributes.ts +271 -0
  187. package/src/codec.ts +74 -0
  188. package/src/dom.ts +87 -0
  189. package/src/extract-plan.ts +97 -0
  190. package/src/extract.ts +130 -0
  191. package/src/hooks.ts +220 -0
  192. package/src/index.ts +223 -0
  193. package/src/io.ts +491 -0
  194. package/src/native.ts +135 -0
  195. package/src/nodes.ts +290 -0
  196. package/src/parse.ts +53 -0
  197. package/src/parser-types.ts +157 -0
  198. package/src/router.ts +327 -0
  199. package/src/selection.ts +566 -0
  200. package/src/slim.ts +12 -0
  201. package/src/transport.ts +104 -0
  202. package/src/types.ts +186 -0
  203. package/src/utils.ts +29 -0
  204. package/src/workers.ts +21 -0
  205. package/tsconfig.json +15 -0
  206. package/tsup.config.ts +16 -0
@@ -0,0 +1,3342 @@
1
+ // @generated
2
+ // this file is autogenerated by
3
+ // curl https://html.spec.whatwg.org/entities.json | python generate_entities.py
4
+
5
+ pub(crate) struct CharRef {
6
+ /// Name as it appears escaped in HTML
7
+ pub(crate) name: &'static str,
8
+ /// Unescaped character codepoints
9
+ pub(crate) characters: &'static str,
10
+ }
11
+
12
+ pub(crate) fn try_read_character_reference<E>(
13
+ first_char: char,
14
+ try_read: impl FnMut(&str) -> Result<bool, E>,
15
+ ) -> Result<Option<CharRef>, E> {
16
+ match first_char {
17
+ 'A' => {
18
+ #[allow(non_snake_case)]
19
+ fn branch_A<E>(
20
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
21
+ ) -> Result<Option<CharRef>, E> {
22
+ for (other_chars, characters) in &[
23
+ ("pplyFunction;", "\u{2061}"),
24
+ ("acute;", "\u{c1}"),
25
+ ("breve;", "\u{102}"),
26
+ ("grave;", "\u{c0}"),
27
+ ("ssign;", "\u{2254}"),
28
+ ("tilde;", "\u{c3}"),
29
+ ("Elig;", "\u{c6}"),
30
+ ("acute", "\u{c1}"),
31
+ ("circ;", "\u{c2}"),
32
+ ("grave", "\u{c0}"),
33
+ ("lpha;", "\u{391}"),
34
+ ("macr;", "\u{100}"),
35
+ ("ogon;", "\u{104}"),
36
+ ("ring;", "\u{c5}"),
37
+ ("tilde", "\u{c3}"),
38
+ ("Elig", "\u{c6}"),
39
+ ("circ", "\u{c2}"),
40
+ ("opf;", "\u{1d538}"),
41
+ ("ring", "\u{c5}"),
42
+ ("scr;", "\u{1d49c}"),
43
+ ("uml;", "\u{c4}"),
44
+ ("MP;", "\u{26}"),
45
+ ("cy;", "\u{410}"),
46
+ ("fr;", "\u{1d504}"),
47
+ ("nd;", "\u{2a53}"),
48
+ ("uml", "\u{c4}"),
49
+ ("MP", "\u{26}"),
50
+ ] {
51
+ if try_read(other_chars)? {
52
+ return Ok(Some(CharRef {
53
+ name: other_chars,
54
+ characters,
55
+ }));
56
+ }
57
+ }
58
+
59
+ Ok(None)
60
+ }
61
+
62
+ branch_A(try_read)
63
+ }
64
+
65
+ 'B' => {
66
+ #[allow(non_snake_case)]
67
+ fn branch_B<E>(
68
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
69
+ ) -> Result<Option<CharRef>, E> {
70
+ for (other_chars, characters) in &[
71
+ ("ernoullis;", "\u{212c}"),
72
+ ("ackslash;", "\u{2216}"),
73
+ ("ecause;", "\u{2235}"),
74
+ ("arwed;", "\u{2306}"),
75
+ ("umpeq;", "\u{224e}"),
76
+ ("reve;", "\u{2d8}"),
77
+ ("arv;", "\u{2ae7}"),
78
+ ("eta;", "\u{392}"),
79
+ ("opf;", "\u{1d539}"),
80
+ ("scr;", "\u{212c}"),
81
+ ("cy;", "\u{411}"),
82
+ ("fr;", "\u{1d505}"),
83
+ ] {
84
+ if try_read(other_chars)? {
85
+ return Ok(Some(CharRef {
86
+ name: other_chars,
87
+ characters,
88
+ }));
89
+ }
90
+ }
91
+
92
+ Ok(None)
93
+ }
94
+
95
+ branch_B(try_read)
96
+ }
97
+
98
+ 'C' => {
99
+ #[allow(non_snake_case)]
100
+ fn branch_C<E>(
101
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
102
+ ) -> Result<Option<CharRef>, E> {
103
+ for (other_chars, characters) in &[
104
+ ("ounterClockwiseContourIntegral;", "\u{2233}"),
105
+ ("lockwiseContourIntegral;", "\u{2232}"),
106
+ ("loseCurlyDoubleQuote;", "\u{201d}"),
107
+ ("apitalDifferentialD;", "\u{2145}"),
108
+ ("loseCurlyQuote;", "\u{2019}"),
109
+ ("ontourIntegral;", "\u{222e}"),
110
+ ("ircleMinus;", "\u{2296}"),
111
+ ("ircleTimes;", "\u{2297}"),
112
+ ("irclePlus;", "\u{2295}"),
113
+ ("enterDot;", "\u{b7}"),
114
+ ("ircleDot;", "\u{2299}"),
115
+ ("ongruent;", "\u{2261}"),
116
+ ("oproduct;", "\u{2210}"),
117
+ ("ayleys;", "\u{212d}"),
118
+ ("conint;", "\u{2230}"),
119
+ ("edilla;", "\u{b8}"),
120
+ ("acute;", "\u{106}"),
121
+ ("caron;", "\u{10c}"),
122
+ ("cedil;", "\u{c7}"),
123
+ ("olone;", "\u{2a74}"),
124
+ ("onint;", "\u{222f}"),
125
+ ("upCap;", "\u{224d}"),
126
+ ("cedil", "\u{c7}"),
127
+ ("circ;", "\u{108}"),
128
+ ("olon;", "\u{2237}"),
129
+ ("ross;", "\u{2a2f}"),
130
+ ("Hcy;", "\u{427}"),
131
+ ("OPY;", "\u{a9}"),
132
+ ("dot;", "\u{10a}"),
133
+ ("opf;", "\u{2102}"),
134
+ ("scr;", "\u{1d49e}"),
135
+ ("OPY", "\u{a9}"),
136
+ ("ap;", "\u{22d2}"),
137
+ ("fr;", "\u{212d}"),
138
+ ("hi;", "\u{3a7}"),
139
+ ("up;", "\u{22d3}"),
140
+ ] {
141
+ if try_read(other_chars)? {
142
+ return Ok(Some(CharRef {
143
+ name: other_chars,
144
+ characters,
145
+ }));
146
+ }
147
+ }
148
+
149
+ Ok(None)
150
+ }
151
+
152
+ branch_C(try_read)
153
+ }
154
+
155
+ 'D' => {
156
+ #[allow(non_snake_case)]
157
+ fn branch_D<E>(
158
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
159
+ ) -> Result<Option<CharRef>, E> {
160
+ for (other_chars, characters) in &[
161
+ ("oubleLongLeftRightArrow;", "\u{27fa}"),
162
+ ("iacriticalDoubleAcute;", "\u{2dd}"),
163
+ ("oubleContourIntegral;", "\u{222f}"),
164
+ ("oubleLeftRightArrow;", "\u{21d4}"),
165
+ ("oubleLongRightArrow;", "\u{27f9}"),
166
+ ("oubleLongLeftArrow;", "\u{27f8}"),
167
+ ("ownLeftRightVector;", "\u{2950}"),
168
+ ("ownRightTeeVector;", "\u{295f}"),
169
+ ("ownRightVectorBar;", "\u{2957}"),
170
+ ("oubleUpDownArrow;", "\u{21d5}"),
171
+ ("oubleVerticalBar;", "\u{2225}"),
172
+ ("ownLeftTeeVector;", "\u{295e}"),
173
+ ("ownLeftVectorBar;", "\u{2956}"),
174
+ ("iacriticalAcute;", "\u{b4}"),
175
+ ("iacriticalGrave;", "\u{60}"),
176
+ ("iacriticalTilde;", "\u{2dc}"),
177
+ ("oubleRightArrow;", "\u{21d2}"),
178
+ ("ownArrowUpArrow;", "\u{21f5}"),
179
+ ("oubleDownArrow;", "\u{21d3}"),
180
+ ("oubleLeftArrow;", "\u{21d0}"),
181
+ ("ownRightVector;", "\u{21c1}"),
182
+ ("iacriticalDot;", "\u{2d9}"),
183
+ ("oubleRightTee;", "\u{22a8}"),
184
+ ("ownLeftVector;", "\u{21bd}"),
185
+ ("ifferentialD;", "\u{2146}"),
186
+ ("oubleLeftTee;", "\u{2ae4}"),
187
+ ("oubleUpArrow;", "\u{21d1}"),
188
+ ("ownArrowBar;", "\u{2913}"),
189
+ ("ownTeeArrow;", "\u{21a7}"),
190
+ ("oubleDot;", "\u{a8}"),
191
+ ("ownArrow;", "\u{2193}"),
192
+ ("ownBreve;", "\u{311}"),
193
+ ("ownarrow;", "\u{21d3}"),
194
+ ("Dotrahd;", "\u{2911}"),
195
+ ("otEqual;", "\u{2250}"),
196
+ ("iamond;", "\u{22c4}"),
197
+ ("ownTee;", "\u{22a4}"),
198
+ ("agger;", "\u{2021}"),
199
+ ("caron;", "\u{10e}"),
200
+ ("otDot;", "\u{20dc}"),
201
+ ("strok;", "\u{110}"),
202
+ ("ashv;", "\u{2ae4}"),
203
+ ("elta;", "\u{394}"),
204
+ ("Jcy;", "\u{402}"),
205
+ ("Scy;", "\u{405}"),
206
+ ("Zcy;", "\u{40f}"),
207
+ ("arr;", "\u{21a1}"),
208
+ ("opf;", "\u{1d53b}"),
209
+ ("scr;", "\u{1d49f}"),
210
+ ("cy;", "\u{414}"),
211
+ ("el;", "\u{2207}"),
212
+ ("fr;", "\u{1d507}"),
213
+ ("ot;", "\u{a8}"),
214
+ ("D;", "\u{2145}"),
215
+ ] {
216
+ if try_read(other_chars)? {
217
+ return Ok(Some(CharRef {
218
+ name: other_chars,
219
+ characters,
220
+ }));
221
+ }
222
+ }
223
+
224
+ Ok(None)
225
+ }
226
+
227
+ branch_D(try_read)
228
+ }
229
+
230
+ 'E' => {
231
+ #[allow(non_snake_case)]
232
+ fn branch_E<E>(
233
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
234
+ ) -> Result<Option<CharRef>, E> {
235
+ for (other_chars, characters) in &[
236
+ ("mptyVerySmallSquare;", "\u{25ab}"),
237
+ ("mptySmallSquare;", "\u{25fb}"),
238
+ ("xponentialE;", "\u{2147}"),
239
+ ("quilibrium;", "\u{21cc}"),
240
+ ("qualTilde;", "\u{2242}"),
241
+ ("lement;", "\u{2208}"),
242
+ ("psilon;", "\u{395}"),
243
+ ("acute;", "\u{c9}"),
244
+ ("caron;", "\u{11a}"),
245
+ ("grave;", "\u{c8}"),
246
+ ("xists;", "\u{2203}"),
247
+ ("acute", "\u{c9}"),
248
+ ("circ;", "\u{ca}"),
249
+ ("grave", "\u{c8}"),
250
+ ("macr;", "\u{112}"),
251
+ ("ogon;", "\u{118}"),
252
+ ("qual;", "\u{2a75}"),
253
+ ("circ", "\u{ca}"),
254
+ ("dot;", "\u{116}"),
255
+ ("opf;", "\u{1d53c}"),
256
+ ("scr;", "\u{2130}"),
257
+ ("sim;", "\u{2a73}"),
258
+ ("uml;", "\u{cb}"),
259
+ ("NG;", "\u{14a}"),
260
+ ("TH;", "\u{d0}"),
261
+ ("cy;", "\u{42d}"),
262
+ ("fr;", "\u{1d508}"),
263
+ ("ta;", "\u{397}"),
264
+ ("uml", "\u{cb}"),
265
+ ("TH", "\u{d0}"),
266
+ ] {
267
+ if try_read(other_chars)? {
268
+ return Ok(Some(CharRef {
269
+ name: other_chars,
270
+ characters,
271
+ }));
272
+ }
273
+ }
274
+
275
+ Ok(None)
276
+ }
277
+
278
+ branch_E(try_read)
279
+ }
280
+
281
+ 'F' => {
282
+ #[allow(non_snake_case)]
283
+ fn branch_F<E>(
284
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
285
+ ) -> Result<Option<CharRef>, E> {
286
+ for (other_chars, characters) in &[
287
+ ("illedVerySmallSquare;", "\u{25aa}"),
288
+ ("illedSmallSquare;", "\u{25fc}"),
289
+ ("ouriertrf;", "\u{2131}"),
290
+ ("orAll;", "\u{2200}"),
291
+ ("opf;", "\u{1d53d}"),
292
+ ("scr;", "\u{2131}"),
293
+ ("cy;", "\u{424}"),
294
+ ("fr;", "\u{1d509}"),
295
+ ] {
296
+ if try_read(other_chars)? {
297
+ return Ok(Some(CharRef {
298
+ name: other_chars,
299
+ characters,
300
+ }));
301
+ }
302
+ }
303
+
304
+ Ok(None)
305
+ }
306
+
307
+ branch_F(try_read)
308
+ }
309
+
310
+ 'G' => {
311
+ #[allow(non_snake_case)]
312
+ fn branch_G<E>(
313
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
314
+ ) -> Result<Option<CharRef>, E> {
315
+ for (other_chars, characters) in &[
316
+ ("reaterSlantEqual;", "\u{2a7e}"),
317
+ ("reaterEqualLess;", "\u{22db}"),
318
+ ("reaterFullEqual;", "\u{2267}"),
319
+ ("reaterGreater;", "\u{2aa2}"),
320
+ ("reaterEqual;", "\u{2265}"),
321
+ ("reaterTilde;", "\u{2273}"),
322
+ ("reaterLess;", "\u{2277}"),
323
+ ("ammad;", "\u{3dc}"),
324
+ ("breve;", "\u{11e}"),
325
+ ("cedil;", "\u{122}"),
326
+ ("amma;", "\u{393}"),
327
+ ("circ;", "\u{11c}"),
328
+ ("Jcy;", "\u{403}"),
329
+ ("dot;", "\u{120}"),
330
+ ("opf;", "\u{1d53e}"),
331
+ ("scr;", "\u{1d4a2}"),
332
+ ("cy;", "\u{413}"),
333
+ ("fr;", "\u{1d50a}"),
334
+ ("T;", "\u{3e}"),
335
+ ("g;", "\u{22d9}"),
336
+ ("t;", "\u{226b}"),
337
+ ("T", "\u{3e}"),
338
+ ] {
339
+ if try_read(other_chars)? {
340
+ return Ok(Some(CharRef {
341
+ name: other_chars,
342
+ characters,
343
+ }));
344
+ }
345
+ }
346
+
347
+ Ok(None)
348
+ }
349
+
350
+ branch_G(try_read)
351
+ }
352
+
353
+ 'H' => {
354
+ #[allow(non_snake_case)]
355
+ fn branch_H<E>(
356
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
357
+ ) -> Result<Option<CharRef>, E> {
358
+ for (other_chars, characters) in &[
359
+ ("orizontalLine;", "\u{2500}"),
360
+ ("ilbertSpace;", "\u{210b}"),
361
+ ("umpDownHump;", "\u{224e}"),
362
+ ("umpEqual;", "\u{224f}"),
363
+ ("ARDcy;", "\u{42a}"),
364
+ ("strok;", "\u{126}"),
365
+ ("acek;", "\u{2c7}"),
366
+ ("circ;", "\u{124}"),
367
+ ("opf;", "\u{210d}"),
368
+ ("scr;", "\u{210b}"),
369
+ ("at;", "\u{5e}"),
370
+ ("fr;", "\u{210c}"),
371
+ ] {
372
+ if try_read(other_chars)? {
373
+ return Ok(Some(CharRef {
374
+ name: other_chars,
375
+ characters,
376
+ }));
377
+ }
378
+ }
379
+
380
+ Ok(None)
381
+ }
382
+
383
+ branch_H(try_read)
384
+ }
385
+
386
+ 'I' => {
387
+ #[allow(non_snake_case)]
388
+ fn branch_I<E>(
389
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
390
+ ) -> Result<Option<CharRef>, E> {
391
+ for (other_chars, characters) in &[
392
+ ("nvisibleComma;", "\u{2063}"),
393
+ ("nvisibleTimes;", "\u{2062}"),
394
+ ("ntersection;", "\u{22c2}"),
395
+ ("maginaryI;", "\u{2148}"),
396
+ ("ntegral;", "\u{222b}"),
397
+ ("mplies;", "\u{21d2}"),
398
+ ("acute;", "\u{cd}"),
399
+ ("grave;", "\u{cc}"),
400
+ ("tilde;", "\u{128}"),
401
+ ("Jlig;", "\u{132}"),
402
+ ("acute", "\u{cd}"),
403
+ ("circ;", "\u{ce}"),
404
+ ("grave", "\u{cc}"),
405
+ ("macr;", "\u{12a}"),
406
+ ("ogon;", "\u{12e}"),
407
+ ("ukcy;", "\u{406}"),
408
+ ("Ecy;", "\u{415}"),
409
+ ("Ocy;", "\u{401}"),
410
+ ("circ", "\u{ce}"),
411
+ ("dot;", "\u{130}"),
412
+ ("opf;", "\u{1d540}"),
413
+ ("ota;", "\u{399}"),
414
+ ("scr;", "\u{2110}"),
415
+ ("uml;", "\u{cf}"),
416
+ ("cy;", "\u{418}"),
417
+ ("fr;", "\u{2111}"),
418
+ ("nt;", "\u{222c}"),
419
+ ("uml", "\u{cf}"),
420
+ ("m;", "\u{2111}"),
421
+ ] {
422
+ if try_read(other_chars)? {
423
+ return Ok(Some(CharRef {
424
+ name: other_chars,
425
+ characters,
426
+ }));
427
+ }
428
+ }
429
+
430
+ Ok(None)
431
+ }
432
+
433
+ branch_I(try_read)
434
+ }
435
+
436
+ 'J' => {
437
+ #[allow(non_snake_case)]
438
+ fn branch_J<E>(
439
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
440
+ ) -> Result<Option<CharRef>, E> {
441
+ for (other_chars, characters) in &[
442
+ ("sercy;", "\u{408}"),
443
+ ("circ;", "\u{134}"),
444
+ ("ukcy;", "\u{404}"),
445
+ ("opf;", "\u{1d541}"),
446
+ ("scr;", "\u{1d4a5}"),
447
+ ("cy;", "\u{419}"),
448
+ ("fr;", "\u{1d50d}"),
449
+ ] {
450
+ if try_read(other_chars)? {
451
+ return Ok(Some(CharRef {
452
+ name: other_chars,
453
+ characters,
454
+ }));
455
+ }
456
+ }
457
+
458
+ Ok(None)
459
+ }
460
+
461
+ branch_J(try_read)
462
+ }
463
+
464
+ 'K' => {
465
+ #[allow(non_snake_case)]
466
+ fn branch_K<E>(
467
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
468
+ ) -> Result<Option<CharRef>, E> {
469
+ for (other_chars, characters) in &[
470
+ ("cedil;", "\u{136}"),
471
+ ("appa;", "\u{39a}"),
472
+ ("Hcy;", "\u{425}"),
473
+ ("Jcy;", "\u{40c}"),
474
+ ("opf;", "\u{1d542}"),
475
+ ("scr;", "\u{1d4a6}"),
476
+ ("cy;", "\u{41a}"),
477
+ ("fr;", "\u{1d50e}"),
478
+ ] {
479
+ if try_read(other_chars)? {
480
+ return Ok(Some(CharRef {
481
+ name: other_chars,
482
+ characters,
483
+ }));
484
+ }
485
+ }
486
+
487
+ Ok(None)
488
+ }
489
+
490
+ branch_K(try_read)
491
+ }
492
+
493
+ 'L' => {
494
+ #[allow(non_snake_case)]
495
+ fn branch_L<E>(
496
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
497
+ ) -> Result<Option<CharRef>, E> {
498
+ for (other_chars, characters) in &[
499
+ ("eftArrowRightArrow;", "\u{21c6}"),
500
+ ("ongLeftRightArrow;", "\u{27f7}"),
501
+ ("ongleftrightarrow;", "\u{27fa}"),
502
+ ("eftDoubleBracket;", "\u{27e6}"),
503
+ ("eftDownTeeVector;", "\u{2961}"),
504
+ ("eftDownVectorBar;", "\u{2959}"),
505
+ ("eftTriangleEqual;", "\u{22b4}"),
506
+ ("eftAngleBracket;", "\u{27e8}"),
507
+ ("eftUpDownVector;", "\u{2951}"),
508
+ ("essEqualGreater;", "\u{22da}"),
509
+ ("eftRightVector;", "\u{294e}"),
510
+ ("eftTriangleBar;", "\u{29cf}"),
511
+ ("eftUpTeeVector;", "\u{2960}"),
512
+ ("eftUpVectorBar;", "\u{2958}"),
513
+ ("owerRightArrow;", "\u{2198}"),
514
+ ("eftDownVector;", "\u{21c3}"),
515
+ ("eftRightArrow;", "\u{2194}"),
516
+ ("eftrightarrow;", "\u{21d4}"),
517
+ ("essSlantEqual;", "\u{2a7d}"),
518
+ ("ongRightArrow;", "\u{27f6}"),
519
+ ("ongrightarrow;", "\u{27f9}"),
520
+ ("owerLeftArrow;", "\u{2199}"),
521
+ ("eftTeeVector;", "\u{295a}"),
522
+ ("eftVectorBar;", "\u{2952}"),
523
+ ("essFullEqual;", "\u{2266}"),
524
+ ("ongLeftArrow;", "\u{27f5}"),
525
+ ("ongleftarrow;", "\u{27f8}"),
526
+ ("eftArrowBar;", "\u{21e4}"),
527
+ ("eftTeeArrow;", "\u{21a4}"),
528
+ ("eftTriangle;", "\u{22b2}"),
529
+ ("eftUpVector;", "\u{21bf}"),
530
+ ("eftCeiling;", "\u{2308}"),
531
+ ("essGreater;", "\u{2276}"),
532
+ ("aplacetrf;", "\u{2112}"),
533
+ ("eftVector;", "\u{21bc}"),
534
+ ("leftarrow;", "\u{21da}"),
535
+ ("eftArrow;", "\u{2190}"),
536
+ ("eftFloor;", "\u{230a}"),
537
+ ("eftarrow;", "\u{21d0}"),
538
+ ("essTilde;", "\u{2272}"),
539
+ ("essLess;", "\u{2aa1}"),
540
+ ("eftTee;", "\u{22a3}"),
541
+ ("acute;", "\u{139}"),
542
+ ("ambda;", "\u{39b}"),
543
+ ("caron;", "\u{13d}"),
544
+ ("cedil;", "\u{13b}"),
545
+ ("midot;", "\u{13f}"),
546
+ ("strok;", "\u{141}"),
547
+ ("Jcy;", "\u{409}"),
548
+ ("ang;", "\u{27ea}"),
549
+ ("arr;", "\u{219e}"),
550
+ ("opf;", "\u{1d543}"),
551
+ ("scr;", "\u{2112}"),
552
+ ("cy;", "\u{41b}"),
553
+ ("fr;", "\u{1d50f}"),
554
+ ("sh;", "\u{21b0}"),
555
+ ("T;", "\u{3c}"),
556
+ ("l;", "\u{22d8}"),
557
+ ("t;", "\u{226a}"),
558
+ ("T", "\u{3c}"),
559
+ ] {
560
+ if try_read(other_chars)? {
561
+ return Ok(Some(CharRef {
562
+ name: other_chars,
563
+ characters,
564
+ }));
565
+ }
566
+ }
567
+
568
+ Ok(None)
569
+ }
570
+
571
+ branch_L(try_read)
572
+ }
573
+
574
+ 'M' => {
575
+ #[allow(non_snake_case)]
576
+ fn branch_M<E>(
577
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
578
+ ) -> Result<Option<CharRef>, E> {
579
+ for (other_chars, characters) in &[
580
+ ("ediumSpace;", "\u{205f}"),
581
+ ("ellintrf;", "\u{2133}"),
582
+ ("inusPlus;", "\u{2213}"),
583
+ ("opf;", "\u{1d544}"),
584
+ ("scr;", "\u{2133}"),
585
+ ("ap;", "\u{2905}"),
586
+ ("cy;", "\u{41c}"),
587
+ ("fr;", "\u{1d510}"),
588
+ ("u;", "\u{39c}"),
589
+ ] {
590
+ if try_read(other_chars)? {
591
+ return Ok(Some(CharRef {
592
+ name: other_chars,
593
+ characters,
594
+ }));
595
+ }
596
+ }
597
+
598
+ Ok(None)
599
+ }
600
+
601
+ branch_M(try_read)
602
+ }
603
+
604
+ 'N' => {
605
+ #[allow(non_snake_case)]
606
+ fn branch_N<E>(
607
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
608
+ ) -> Result<Option<CharRef>, E> {
609
+ for (other_chars, characters) in &[
610
+ ("otNestedGreaterGreater;", "\u{2aa2}\u{338}"),
611
+ ("otSquareSupersetEqual;", "\u{22e3}"),
612
+ ("egativeVeryThinSpace;", "\u{200b}"),
613
+ ("otPrecedesSlantEqual;", "\u{22e0}"),
614
+ ("otRightTriangleEqual;", "\u{22ed}"),
615
+ ("otSucceedsSlantEqual;", "\u{22e1}"),
616
+ ("estedGreaterGreater;", "\u{226b}"),
617
+ ("otDoubleVerticalBar;", "\u{2226}"),
618
+ ("otGreaterSlantEqual;", "\u{2a7e}\u{338}"),
619
+ ("otLeftTriangleEqual;", "\u{22ec}"),
620
+ ("otSquareSubsetEqual;", "\u{22e2}"),
621
+ ("egativeMediumSpace;", "\u{200b}"),
622
+ ("otGreaterFullEqual;", "\u{2267}\u{338}"),
623
+ ("otRightTriangleBar;", "\u{29d0}\u{338}"),
624
+ ("egativeThickSpace;", "\u{200b}"),
625
+ ("otLeftTriangleBar;", "\u{29cf}\u{338}"),
626
+ ("egativeThinSpace;", "\u{200b}"),
627
+ ("otGreaterGreater;", "\u{226b}\u{338}"),
628
+ ("otLessSlantEqual;", "\u{2a7d}\u{338}"),
629
+ ("otNestedLessLess;", "\u{2aa1}\u{338}"),
630
+ ("otReverseElement;", "\u{220c}"),
631
+ ("otSquareSuperset;", "\u{2290}\u{338}"),
632
+ ("otTildeFullEqual;", "\u{2247}"),
633
+ ("onBreakingSpace;", "\u{a0}"),
634
+ ("otPrecedesEqual;", "\u{2aaf}\u{338}"),
635
+ ("otRightTriangle;", "\u{22eb}"),
636
+ ("otSucceedsEqual;", "\u{2ab0}\u{338}"),
637
+ ("otSucceedsTilde;", "\u{227f}\u{338}"),
638
+ ("otSupersetEqual;", "\u{2289}"),
639
+ ("otGreaterEqual;", "\u{2271}"),
640
+ ("otGreaterTilde;", "\u{2275}"),
641
+ ("otHumpDownHump;", "\u{224e}\u{338}"),
642
+ ("otLeftTriangle;", "\u{22ea}"),
643
+ ("otSquareSubset;", "\u{228f}\u{338}"),
644
+ ("estedLessLess;", "\u{226a}"),
645
+ ("otGreaterLess;", "\u{2279}"),
646
+ ("otLessGreater;", "\u{2278}"),
647
+ ("otSubsetEqual;", "\u{2288}"),
648
+ ("otVerticalBar;", "\u{2224}"),
649
+ ("otEqualTilde;", "\u{2242}\u{338}"),
650
+ ("otTildeEqual;", "\u{2244}"),
651
+ ("otTildeTilde;", "\u{2249}"),
652
+ ("otCongruent;", "\u{2262}"),
653
+ ("otHumpEqual;", "\u{224f}\u{338}"),
654
+ ("otLessEqual;", "\u{2270}"),
655
+ ("otLessTilde;", "\u{2274}"),
656
+ ("otLessLess;", "\u{226a}\u{338}"),
657
+ ("otPrecedes;", "\u{2280}"),
658
+ ("otSucceeds;", "\u{2281}"),
659
+ ("otSuperset;", "\u{2283}\u{20d2}"),
660
+ ("otElement;", "\u{2209}"),
661
+ ("otGreater;", "\u{226f}"),
662
+ ("otCupCap;", "\u{226d}"),
663
+ ("otExists;", "\u{2204}"),
664
+ ("otSubset;", "\u{2282}\u{20d2}"),
665
+ ("otEqual;", "\u{2260}"),
666
+ ("otTilde;", "\u{2241}"),
667
+ ("ewLine;", "\u{a}"),
668
+ ("oBreak;", "\u{2060}"),
669
+ ("otLess;", "\u{226e}"),
670
+ ("acute;", "\u{143}"),
671
+ ("caron;", "\u{147}"),
672
+ ("cedil;", "\u{145}"),
673
+ ("tilde;", "\u{d1}"),
674
+ ("tilde", "\u{d1}"),
675
+ ("Jcy;", "\u{40a}"),
676
+ ("opf;", "\u{2115}"),
677
+ ("scr;", "\u{1d4a9}"),
678
+ ("cy;", "\u{41d}"),
679
+ ("fr;", "\u{1d511}"),
680
+ ("ot;", "\u{2aec}"),
681
+ ("u;", "\u{39d}"),
682
+ ] {
683
+ if try_read(other_chars)? {
684
+ return Ok(Some(CharRef {
685
+ name: other_chars,
686
+ characters,
687
+ }));
688
+ }
689
+ }
690
+
691
+ Ok(None)
692
+ }
693
+
694
+ branch_N(try_read)
695
+ }
696
+
697
+ 'O' => {
698
+ #[allow(non_snake_case)]
699
+ fn branch_O<E>(
700
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
701
+ ) -> Result<Option<CharRef>, E> {
702
+ for (other_chars, characters) in &[
703
+ ("penCurlyDoubleQuote;", "\u{201c}"),
704
+ ("verParenthesis;", "\u{23dc}"),
705
+ ("penCurlyQuote;", "\u{2018}"),
706
+ ("verBracket;", "\u{23b4}"),
707
+ ("verBrace;", "\u{23de}"),
708
+ ("micron;", "\u{39f}"),
709
+ ("verBar;", "\u{203e}"),
710
+ ("acute;", "\u{d3}"),
711
+ ("dblac;", "\u{150}"),
712
+ ("grave;", "\u{d2}"),
713
+ ("slash;", "\u{d8}"),
714
+ ("tilde;", "\u{d5}"),
715
+ ("times;", "\u{2a37}"),
716
+ ("Elig;", "\u{152}"),
717
+ ("acute", "\u{d3}"),
718
+ ("circ;", "\u{d4}"),
719
+ ("grave", "\u{d2}"),
720
+ ("macr;", "\u{14c}"),
721
+ ("mega;", "\u{3a9}"),
722
+ ("slash", "\u{d8}"),
723
+ ("tilde", "\u{d5}"),
724
+ ("circ", "\u{d4}"),
725
+ ("opf;", "\u{1d546}"),
726
+ ("scr;", "\u{1d4aa}"),
727
+ ("uml;", "\u{d6}"),
728
+ ("cy;", "\u{41e}"),
729
+ ("fr;", "\u{1d512}"),
730
+ ("uml", "\u{d6}"),
731
+ ("r;", "\u{2a54}"),
732
+ ] {
733
+ if try_read(other_chars)? {
734
+ return Ok(Some(CharRef {
735
+ name: other_chars,
736
+ characters,
737
+ }));
738
+ }
739
+ }
740
+
741
+ Ok(None)
742
+ }
743
+
744
+ branch_O(try_read)
745
+ }
746
+
747
+ 'P' => {
748
+ #[allow(non_snake_case)]
749
+ fn branch_P<E>(
750
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
751
+ ) -> Result<Option<CharRef>, E> {
752
+ for (other_chars, characters) in &[
753
+ ("recedesSlantEqual;", "\u{227c}"),
754
+ ("oincareplane;", "\u{210c}"),
755
+ ("recedesEqual;", "\u{2aaf}"),
756
+ ("recedesTilde;", "\u{227e}"),
757
+ ("roportional;", "\u{221d}"),
758
+ ("roportion;", "\u{2237}"),
759
+ ("lusMinus;", "\u{b1}"),
760
+ ("artialD;", "\u{2202}"),
761
+ ("recedes;", "\u{227a}"),
762
+ ("roduct;", "\u{220f}"),
763
+ ("rime;", "\u{2033}"),
764
+ ("opf;", "\u{2119}"),
765
+ ("scr;", "\u{1d4ab}"),
766
+ ("cy;", "\u{41f}"),
767
+ ("fr;", "\u{1d513}"),
768
+ ("hi;", "\u{3a6}"),
769
+ ("si;", "\u{3a8}"),
770
+ ("i;", "\u{3a0}"),
771
+ ("r;", "\u{2abb}"),
772
+ ] {
773
+ if try_read(other_chars)? {
774
+ return Ok(Some(CharRef {
775
+ name: other_chars,
776
+ characters,
777
+ }));
778
+ }
779
+ }
780
+
781
+ Ok(None)
782
+ }
783
+
784
+ branch_P(try_read)
785
+ }
786
+
787
+ 'Q' => {
788
+ #[allow(non_snake_case)]
789
+ fn branch_Q<E>(
790
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
791
+ ) -> Result<Option<CharRef>, E> {
792
+ for (other_chars, characters) in &[
793
+ ("UOT;", "\u{22}"),
794
+ ("opf;", "\u{211a}"),
795
+ ("scr;", "\u{1d4ac}"),
796
+ ("UOT", "\u{22}"),
797
+ ("fr;", "\u{1d514}"),
798
+ ] {
799
+ if try_read(other_chars)? {
800
+ return Ok(Some(CharRef {
801
+ name: other_chars,
802
+ characters,
803
+ }));
804
+ }
805
+ }
806
+
807
+ Ok(None)
808
+ }
809
+
810
+ branch_Q(try_read)
811
+ }
812
+
813
+ 'R' => {
814
+ #[allow(non_snake_case)]
815
+ fn branch_R<E>(
816
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
817
+ ) -> Result<Option<CharRef>, E> {
818
+ for (other_chars, characters) in &[
819
+ ("everseUpEquilibrium;", "\u{296f}"),
820
+ ("ightArrowLeftArrow;", "\u{21c4}"),
821
+ ("everseEquilibrium;", "\u{21cb}"),
822
+ ("ightDoubleBracket;", "\u{27e7}"),
823
+ ("ightDownTeeVector;", "\u{295d}"),
824
+ ("ightDownVectorBar;", "\u{2955}"),
825
+ ("ightTriangleEqual;", "\u{22b5}"),
826
+ ("ightAngleBracket;", "\u{27e9}"),
827
+ ("ightUpDownVector;", "\u{294f}"),
828
+ ("ightTriangleBar;", "\u{29d0}"),
829
+ ("ightUpTeeVector;", "\u{295c}"),
830
+ ("ightUpVectorBar;", "\u{2954}"),
831
+ ("ightDownVector;", "\u{21c2}"),
832
+ ("everseElement;", "\u{220b}"),
833
+ ("ightTeeVector;", "\u{295b}"),
834
+ ("ightVectorBar;", "\u{2953}"),
835
+ ("ightArrowBar;", "\u{21e5}"),
836
+ ("ightTeeArrow;", "\u{21a6}"),
837
+ ("ightTriangle;", "\u{22b3}"),
838
+ ("ightUpVector;", "\u{21be}"),
839
+ ("ightCeiling;", "\u{2309}"),
840
+ ("oundImplies;", "\u{2970}"),
841
+ ("ightVector;", "\u{21c0}"),
842
+ ("rightarrow;", "\u{21db}"),
843
+ ("uleDelayed;", "\u{29f4}"),
844
+ ("ightArrow;", "\u{2192}"),
845
+ ("ightFloor;", "\u{230b}"),
846
+ ("ightarrow;", "\u{21d2}"),
847
+ ("ightTee;", "\u{22a2}"),
848
+ ("acute;", "\u{154}"),
849
+ ("arrtl;", "\u{2916}"),
850
+ ("caron;", "\u{158}"),
851
+ ("cedil;", "\u{156}"),
852
+ ("Barr;", "\u{2910}"),
853
+ ("ang;", "\u{27eb}"),
854
+ ("arr;", "\u{21a0}"),
855
+ ("opf;", "\u{211d}"),
856
+ ("scr;", "\u{211b}"),
857
+ ("EG;", "\u{ae}"),
858
+ ("cy;", "\u{420}"),
859
+ ("fr;", "\u{211c}"),
860
+ ("ho;", "\u{3a1}"),
861
+ ("sh;", "\u{21b1}"),
862
+ ("EG", "\u{ae}"),
863
+ ("e;", "\u{211c}"),
864
+ ] {
865
+ if try_read(other_chars)? {
866
+ return Ok(Some(CharRef {
867
+ name: other_chars,
868
+ characters,
869
+ }));
870
+ }
871
+ }
872
+
873
+ Ok(None)
874
+ }
875
+
876
+ branch_R(try_read)
877
+ }
878
+
879
+ 'S' => {
880
+ #[allow(non_snake_case)]
881
+ fn branch_S<E>(
882
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
883
+ ) -> Result<Option<CharRef>, E> {
884
+ for (other_chars, characters) in &[
885
+ ("quareSupersetEqual;", "\u{2292}"),
886
+ ("quareIntersection;", "\u{2293}"),
887
+ ("ucceedsSlantEqual;", "\u{227d}"),
888
+ ("quareSubsetEqual;", "\u{2291}"),
889
+ ("hortRightArrow;", "\u{2192}"),
890
+ ("hortDownArrow;", "\u{2193}"),
891
+ ("hortLeftArrow;", "\u{2190}"),
892
+ ("quareSuperset;", "\u{2290}"),
893
+ ("ucceedsEqual;", "\u{2ab0}"),
894
+ ("ucceedsTilde;", "\u{227f}"),
895
+ ("upersetEqual;", "\u{2287}"),
896
+ ("hortUpArrow;", "\u{2191}"),
897
+ ("quareSubset;", "\u{228f}"),
898
+ ("mallCircle;", "\u{2218}"),
899
+ ("quareUnion;", "\u{2294}"),
900
+ ("ubsetEqual;", "\u{2286}"),
901
+ ("ucceeds;", "\u{227b}"),
902
+ ("uchThat;", "\u{220b}"),
903
+ ("uperset;", "\u{2283}"),
904
+ ("HCHcy;", "\u{429}"),
905
+ ("OFTcy;", "\u{42c}"),
906
+ ("acute;", "\u{15a}"),
907
+ ("caron;", "\u{160}"),
908
+ ("cedil;", "\u{15e}"),
909
+ ("quare;", "\u{25a1}"),
910
+ ("ubset;", "\u{22d0}"),
911
+ ("upset;", "\u{22d1}"),
912
+ ("circ;", "\u{15c}"),
913
+ ("igma;", "\u{3a3}"),
914
+ ("Hcy;", "\u{428}"),
915
+ ("opf;", "\u{1d54a}"),
916
+ ("qrt;", "\u{221a}"),
917
+ ("scr;", "\u{1d4ae}"),
918
+ ("tar;", "\u{22c6}"),
919
+ ("cy;", "\u{421}"),
920
+ ("fr;", "\u{1d516}"),
921
+ ("ub;", "\u{22d0}"),
922
+ ("um;", "\u{2211}"),
923
+ ("up;", "\u{22d1}"),
924
+ ("c;", "\u{2abc}"),
925
+ ] {
926
+ if try_read(other_chars)? {
927
+ return Ok(Some(CharRef {
928
+ name: other_chars,
929
+ characters,
930
+ }));
931
+ }
932
+ }
933
+
934
+ Ok(None)
935
+ }
936
+
937
+ branch_S(try_read)
938
+ }
939
+
940
+ 'T' => {
941
+ #[allow(non_snake_case)]
942
+ fn branch_T<E>(
943
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
944
+ ) -> Result<Option<CharRef>, E> {
945
+ for (other_chars, characters) in &[
946
+ ("ildeFullEqual;", "\u{2245}"),
947
+ ("hickSpace;", "\u{205f}\u{200a}"),
948
+ ("ildeEqual;", "\u{2243}"),
949
+ ("ildeTilde;", "\u{2248}"),
950
+ ("herefore;", "\u{2234}"),
951
+ ("hinSpace;", "\u{2009}"),
952
+ ("ripleDot;", "\u{20db}"),
953
+ ("caron;", "\u{164}"),
954
+ ("cedil;", "\u{162}"),
955
+ ("strok;", "\u{166}"),
956
+ ("HORN;", "\u{de}"),
957
+ ("RADE;", "\u{2122}"),
958
+ ("SHcy;", "\u{40b}"),
959
+ ("heta;", "\u{398}"),
960
+ ("ilde;", "\u{223c}"),
961
+ ("HORN", "\u{de}"),
962
+ ("Scy;", "\u{426}"),
963
+ ("opf;", "\u{1d54b}"),
964
+ ("scr;", "\u{1d4af}"),
965
+ ("ab;", "\u{9}"),
966
+ ("au;", "\u{3a4}"),
967
+ ("cy;", "\u{422}"),
968
+ ("fr;", "\u{1d517}"),
969
+ ] {
970
+ if try_read(other_chars)? {
971
+ return Ok(Some(CharRef {
972
+ name: other_chars,
973
+ characters,
974
+ }));
975
+ }
976
+ }
977
+
978
+ Ok(None)
979
+ }
980
+
981
+ branch_T(try_read)
982
+ }
983
+
984
+ 'U' => {
985
+ #[allow(non_snake_case)]
986
+ fn branch_U<E>(
987
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
988
+ ) -> Result<Option<CharRef>, E> {
989
+ for (other_chars, characters) in &[
990
+ ("nderParenthesis;", "\u{23dd}"),
991
+ ("pArrowDownArrow;", "\u{21c5}"),
992
+ ("pperRightArrow;", "\u{2197}"),
993
+ ("pperLeftArrow;", "\u{2196}"),
994
+ ("pEquilibrium;", "\u{296e}"),
995
+ ("nderBracket;", "\u{23b5}"),
996
+ ("pDownArrow;", "\u{2195}"),
997
+ ("pdownarrow;", "\u{21d5}"),
998
+ ("nderBrace;", "\u{23df}"),
999
+ ("pArrowBar;", "\u{2912}"),
1000
+ ("pTeeArrow;", "\u{21a5}"),
1001
+ ("nionPlus;", "\u{228e}"),
1002
+ ("arrocir;", "\u{2949}"),
1003
+ ("nderBar;", "\u{5f}"),
1004
+ ("pArrow;", "\u{2191}"),
1005
+ ("parrow;", "\u{21d1}"),
1006
+ ("psilon;", "\u{3a5}"),
1007
+ ("acute;", "\u{da}"),
1008
+ ("breve;", "\u{16c}"),
1009
+ ("dblac;", "\u{170}"),
1010
+ ("grave;", "\u{d9}"),
1011
+ ("tilde;", "\u{168}"),
1012
+ ("acute", "\u{da}"),
1013
+ ("brcy;", "\u{40e}"),
1014
+ ("circ;", "\u{db}"),
1015
+ ("grave", "\u{d9}"),
1016
+ ("macr;", "\u{16a}"),
1017
+ ("nion;", "\u{22c3}"),
1018
+ ("ogon;", "\u{172}"),
1019
+ ("pTee;", "\u{22a5}"),
1020
+ ("ring;", "\u{16e}"),
1021
+ ("arr;", "\u{219f}"),
1022
+ ("circ", "\u{db}"),
1023
+ ("opf;", "\u{1d54c}"),
1024
+ ("psi;", "\u{3d2}"),
1025
+ ("scr;", "\u{1d4b0}"),
1026
+ ("uml;", "\u{dc}"),
1027
+ ("cy;", "\u{423}"),
1028
+ ("fr;", "\u{1d518}"),
1029
+ ("uml", "\u{dc}"),
1030
+ ] {
1031
+ if try_read(other_chars)? {
1032
+ return Ok(Some(CharRef {
1033
+ name: other_chars,
1034
+ characters,
1035
+ }));
1036
+ }
1037
+ }
1038
+
1039
+ Ok(None)
1040
+ }
1041
+
1042
+ branch_U(try_read)
1043
+ }
1044
+
1045
+ 'V' => {
1046
+ #[allow(non_snake_case)]
1047
+ fn branch_V<E>(
1048
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1049
+ ) -> Result<Option<CharRef>, E> {
1050
+ for (other_chars, characters) in &[
1051
+ ("erticalSeparator;", "\u{2758}"),
1052
+ ("erticalTilde;", "\u{2240}"),
1053
+ ("eryThinSpace;", "\u{200a}"),
1054
+ ("erticalLine;", "\u{7c}"),
1055
+ ("erticalBar;", "\u{2223}"),
1056
+ ("dashl;", "\u{2ae6}"),
1057
+ ("erbar;", "\u{2016}"),
1058
+ ("vdash;", "\u{22aa}"),
1059
+ ("Dash;", "\u{22ab}"),
1060
+ ("dash;", "\u{22a9}"),
1061
+ ("bar;", "\u{2aeb}"),
1062
+ ("ert;", "\u{2016}"),
1063
+ ("opf;", "\u{1d54d}"),
1064
+ ("scr;", "\u{1d4b1}"),
1065
+ ("cy;", "\u{412}"),
1066
+ ("ee;", "\u{22c1}"),
1067
+ ("fr;", "\u{1d519}"),
1068
+ ] {
1069
+ if try_read(other_chars)? {
1070
+ return Ok(Some(CharRef {
1071
+ name: other_chars,
1072
+ characters,
1073
+ }));
1074
+ }
1075
+ }
1076
+
1077
+ Ok(None)
1078
+ }
1079
+
1080
+ branch_V(try_read)
1081
+ }
1082
+
1083
+ 'W' => {
1084
+ #[allow(non_snake_case)]
1085
+ fn branch_W<E>(
1086
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1087
+ ) -> Result<Option<CharRef>, E> {
1088
+ for (other_chars, characters) in &[
1089
+ ("circ;", "\u{174}"),
1090
+ ("edge;", "\u{22c0}"),
1091
+ ("opf;", "\u{1d54e}"),
1092
+ ("scr;", "\u{1d4b2}"),
1093
+ ("fr;", "\u{1d51a}"),
1094
+ ] {
1095
+ if try_read(other_chars)? {
1096
+ return Ok(Some(CharRef {
1097
+ name: other_chars,
1098
+ characters,
1099
+ }));
1100
+ }
1101
+ }
1102
+
1103
+ Ok(None)
1104
+ }
1105
+
1106
+ branch_W(try_read)
1107
+ }
1108
+
1109
+ 'X' => {
1110
+ #[allow(non_snake_case)]
1111
+ fn branch_X<E>(
1112
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1113
+ ) -> Result<Option<CharRef>, E> {
1114
+ for (other_chars, characters) in &[
1115
+ ("opf;", "\u{1d54f}"),
1116
+ ("scr;", "\u{1d4b3}"),
1117
+ ("fr;", "\u{1d51b}"),
1118
+ ("i;", "\u{39e}"),
1119
+ ] {
1120
+ if try_read(other_chars)? {
1121
+ return Ok(Some(CharRef {
1122
+ name: other_chars,
1123
+ characters,
1124
+ }));
1125
+ }
1126
+ }
1127
+
1128
+ Ok(None)
1129
+ }
1130
+
1131
+ branch_X(try_read)
1132
+ }
1133
+
1134
+ 'Y' => {
1135
+ #[allow(non_snake_case)]
1136
+ fn branch_Y<E>(
1137
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1138
+ ) -> Result<Option<CharRef>, E> {
1139
+ for (other_chars, characters) in &[
1140
+ ("acute;", "\u{dd}"),
1141
+ ("acute", "\u{dd}"),
1142
+ ("circ;", "\u{176}"),
1143
+ ("Acy;", "\u{42f}"),
1144
+ ("Icy;", "\u{407}"),
1145
+ ("Ucy;", "\u{42e}"),
1146
+ ("opf;", "\u{1d550}"),
1147
+ ("scr;", "\u{1d4b4}"),
1148
+ ("uml;", "\u{178}"),
1149
+ ("cy;", "\u{42b}"),
1150
+ ("fr;", "\u{1d51c}"),
1151
+ ] {
1152
+ if try_read(other_chars)? {
1153
+ return Ok(Some(CharRef {
1154
+ name: other_chars,
1155
+ characters,
1156
+ }));
1157
+ }
1158
+ }
1159
+
1160
+ Ok(None)
1161
+ }
1162
+
1163
+ branch_Y(try_read)
1164
+ }
1165
+
1166
+ 'Z' => {
1167
+ #[allow(non_snake_case)]
1168
+ fn branch_Z<E>(
1169
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1170
+ ) -> Result<Option<CharRef>, E> {
1171
+ for (other_chars, characters) in &[
1172
+ ("eroWidthSpace;", "\u{200b}"),
1173
+ ("acute;", "\u{179}"),
1174
+ ("caron;", "\u{17d}"),
1175
+ ("Hcy;", "\u{416}"),
1176
+ ("dot;", "\u{17b}"),
1177
+ ("eta;", "\u{396}"),
1178
+ ("opf;", "\u{2124}"),
1179
+ ("scr;", "\u{1d4b5}"),
1180
+ ("cy;", "\u{417}"),
1181
+ ("fr;", "\u{2128}"),
1182
+ ] {
1183
+ if try_read(other_chars)? {
1184
+ return Ok(Some(CharRef {
1185
+ name: other_chars,
1186
+ characters,
1187
+ }));
1188
+ }
1189
+ }
1190
+
1191
+ Ok(None)
1192
+ }
1193
+
1194
+ branch_Z(try_read)
1195
+ }
1196
+
1197
+ 'a' => {
1198
+ #[allow(non_snake_case)]
1199
+ fn branch_a<E>(
1200
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1201
+ ) -> Result<Option<CharRef>, E> {
1202
+ for (other_chars, characters) in &[
1203
+ ("ndslope;", "\u{2a58}"),
1204
+ ("ngmsdaa;", "\u{29a8}"),
1205
+ ("ngmsdab;", "\u{29a9}"),
1206
+ ("ngmsdac;", "\u{29aa}"),
1207
+ ("ngmsdad;", "\u{29ab}"),
1208
+ ("ngmsdae;", "\u{29ac}"),
1209
+ ("ngmsdaf;", "\u{29ad}"),
1210
+ ("ngmsdag;", "\u{29ae}"),
1211
+ ("ngmsdah;", "\u{29af}"),
1212
+ ("ngrtvbd;", "\u{299d}"),
1213
+ ("pproxeq;", "\u{224a}"),
1214
+ ("wconint;", "\u{2233}"),
1215
+ ("lefsym;", "\u{2135}"),
1216
+ ("ngrtvb;", "\u{22be}"),
1217
+ ("ngzarr;", "\u{237c}"),
1218
+ ("sympeq;", "\u{224d}"),
1219
+ ("acute;", "\u{e1}"),
1220
+ ("breve;", "\u{103}"),
1221
+ ("grave;", "\u{e0}"),
1222
+ ("ndand;", "\u{2a55}"),
1223
+ ("ngmsd;", "\u{2221}"),
1224
+ ("ngsph;", "\u{2222}"),
1225
+ ("pacir;", "\u{2a6f}"),
1226
+ ("pprox;", "\u{2248}"),
1227
+ ("tilde;", "\u{e3}"),
1228
+ ("acute", "\u{e1}"),
1229
+ ("circ;", "\u{e2}"),
1230
+ ("cute;", "\u{b4}"),
1231
+ ("elig;", "\u{e6}"),
1232
+ ("grave", "\u{e0}"),
1233
+ ("leph;", "\u{2135}"),
1234
+ ("lpha;", "\u{3b1}"),
1235
+ ("macr;", "\u{101}"),
1236
+ ("malg;", "\u{2a3f}"),
1237
+ ("ngle;", "\u{2220}"),
1238
+ ("ngrt;", "\u{221f}"),
1239
+ ("ngst;", "\u{c5}"),
1240
+ ("ogon;", "\u{105}"),
1241
+ ("ring;", "\u{e5}"),
1242
+ ("symp;", "\u{2248}"),
1243
+ ("tilde", "\u{e3}"),
1244
+ ("wint;", "\u{2a11}"),
1245
+ ("circ", "\u{e2}"),
1246
+ ("cute", "\u{b4}"),
1247
+ ("elig", "\u{e6}"),
1248
+ ("ndd;", "\u{2a5c}"),
1249
+ ("ndv;", "\u{2a5a}"),
1250
+ ("nge;", "\u{29a4}"),
1251
+ ("opf;", "\u{1d552}"),
1252
+ ("pid;", "\u{224b}"),
1253
+ ("pos;", "\u{27}"),
1254
+ ("ring", "\u{e5}"),
1255
+ ("scr;", "\u{1d4b6}"),
1256
+ ("uml;", "\u{e4}"),
1257
+ ("cE;", "\u{223e}\u{333}"),
1258
+ ("cd;", "\u{223f}"),
1259
+ ("cy;", "\u{430}"),
1260
+ ("fr;", "\u{1d51e}"),
1261
+ ("mp;", "\u{26}"),
1262
+ ("nd;", "\u{2227}"),
1263
+ ("ng;", "\u{2220}"),
1264
+ ("pE;", "\u{2a70}"),
1265
+ ("pe;", "\u{224a}"),
1266
+ ("st;", "\u{2a}"),
1267
+ ("uml", "\u{e4}"),
1268
+ ("c;", "\u{223e}"),
1269
+ ("f;", "\u{2061}"),
1270
+ ("mp", "\u{26}"),
1271
+ ("p;", "\u{2248}"),
1272
+ ] {
1273
+ if try_read(other_chars)? {
1274
+ return Ok(Some(CharRef {
1275
+ name: other_chars,
1276
+ characters,
1277
+ }));
1278
+ }
1279
+ }
1280
+
1281
+ Ok(None)
1282
+ }
1283
+
1284
+ branch_a(try_read)
1285
+ }
1286
+
1287
+ 'b' => {
1288
+ #[allow(non_snake_case)]
1289
+ fn branch_b<E>(
1290
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1291
+ ) -> Result<Option<CharRef>, E> {
1292
+ for (other_chars, characters) in &[
1293
+ ("lacktriangleright;", "\u{25b8}"),
1294
+ ("lacktriangledown;", "\u{25be}"),
1295
+ ("lacktriangleleft;", "\u{25c2}"),
1296
+ ("igtriangledown;", "\u{25bd}"),
1297
+ ("igtriangleup;", "\u{25b3}"),
1298
+ ("lacktriangle;", "\u{25b4}"),
1299
+ ("lacklozenge;", "\u{29eb}"),
1300
+ ("ackepsilon;", "\u{3f6}"),
1301
+ ("lacksquare;", "\u{25aa}"),
1302
+ ("ackprime;", "\u{2035}"),
1303
+ ("acksimeq;", "\u{22cd}"),
1304
+ ("igotimes;", "\u{2a02}"),
1305
+ ("ackcong;", "\u{224c}"),
1306
+ ("arwedge;", "\u{2305}"),
1307
+ ("brktbrk;", "\u{23b6}"),
1308
+ ("igoplus;", "\u{2a01}"),
1309
+ ("igsqcup;", "\u{2a06}"),
1310
+ ("iguplus;", "\u{2a04}"),
1311
+ ("igwedge;", "\u{22c0}"),
1312
+ ("oxminus;", "\u{229f}"),
1313
+ ("oxtimes;", "\u{22a0}"),
1314
+ ("solhsub;", "\u{27c8}"),
1315
+ ("acksim;", "\u{223d}"),
1316
+ ("ecause;", "\u{2235}"),
1317
+ ("emptyv;", "\u{29b0}"),
1318
+ ("etween;", "\u{226c}"),
1319
+ ("igcirc;", "\u{25ef}"),
1320
+ ("igodot;", "\u{2a00}"),
1321
+ ("igstar;", "\u{2605}"),
1322
+ ("nequiv;", "\u{2261}\u{20e5}"),
1323
+ ("oxplus;", "\u{229e}"),
1324
+ ("arvee;", "\u{22bd}"),
1325
+ ("arwed;", "\u{2305}"),
1326
+ ("ecaus;", "\u{2235}"),
1327
+ ("ernou;", "\u{212c}"),
1328
+ ("igcap;", "\u{22c2}"),
1329
+ ("igcup;", "\u{22c3}"),
1330
+ ("igvee;", "\u{22c1}"),
1331
+ ("karow;", "\u{290d}"),
1332
+ ("ottom;", "\u{22a5}"),
1333
+ ("owtie;", "\u{22c8}"),
1334
+ ("oxbox;", "\u{29c9}"),
1335
+ ("prime;", "\u{2035}"),
1336
+ ("rvbar;", "\u{a6}"),
1337
+ ("ullet;", "\u{2022}"),
1338
+ ("umpeq;", "\u{224f}"),
1339
+ ("cong;", "\u{224c}"),
1340
+ ("dquo;", "\u{201e}"),
1341
+ ("epsi;", "\u{3f6}"),
1342
+ ("lank;", "\u{2423}"),
1343
+ ("lk12;", "\u{2592}"),
1344
+ ("lk14;", "\u{2591}"),
1345
+ ("lk34;", "\u{2593}"),
1346
+ ("lock;", "\u{2588}"),
1347
+ ("oxDL;", "\u{2557}"),
1348
+ ("oxDR;", "\u{2554}"),
1349
+ ("oxDl;", "\u{2556}"),
1350
+ ("oxDr;", "\u{2553}"),
1351
+ ("oxHD;", "\u{2566}"),
1352
+ ("oxHU;", "\u{2569}"),
1353
+ ("oxHd;", "\u{2564}"),
1354
+ ("oxHu;", "\u{2567}"),
1355
+ ("oxUL;", "\u{255d}"),
1356
+ ("oxUR;", "\u{255a}"),
1357
+ ("oxUl;", "\u{255c}"),
1358
+ ("oxUr;", "\u{2559}"),
1359
+ ("oxVH;", "\u{256c}"),
1360
+ ("oxVL;", "\u{2563}"),
1361
+ ("oxVR;", "\u{2560}"),
1362
+ ("oxVh;", "\u{256b}"),
1363
+ ("oxVl;", "\u{2562}"),
1364
+ ("oxVr;", "\u{255f}"),
1365
+ ("oxdL;", "\u{2555}"),
1366
+ ("oxdR;", "\u{2552}"),
1367
+ ("oxdl;", "\u{2510}"),
1368
+ ("oxdr;", "\u{250c}"),
1369
+ ("oxhD;", "\u{2565}"),
1370
+ ("oxhU;", "\u{2568}"),
1371
+ ("oxhd;", "\u{252c}"),
1372
+ ("oxhu;", "\u{2534}"),
1373
+ ("oxuL;", "\u{255b}"),
1374
+ ("oxuR;", "\u{2558}"),
1375
+ ("oxul;", "\u{2518}"),
1376
+ ("oxur;", "\u{2514}"),
1377
+ ("oxvH;", "\u{256a}"),
1378
+ ("oxvL;", "\u{2561}"),
1379
+ ("oxvR;", "\u{255e}"),
1380
+ ("oxvh;", "\u{253c}"),
1381
+ ("oxvl;", "\u{2524}"),
1382
+ ("oxvr;", "\u{251c}"),
1383
+ ("reve;", "\u{2d8}"),
1384
+ ("rvbar", "\u{a6}"),
1385
+ ("semi;", "\u{204f}"),
1386
+ ("sime;", "\u{22cd}"),
1387
+ ("solb;", "\u{29c5}"),
1388
+ ("umpE;", "\u{2aae}"),
1389
+ ("umpe;", "\u{224f}"),
1390
+ ("Not;", "\u{2aed}"),
1391
+ ("brk;", "\u{23b5}"),
1392
+ ("eta;", "\u{3b2}"),
1393
+ ("eth;", "\u{2136}"),
1394
+ ("not;", "\u{2310}"),
1395
+ ("opf;", "\u{1d553}"),
1396
+ ("oxH;", "\u{2550}"),
1397
+ ("oxV;", "\u{2551}"),
1398
+ ("oxh;", "\u{2500}"),
1399
+ ("oxv;", "\u{2502}"),
1400
+ ("scr;", "\u{1d4b7}"),
1401
+ ("sim;", "\u{223d}"),
1402
+ ("sol;", "\u{5c}"),
1403
+ ("ull;", "\u{2022}"),
1404
+ ("ump;", "\u{224e}"),
1405
+ ("cy;", "\u{431}"),
1406
+ ("fr;", "\u{1d51f}"),
1407
+ ("ne;", "\u{3d}\u{20e5}"),
1408
+ ("ot;", "\u{22a5}"),
1409
+ ] {
1410
+ if try_read(other_chars)? {
1411
+ return Ok(Some(CharRef {
1412
+ name: other_chars,
1413
+ characters,
1414
+ }));
1415
+ }
1416
+ }
1417
+
1418
+ Ok(None)
1419
+ }
1420
+
1421
+ branch_b(try_read)
1422
+ }
1423
+
1424
+ 'c' => {
1425
+ #[allow(non_snake_case)]
1426
+ fn branch_c<E>(
1427
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1428
+ ) -> Result<Option<CharRef>, E> {
1429
+ for (other_chars, characters) in &[
1430
+ ("irclearrowright;", "\u{21bb}"),
1431
+ ("irclearrowleft;", "\u{21ba}"),
1432
+ ("urvearrowright;", "\u{21b7}"),
1433
+ ("urvearrowleft;", "\u{21b6}"),
1434
+ ("ircledcirc;", "\u{229a}"),
1435
+ ("ircleddash;", "\u{229d}"),
1436
+ ("urlyeqprec;", "\u{22de}"),
1437
+ ("urlyeqsucc;", "\u{22df}"),
1438
+ ("ircledast;", "\u{229b}"),
1439
+ ("omplement;", "\u{2201}"),
1440
+ ("urlywedge;", "\u{22cf}"),
1441
+ ("enterdot;", "\u{b7}"),
1442
+ ("heckmark;", "\u{2713}"),
1443
+ ("omplexes;", "\u{2102}"),
1444
+ ("apbrcup;", "\u{2a49}"),
1445
+ ("ircledR;", "\u{ae}"),
1446
+ ("ircledS;", "\u{24c8}"),
1447
+ ("irfnint;", "\u{2a10}"),
1448
+ ("lubsuit;", "\u{2663}"),
1449
+ ("upbrcap;", "\u{2a48}"),
1450
+ ("urlyvee;", "\u{22ce}"),
1451
+ ("wconint;", "\u{2232}"),
1452
+ ("cupssm;", "\u{2a50}"),
1453
+ ("emptyv;", "\u{29b2}"),
1454
+ ("irscir;", "\u{29c2}"),
1455
+ ("oloneq;", "\u{2254}"),
1456
+ ("ongdot;", "\u{2a6d}"),
1457
+ ("udarrl;", "\u{2938}"),
1458
+ ("udarrr;", "\u{2935}"),
1459
+ ("ularrp;", "\u{293d}"),
1460
+ ("urarrm;", "\u{293c}"),
1461
+ ("acute;", "\u{107}"),
1462
+ ("apand;", "\u{2a44}"),
1463
+ ("apcap;", "\u{2a4b}"),
1464
+ ("apcup;", "\u{2a47}"),
1465
+ ("apdot;", "\u{2a40}"),
1466
+ ("caron;", "\u{10d}"),
1467
+ ("cedil;", "\u{e7}"),
1468
+ ("irceq;", "\u{2257}"),
1469
+ ("irmid;", "\u{2aef}"),
1470
+ ("olone;", "\u{2254}"),
1471
+ ("ommat;", "\u{40}"),
1472
+ ("ompfn;", "\u{2218}"),
1473
+ ("onint;", "\u{222e}"),
1474
+ ("oprod;", "\u{2210}"),
1475
+ ("opysr;", "\u{2117}"),
1476
+ ("ularr;", "\u{21b6}"),
1477
+ ("upcap;", "\u{2a46}"),
1478
+ ("upcup;", "\u{2a4a}"),
1479
+ ("updot;", "\u{228d}"),
1480
+ ("urarr;", "\u{21b7}"),
1481
+ ("urren;", "\u{a4}"),
1482
+ ("ylcty;", "\u{232d}"),
1483
+ ("aret;", "\u{2041}"),
1484
+ ("aron;", "\u{2c7}"),
1485
+ ("caps;", "\u{2a4d}"),
1486
+ ("cedil", "\u{e7}"),
1487
+ ("circ;", "\u{109}"),
1488
+ ("cups;", "\u{2a4c}"),
1489
+ ("edil;", "\u{b8}"),
1490
+ ("heck;", "\u{2713}"),
1491
+ ("lubs;", "\u{2663}"),
1492
+ ("olon;", "\u{3a}"),
1493
+ ("omma;", "\u{2c}"),
1494
+ ("rarr;", "\u{21b5}"),
1495
+ ("ross;", "\u{2717}"),
1496
+ ("sube;", "\u{2ad1}"),
1497
+ ("supe;", "\u{2ad2}"),
1498
+ ("tdot;", "\u{22ef}"),
1499
+ ("uepr;", "\u{22de}"),
1500
+ ("uesc;", "\u{22df}"),
1501
+ ("upor;", "\u{2a45}"),
1502
+ ("urren", "\u{a4}"),
1503
+ ("uvee;", "\u{22ce}"),
1504
+ ("uwed;", "\u{22cf}"),
1505
+ ("wint;", "\u{2231}"),
1506
+ ("aps;", "\u{2229}\u{fe00}"),
1507
+ ("dot;", "\u{10b}"),
1508
+ ("edil", "\u{b8}"),
1509
+ ("ent;", "\u{a2}"),
1510
+ ("hcy;", "\u{447}"),
1511
+ ("irE;", "\u{29c3}"),
1512
+ ("irc;", "\u{2c6}"),
1513
+ ("ire;", "\u{2257}"),
1514
+ ("omp;", "\u{2201}"),
1515
+ ("ong;", "\u{2245}"),
1516
+ ("opf;", "\u{1d554}"),
1517
+ ("opy;", "\u{a9}"),
1518
+ ("scr;", "\u{1d4b8}"),
1519
+ ("sub;", "\u{2acf}"),
1520
+ ("sup;", "\u{2ad0}"),
1521
+ ("ups;", "\u{222a}\u{fe00}"),
1522
+ ("ap;", "\u{2229}"),
1523
+ ("ent", "\u{a2}"),
1524
+ ("fr;", "\u{1d520}"),
1525
+ ("hi;", "\u{3c7}"),
1526
+ ("ir;", "\u{25cb}"),
1527
+ ("opy", "\u{a9}"),
1528
+ ("up;", "\u{222a}"),
1529
+ ] {
1530
+ if try_read(other_chars)? {
1531
+ return Ok(Some(CharRef {
1532
+ name: other_chars,
1533
+ characters,
1534
+ }));
1535
+ }
1536
+ }
1537
+
1538
+ Ok(None)
1539
+ }
1540
+
1541
+ branch_c(try_read)
1542
+ }
1543
+
1544
+ 'd' => {
1545
+ #[allow(non_snake_case)]
1546
+ fn branch_d<E>(
1547
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1548
+ ) -> Result<Option<CharRef>, E> {
1549
+ for (other_chars, characters) in &[
1550
+ ("ownharpoonright;", "\u{21c2}"),
1551
+ ("ownharpoonleft;", "\u{21c3}"),
1552
+ ("oublebarwedge;", "\u{2306}"),
1553
+ ("owndownarrows;", "\u{21ca}"),
1554
+ ("ivideontimes;", "\u{22c7}"),
1555
+ ("iamondsuit;", "\u{2666}"),
1556
+ ("otsquare;", "\u{22a1}"),
1557
+ ("ownarrow;", "\u{2193}"),
1558
+ ("oteqdot;", "\u{2251}"),
1559
+ ("otminus;", "\u{2238}"),
1560
+ ("rbkarow;", "\u{2910}"),
1561
+ ("zigrarr;", "\u{27ff}"),
1562
+ ("bkarow;", "\u{290f}"),
1563
+ ("dagger;", "\u{2021}"),
1564
+ ("dotseq;", "\u{2a77}"),
1565
+ ("emptyv;", "\u{29b1}"),
1566
+ ("iamond;", "\u{22c4}"),
1567
+ ("igamma;", "\u{3dd}"),
1568
+ ("otplus;", "\u{2214}"),
1569
+ ("wangle;", "\u{29a6}"),
1570
+ ("agger;", "\u{2020}"),
1571
+ ("aleth;", "\u{2138}"),
1572
+ ("caron;", "\u{10f}"),
1573
+ ("fisht;", "\u{297f}"),
1574
+ ("ivide;", "\u{f7}"),
1575
+ ("ivonx;", "\u{22c7}"),
1576
+ ("lcorn;", "\u{231e}"),
1577
+ ("lcrop;", "\u{230d}"),
1578
+ ("ollar;", "\u{24}"),
1579
+ ("rcorn;", "\u{231f}"),
1580
+ ("rcrop;", "\u{230c}"),
1581
+ ("strok;", "\u{111}"),
1582
+ ("ashv;", "\u{22a3}"),
1583
+ ("blac;", "\u{2dd}"),
1584
+ ("darr;", "\u{21ca}"),
1585
+ ("elta;", "\u{3b4}"),
1586
+ ("harl;", "\u{21c3}"),
1587
+ ("harr;", "\u{21c2}"),
1588
+ ("iams;", "\u{2666}"),
1589
+ ("isin;", "\u{22f2}"),
1590
+ ("ivide", "\u{f7}"),
1591
+ ("oteq;", "\u{2250}"),
1592
+ ("tdot;", "\u{22f1}"),
1593
+ ("trif;", "\u{25be}"),
1594
+ ("uarr;", "\u{21f5}"),
1595
+ ("uhar;", "\u{296f}"),
1596
+ ("Arr;", "\u{21d3}"),
1597
+ ("Har;", "\u{2965}"),
1598
+ ("arr;", "\u{2193}"),
1599
+ ("ash;", "\u{2010}"),
1600
+ ("iam;", "\u{22c4}"),
1601
+ ("jcy;", "\u{452}"),
1602
+ ("opf;", "\u{1d555}"),
1603
+ ("scr;", "\u{1d4b9}"),
1604
+ ("scy;", "\u{455}"),
1605
+ ("sol;", "\u{29f6}"),
1606
+ ("tri;", "\u{25bf}"),
1607
+ ("zcy;", "\u{45f}"),
1608
+ ("cy;", "\u{434}"),
1609
+ ("eg;", "\u{b0}"),
1610
+ ("fr;", "\u{1d521}"),
1611
+ ("ie;", "\u{a8}"),
1612
+ ("iv;", "\u{f7}"),
1613
+ ("ot;", "\u{2d9}"),
1614
+ ("d;", "\u{2146}"),
1615
+ ("eg", "\u{b0}"),
1616
+ ] {
1617
+ if try_read(other_chars)? {
1618
+ return Ok(Some(CharRef {
1619
+ name: other_chars,
1620
+ characters,
1621
+ }));
1622
+ }
1623
+ }
1624
+
1625
+ Ok(None)
1626
+ }
1627
+
1628
+ branch_d(try_read)
1629
+ }
1630
+
1631
+ 'e' => {
1632
+ #[allow(non_snake_case)]
1633
+ fn branch_e<E>(
1634
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1635
+ ) -> Result<Option<CharRef>, E> {
1636
+ for (other_chars, characters) in &[
1637
+ ("xponentiale;", "\u{2147}"),
1638
+ ("qslantless;", "\u{2a95}"),
1639
+ ("xpectation;", "\u{2130}"),
1640
+ ("qslantgtr;", "\u{2a96}"),
1641
+ ("linters;", "\u{23e7}"),
1642
+ ("mptyset;", "\u{2205}"),
1643
+ ("qvparsl;", "\u{29e5}"),
1644
+ ("psilon;", "\u{3b5}"),
1645
+ ("qcolon;", "\u{2255}"),
1646
+ ("quivDD;", "\u{2a78}"),
1647
+ ("acute;", "\u{e9}"),
1648
+ ("aster;", "\u{2a6e}"),
1649
+ ("caron;", "\u{11b}"),
1650
+ ("colon;", "\u{2255}"),
1651
+ ("grave;", "\u{e8}"),
1652
+ ("gsdot;", "\u{2a98}"),
1653
+ ("lsdot;", "\u{2a97}"),
1654
+ ("mptyv;", "\u{2205}"),
1655
+ ("msp13;", "\u{2004}"),
1656
+ ("msp14;", "\u{2005}"),
1657
+ ("parsl;", "\u{29e3}"),
1658
+ ("qcirc;", "\u{2256}"),
1659
+ ("quals;", "\u{3d}"),
1660
+ ("quest;", "\u{225f}"),
1661
+ ("DDot;", "\u{2a77}"),
1662
+ ("acute", "\u{e9}"),
1663
+ ("circ;", "\u{ea}"),
1664
+ ("fDot;", "\u{2252}"),
1665
+ ("grave", "\u{e8}"),
1666
+ ("macr;", "\u{113}"),
1667
+ ("mpty;", "\u{2205}"),
1668
+ ("ogon;", "\u{119}"),
1669
+ ("plus;", "\u{2a71}"),
1670
+ ("psiv;", "\u{3f5}"),
1671
+ ("qsim;", "\u{2242}"),
1672
+ ("quiv;", "\u{2261}"),
1673
+ ("rDot;", "\u{2253}"),
1674
+ ("rarr;", "\u{2971}"),
1675
+ ("sdot;", "\u{2250}"),
1676
+ ("xist;", "\u{2203}"),
1677
+ ("Dot;", "\u{2251}"),
1678
+ ("cir;", "\u{2256}"),
1679
+ ("circ", "\u{ea}"),
1680
+ ("dot;", "\u{117}"),
1681
+ ("msp;", "\u{2003}"),
1682
+ ("nsp;", "\u{2002}"),
1683
+ ("opf;", "\u{1d556}"),
1684
+ ("par;", "\u{22d5}"),
1685
+ ("psi;", "\u{3b5}"),
1686
+ ("scr;", "\u{212f}"),
1687
+ ("sim;", "\u{2242}"),
1688
+ ("uml;", "\u{eb}"),
1689
+ ("uro;", "\u{20ac}"),
1690
+ ("xcl;", "\u{21}"),
1691
+ ("cy;", "\u{44d}"),
1692
+ ("fr;", "\u{1d522}"),
1693
+ ("gs;", "\u{2a96}"),
1694
+ ("ll;", "\u{2113}"),
1695
+ ("ls;", "\u{2a95}"),
1696
+ ("ng;", "\u{14b}"),
1697
+ ("ta;", "\u{3b7}"),
1698
+ ("th;", "\u{f0}"),
1699
+ ("uml", "\u{eb}"),
1700
+ ("e;", "\u{2147}"),
1701
+ ("g;", "\u{2a9a}"),
1702
+ ("l;", "\u{2a99}"),
1703
+ ("th", "\u{f0}"),
1704
+ ] {
1705
+ if try_read(other_chars)? {
1706
+ return Ok(Some(CharRef {
1707
+ name: other_chars,
1708
+ characters,
1709
+ }));
1710
+ }
1711
+ }
1712
+
1713
+ Ok(None)
1714
+ }
1715
+
1716
+ branch_e(try_read)
1717
+ }
1718
+
1719
+ 'f' => {
1720
+ #[allow(non_snake_case)]
1721
+ fn branch_f<E>(
1722
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1723
+ ) -> Result<Option<CharRef>, E> {
1724
+ for (other_chars, characters) in &[
1725
+ ("allingdotseq;", "\u{2252}"),
1726
+ ("partint;", "\u{2a0d}"),
1727
+ ("emale;", "\u{2640}"),
1728
+ ("filig;", "\u{fb03}"),
1729
+ ("fllig;", "\u{fb04}"),
1730
+ ("orall;", "\u{2200}"),
1731
+ ("rac12;", "\u{bd}"),
1732
+ ("rac13;", "\u{2153}"),
1733
+ ("rac14;", "\u{bc}"),
1734
+ ("rac15;", "\u{2155}"),
1735
+ ("rac16;", "\u{2159}"),
1736
+ ("rac18;", "\u{215b}"),
1737
+ ("rac23;", "\u{2154}"),
1738
+ ("rac25;", "\u{2156}"),
1739
+ ("rac34;", "\u{be}"),
1740
+ ("rac35;", "\u{2157}"),
1741
+ ("rac38;", "\u{215c}"),
1742
+ ("rac45;", "\u{2158}"),
1743
+ ("rac56;", "\u{215a}"),
1744
+ ("rac58;", "\u{215d}"),
1745
+ ("rac78;", "\u{215e}"),
1746
+ ("flig;", "\u{fb00}"),
1747
+ ("ilig;", "\u{fb01}"),
1748
+ ("jlig;", "\u{66}\u{6a}"),
1749
+ ("llig;", "\u{fb02}"),
1750
+ ("ltns;", "\u{25b1}"),
1751
+ ("orkv;", "\u{2ad9}"),
1752
+ ("rac12", "\u{bd}"),
1753
+ ("rac14", "\u{bc}"),
1754
+ ("rac34", "\u{be}"),
1755
+ ("rasl;", "\u{2044}"),
1756
+ ("rown;", "\u{2322}"),
1757
+ ("lat;", "\u{266d}"),
1758
+ ("nof;", "\u{192}"),
1759
+ ("opf;", "\u{1d557}"),
1760
+ ("ork;", "\u{22d4}"),
1761
+ ("scr;", "\u{1d4bb}"),
1762
+ ("cy;", "\u{444}"),
1763
+ ("fr;", "\u{1d523}"),
1764
+ ] {
1765
+ if try_read(other_chars)? {
1766
+ return Ok(Some(CharRef {
1767
+ name: other_chars,
1768
+ characters,
1769
+ }));
1770
+ }
1771
+ }
1772
+
1773
+ Ok(None)
1774
+ }
1775
+
1776
+ branch_f(try_read)
1777
+ }
1778
+
1779
+ 'g' => {
1780
+ #[allow(non_snake_case)]
1781
+ fn branch_g<E>(
1782
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1783
+ ) -> Result<Option<CharRef>, E> {
1784
+ for (other_chars, characters) in &[
1785
+ ("treqqless;", "\u{2a8c}"),
1786
+ ("trapprox;", "\u{2a86}"),
1787
+ ("treqless;", "\u{22db}"),
1788
+ ("vertneqq;", "\u{2269}\u{fe00}"),
1789
+ ("eqslant;", "\u{2a7e}"),
1790
+ ("esdotol;", "\u{2a84}"),
1791
+ ("napprox;", "\u{2a8a}"),
1792
+ ("esdoto;", "\u{2a82}"),
1793
+ ("tquest;", "\u{2a7c}"),
1794
+ ("trless;", "\u{2277}"),
1795
+ ("acute;", "\u{1f5}"),
1796
+ ("ammad;", "\u{3dd}"),
1797
+ ("breve;", "\u{11f}"),
1798
+ ("esdot;", "\u{2a80}"),
1799
+ ("esles;", "\u{2a94}"),
1800
+ ("tlPar;", "\u{2995}"),
1801
+ ("trarr;", "\u{2978}"),
1802
+ ("trdot;", "\u{22d7}"),
1803
+ ("trsim;", "\u{2273}"),
1804
+ ("amma;", "\u{3b3}"),
1805
+ ("circ;", "\u{11d}"),
1806
+ ("escc;", "\u{2aa9}"),
1807
+ ("imel;", "\u{2137}"),
1808
+ ("neqq;", "\u{2269}"),
1809
+ ("nsim;", "\u{22e7}"),
1810
+ ("rave;", "\u{60}"),
1811
+ ("sime;", "\u{2a8e}"),
1812
+ ("siml;", "\u{2a90}"),
1813
+ ("tcir;", "\u{2a7a}"),
1814
+ ("tdot;", "\u{22d7}"),
1815
+ ("dot;", "\u{121}"),
1816
+ ("eqq;", "\u{2267}"),
1817
+ ("esl;", "\u{22db}\u{fe00}"),
1818
+ ("jcy;", "\u{453}"),
1819
+ ("nap;", "\u{2a8a}"),
1820
+ ("neq;", "\u{2a88}"),
1821
+ ("opf;", "\u{1d558}"),
1822
+ ("scr;", "\u{210a}"),
1823
+ ("sim;", "\u{2273}"),
1824
+ ("tcc;", "\u{2aa7}"),
1825
+ ("vnE;", "\u{2269}\u{fe00}"),
1826
+ ("El;", "\u{2a8c}"),
1827
+ ("ap;", "\u{2a86}"),
1828
+ ("cy;", "\u{433}"),
1829
+ ("el;", "\u{22db}"),
1830
+ ("eq;", "\u{2265}"),
1831
+ ("es;", "\u{2a7e}"),
1832
+ ("fr;", "\u{1d524}"),
1833
+ ("gg;", "\u{22d9}"),
1834
+ ("lE;", "\u{2a92}"),
1835
+ ("la;", "\u{2aa5}"),
1836
+ ("lj;", "\u{2aa4}"),
1837
+ ("nE;", "\u{2269}"),
1838
+ ("ne;", "\u{2a88}"),
1839
+ ("E;", "\u{2267}"),
1840
+ ("e;", "\u{2265}"),
1841
+ ("g;", "\u{226b}"),
1842
+ ("l;", "\u{2277}"),
1843
+ ("t;", "\u{3e}"),
1844
+ ("t", "\u{3e}"),
1845
+ ] {
1846
+ if try_read(other_chars)? {
1847
+ return Ok(Some(CharRef {
1848
+ name: other_chars,
1849
+ characters,
1850
+ }));
1851
+ }
1852
+ }
1853
+
1854
+ Ok(None)
1855
+ }
1856
+
1857
+ branch_g(try_read)
1858
+ }
1859
+
1860
+ 'h' => {
1861
+ #[allow(non_snake_case)]
1862
+ fn branch_h<E>(
1863
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1864
+ ) -> Result<Option<CharRef>, E> {
1865
+ for (other_chars, characters) in &[
1866
+ ("ookrightarrow;", "\u{21aa}"),
1867
+ ("ookleftarrow;", "\u{21a9}"),
1868
+ ("eartsuit;", "\u{2665}"),
1869
+ ("ksearow;", "\u{2925}"),
1870
+ ("kswarow;", "\u{2926}"),
1871
+ ("arrcir;", "\u{2948}"),
1872
+ ("airsp;", "\u{200a}"),
1873
+ ("amilt;", "\u{210b}"),
1874
+ ("ardcy;", "\u{44a}"),
1875
+ ("earts;", "\u{2665}"),
1876
+ ("ellip;", "\u{2026}"),
1877
+ ("ercon;", "\u{22b9}"),
1878
+ ("omtht;", "\u{223b}"),
1879
+ ("orbar;", "\u{2015}"),
1880
+ ("slash;", "\u{210f}"),
1881
+ ("strok;", "\u{127}"),
1882
+ ("ybull;", "\u{2043}"),
1883
+ ("yphen;", "\u{2010}"),
1884
+ ("arrw;", "\u{21ad}"),
1885
+ ("circ;", "\u{125}"),
1886
+ ("oarr;", "\u{21ff}"),
1887
+ ("Arr;", "\u{21d4}"),
1888
+ ("alf;", "\u{bd}"),
1889
+ ("arr;", "\u{2194}"),
1890
+ ("bar;", "\u{210f}"),
1891
+ ("opf;", "\u{1d559}"),
1892
+ ("scr;", "\u{1d4bd}"),
1893
+ ("fr;", "\u{1d525}"),
1894
+ ] {
1895
+ if try_read(other_chars)? {
1896
+ return Ok(Some(CharRef {
1897
+ name: other_chars,
1898
+ characters,
1899
+ }));
1900
+ }
1901
+ }
1902
+
1903
+ Ok(None)
1904
+ }
1905
+
1906
+ branch_h(try_read)
1907
+ }
1908
+
1909
+ 'i' => {
1910
+ #[allow(non_snake_case)]
1911
+ fn branch_i<E>(
1912
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1913
+ ) -> Result<Option<CharRef>, E> {
1914
+ for (other_chars, characters) in &[
1915
+ ("magline;", "\u{2110}"),
1916
+ ("magpart;", "\u{2111}"),
1917
+ ("nfintie;", "\u{29dd}"),
1918
+ ("ntegers;", "\u{2124}"),
1919
+ ("ntercal;", "\u{22ba}"),
1920
+ ("ntlarhk;", "\u{2a17}"),
1921
+ ("ntprod;", "\u{2a3c}"),
1922
+ ("sindot;", "\u{22f5}"),
1923
+ ("acute;", "\u{ed}"),
1924
+ ("grave;", "\u{ec}"),
1925
+ ("iiint;", "\u{2a0c}"),
1926
+ ("infin;", "\u{29dc}"),
1927
+ ("ncare;", "\u{2105}"),
1928
+ ("nodot;", "\u{131}"),
1929
+ ("ntcal;", "\u{22ba}"),
1930
+ ("quest;", "\u{bf}"),
1931
+ ("sinsv;", "\u{22f3}"),
1932
+ ("tilde;", "\u{129}"),
1933
+ ("acute", "\u{ed}"),
1934
+ ("circ;", "\u{ee}"),
1935
+ ("excl;", "\u{a1}"),
1936
+ ("grave", "\u{ec}"),
1937
+ ("iint;", "\u{222d}"),
1938
+ ("iota;", "\u{2129}"),
1939
+ ("jlig;", "\u{133}"),
1940
+ ("macr;", "\u{12b}"),
1941
+ ("mage;", "\u{2111}"),
1942
+ ("math;", "\u{131}"),
1943
+ ("mped;", "\u{1b5}"),
1944
+ ("nfin;", "\u{221e}"),
1945
+ ("ogon;", "\u{12f}"),
1946
+ ("prod;", "\u{2a3c}"),
1947
+ ("quest", "\u{bf}"),
1948
+ ("sinE;", "\u{22f9}"),
1949
+ ("sins;", "\u{22f4}"),
1950
+ ("sinv;", "\u{2208}"),
1951
+ ("ukcy;", "\u{456}"),
1952
+ ("circ", "\u{ee}"),
1953
+ ("ecy;", "\u{435}"),
1954
+ ("excl", "\u{a1}"),
1955
+ ("mof;", "\u{22b7}"),
1956
+ ("ocy;", "\u{451}"),
1957
+ ("opf;", "\u{1d55a}"),
1958
+ ("ota;", "\u{3b9}"),
1959
+ ("scr;", "\u{1d4be}"),
1960
+ ("sin;", "\u{2208}"),
1961
+ ("uml;", "\u{ef}"),
1962
+ ("cy;", "\u{438}"),
1963
+ ("ff;", "\u{21d4}"),
1964
+ ("fr;", "\u{1d526}"),
1965
+ ("nt;", "\u{222b}"),
1966
+ ("uml", "\u{ef}"),
1967
+ ("c;", "\u{2063}"),
1968
+ ("i;", "\u{2148}"),
1969
+ ("n;", "\u{2208}"),
1970
+ ("t;", "\u{2062}"),
1971
+ ] {
1972
+ if try_read(other_chars)? {
1973
+ return Ok(Some(CharRef {
1974
+ name: other_chars,
1975
+ characters,
1976
+ }));
1977
+ }
1978
+ }
1979
+
1980
+ Ok(None)
1981
+ }
1982
+
1983
+ branch_i(try_read)
1984
+ }
1985
+
1986
+ 'j' => {
1987
+ #[allow(non_snake_case)]
1988
+ fn branch_j<E>(
1989
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
1990
+ ) -> Result<Option<CharRef>, E> {
1991
+ for (other_chars, characters) in &[
1992
+ ("sercy;", "\u{458}"),
1993
+ ("circ;", "\u{135}"),
1994
+ ("math;", "\u{237}"),
1995
+ ("ukcy;", "\u{454}"),
1996
+ ("opf;", "\u{1d55b}"),
1997
+ ("scr;", "\u{1d4bf}"),
1998
+ ("cy;", "\u{439}"),
1999
+ ("fr;", "\u{1d527}"),
2000
+ ] {
2001
+ if try_read(other_chars)? {
2002
+ return Ok(Some(CharRef {
2003
+ name: other_chars,
2004
+ characters,
2005
+ }));
2006
+ }
2007
+ }
2008
+
2009
+ Ok(None)
2010
+ }
2011
+
2012
+ branch_j(try_read)
2013
+ }
2014
+
2015
+ 'k' => {
2016
+ #[allow(non_snake_case)]
2017
+ fn branch_k<E>(
2018
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2019
+ ) -> Result<Option<CharRef>, E> {
2020
+ for (other_chars, characters) in &[
2021
+ ("appav;", "\u{3f0}"),
2022
+ ("cedil;", "\u{137}"),
2023
+ ("green;", "\u{138}"),
2024
+ ("appa;", "\u{3ba}"),
2025
+ ("hcy;", "\u{445}"),
2026
+ ("jcy;", "\u{45c}"),
2027
+ ("opf;", "\u{1d55c}"),
2028
+ ("scr;", "\u{1d4c0}"),
2029
+ ("cy;", "\u{43a}"),
2030
+ ("fr;", "\u{1d528}"),
2031
+ ] {
2032
+ if try_read(other_chars)? {
2033
+ return Ok(Some(CharRef {
2034
+ name: other_chars,
2035
+ characters,
2036
+ }));
2037
+ }
2038
+ }
2039
+
2040
+ Ok(None)
2041
+ }
2042
+
2043
+ branch_k(try_read)
2044
+ }
2045
+
2046
+ 'l' => {
2047
+ #[allow(non_snake_case)]
2048
+ fn branch_l<E>(
2049
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2050
+ ) -> Result<Option<CharRef>, E> {
2051
+ for (other_chars, characters) in &[
2052
+ ("eftrightsquigarrow;", "\u{21ad}"),
2053
+ ("ongleftrightarrow;", "\u{27f7}"),
2054
+ ("eftrightharpoons;", "\u{21cb}"),
2055
+ ("eftharpoondown;", "\u{21bd}"),
2056
+ ("eftrightarrows;", "\u{21c6}"),
2057
+ ("eftleftarrows;", "\u{21c7}"),
2058
+ ("eftrightarrow;", "\u{2194}"),
2059
+ ("eftthreetimes;", "\u{22cb}"),
2060
+ ("ongrightarrow;", "\u{27f6}"),
2061
+ ("ooparrowright;", "\u{21ac}"),
2062
+ ("eftarrowtail;", "\u{21a2}"),
2063
+ ("eftharpoonup;", "\u{21bc}"),
2064
+ ("ongleftarrow;", "\u{27f5}"),
2065
+ ("ooparrowleft;", "\u{21ab}"),
2066
+ ("essapprox;", "\u{2a85}"),
2067
+ ("esseqqgtr;", "\u{2a8b}"),
2068
+ ("moustache;", "\u{23b0}"),
2069
+ ("ongmapsto;", "\u{27fc}"),
2070
+ ("eftarrow;", "\u{2190}"),
2071
+ ("esseqgtr;", "\u{22da}"),
2072
+ ("vertneqq;", "\u{2268}\u{fe00}"),
2073
+ ("aemptyv;", "\u{29b4}"),
2074
+ ("drushar;", "\u{294b}"),
2075
+ ("eqslant;", "\u{2a7d}"),
2076
+ ("esdotor;", "\u{2a83}"),
2077
+ ("lcorner;", "\u{231e}"),
2078
+ ("napprox;", "\u{2a89}"),
2079
+ ("rcorner;", "\u{231f}"),
2080
+ ("urdshar;", "\u{294a}"),
2081
+ ("arrbfs;", "\u{291f}"),
2082
+ ("arrsim;", "\u{2973}"),
2083
+ ("brksld;", "\u{298f}"),
2084
+ ("brkslu;", "\u{298d}"),
2085
+ ("drdhar;", "\u{2967}"),
2086
+ ("esdoto;", "\u{2a81}"),
2087
+ ("essdot;", "\u{22d6}"),
2088
+ ("essgtr;", "\u{2276}"),
2089
+ ("esssim;", "\u{2272}"),
2090
+ ("otimes;", "\u{2a34}"),
2091
+ ("ozenge;", "\u{25ca}"),
2092
+ ("tquest;", "\u{2a7b}"),
2093
+ ("uruhar;", "\u{2966}"),
2094
+ ("Atail;", "\u{291b}"),
2095
+ ("acute;", "\u{13a}"),
2096
+ ("agran;", "\u{2112}"),
2097
+ ("ambda;", "\u{3bb}"),
2098
+ ("angle;", "\u{27e8}"),
2099
+ ("arrfs;", "\u{291d}"),
2100
+ ("arrhk;", "\u{21a9}"),
2101
+ ("arrlp;", "\u{21ab}"),
2102
+ ("arrpl;", "\u{2939}"),
2103
+ ("arrtl;", "\u{21a2}"),
2104
+ ("atail;", "\u{2919}"),
2105
+ ("brace;", "\u{7b}"),
2106
+ ("brack;", "\u{5b}"),
2107
+ ("caron;", "\u{13e}"),
2108
+ ("cedil;", "\u{13c}"),
2109
+ ("dquor;", "\u{201e}"),
2110
+ ("esdot;", "\u{2a7f}"),
2111
+ ("esges;", "\u{2a93}"),
2112
+ ("fisht;", "\u{297c}"),
2113
+ ("floor;", "\u{230a}"),
2114
+ ("harul;", "\u{296a}"),
2115
+ ("lhard;", "\u{296b}"),
2116
+ ("midot;", "\u{140}"),
2117
+ ("moust;", "\u{23b0}"),
2118
+ ("oplus;", "\u{2a2d}"),
2119
+ ("owast;", "\u{2217}"),
2120
+ ("owbar;", "\u{5f}"),
2121
+ ("parlt;", "\u{2993}"),
2122
+ ("rhard;", "\u{296d}"),
2123
+ ("saquo;", "\u{2039}"),
2124
+ ("squor;", "\u{201a}"),
2125
+ ("strok;", "\u{142}"),
2126
+ ("three;", "\u{22cb}"),
2127
+ ("times;", "\u{22c9}"),
2128
+ ("tlarr;", "\u{2976}"),
2129
+ ("trPar;", "\u{2996}"),
2130
+ ("Aarr;", "\u{21da}"),
2131
+ ("Barr;", "\u{290e}"),
2132
+ ("angd;", "\u{2991}"),
2133
+ ("aquo;", "\u{ab}"),
2134
+ ("arrb;", "\u{21e4}"),
2135
+ ("ates;", "\u{2aad}\u{fe00}"),
2136
+ ("barr;", "\u{290c}"),
2137
+ ("bbrk;", "\u{2772}"),
2138
+ ("brke;", "\u{298b}"),
2139
+ ("ceil;", "\u{2308}"),
2140
+ ("dquo;", "\u{201c}"),
2141
+ ("escc;", "\u{2aa8}"),
2142
+ ("hard;", "\u{21bd}"),
2143
+ ("haru;", "\u{21bc}"),
2144
+ ("hblk;", "\u{2584}"),
2145
+ ("larr;", "\u{21c7}"),
2146
+ ("ltri;", "\u{25fa}"),
2147
+ ("neqq;", "\u{2268}"),
2148
+ ("nsim;", "\u{22e6}"),
2149
+ ("oang;", "\u{27ec}"),
2150
+ ("oarr;", "\u{21fd}"),
2151
+ ("obrk;", "\u{27e6}"),
2152
+ ("opar;", "\u{2985}"),
2153
+ ("rarr;", "\u{21c6}"),
2154
+ ("rhar;", "\u{21cb}"),
2155
+ ("rtri;", "\u{22bf}"),
2156
+ ("sime;", "\u{2a8d}"),
2157
+ ("simg;", "\u{2a8f}"),
2158
+ ("squo;", "\u{2018}"),
2159
+ ("tcir;", "\u{2a79}"),
2160
+ ("tdot;", "\u{22d6}"),
2161
+ ("trie;", "\u{22b4}"),
2162
+ ("trif;", "\u{25c2}"),
2163
+ ("Arr;", "\u{21d0}"),
2164
+ ("Har;", "\u{2962}"),
2165
+ ("ang;", "\u{27e8}"),
2166
+ ("aquo", "\u{ab}"),
2167
+ ("arr;", "\u{2190}"),
2168
+ ("ate;", "\u{2aad}"),
2169
+ ("cub;", "\u{7b}"),
2170
+ ("dca;", "\u{2936}"),
2171
+ ("dsh;", "\u{21b2}"),
2172
+ ("eqq;", "\u{2266}"),
2173
+ ("esg;", "\u{22da}\u{fe00}"),
2174
+ ("jcy;", "\u{459}"),
2175
+ ("nap;", "\u{2a89}"),
2176
+ ("neq;", "\u{2a87}"),
2177
+ ("opf;", "\u{1d55d}"),
2178
+ ("ozf;", "\u{29eb}"),
2179
+ ("par;", "\u{28}"),
2180
+ ("scr;", "\u{1d4c1}"),
2181
+ ("sim;", "\u{2272}"),
2182
+ ("sqb;", "\u{5b}"),
2183
+ ("tcc;", "\u{2aa6}"),
2184
+ ("tri;", "\u{25c3}"),
2185
+ ("vnE;", "\u{2268}\u{fe00}"),
2186
+ ("Eg;", "\u{2a8b}"),
2187
+ ("ap;", "\u{2a85}"),
2188
+ ("at;", "\u{2aab}"),
2189
+ ("cy;", "\u{43b}"),
2190
+ ("eg;", "\u{22da}"),
2191
+ ("eq;", "\u{2264}"),
2192
+ ("es;", "\u{2a7d}"),
2193
+ ("fr;", "\u{1d529}"),
2194
+ ("gE;", "\u{2a91}"),
2195
+ ("nE;", "\u{2268}"),
2196
+ ("ne;", "\u{2a87}"),
2197
+ ("oz;", "\u{25ca}"),
2198
+ ("rm;", "\u{200e}"),
2199
+ ("sh;", "\u{21b0}"),
2200
+ ("E;", "\u{2266}"),
2201
+ ("e;", "\u{2264}"),
2202
+ ("g;", "\u{2276}"),
2203
+ ("l;", "\u{226a}"),
2204
+ ("t;", "\u{3c}"),
2205
+ ("t", "\u{3c}"),
2206
+ ] {
2207
+ if try_read(other_chars)? {
2208
+ return Ok(Some(CharRef {
2209
+ name: other_chars,
2210
+ characters,
2211
+ }));
2212
+ }
2213
+ }
2214
+
2215
+ Ok(None)
2216
+ }
2217
+
2218
+ branch_l(try_read)
2219
+ }
2220
+
2221
+ 'm' => {
2222
+ #[allow(non_snake_case)]
2223
+ fn branch_m<E>(
2224
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2225
+ ) -> Result<Option<CharRef>, E> {
2226
+ for (other_chars, characters) in &[
2227
+ ("easuredangle;", "\u{2221}"),
2228
+ ("apstodown;", "\u{21a7}"),
2229
+ ("apstoleft;", "\u{21a4}"),
2230
+ ("apstoup;", "\u{21a5}"),
2231
+ ("ultimap;", "\u{22b8}"),
2232
+ ("altese;", "\u{2720}"),
2233
+ ("inusdu;", "\u{2a2a}"),
2234
+ ("apsto;", "\u{21a6}"),
2235
+ ("arker;", "\u{25ae}"),
2236
+ ("comma;", "\u{2a29}"),
2237
+ ("idast;", "\u{2a}"),
2238
+ ("idcir;", "\u{2af0}"),
2239
+ ("iddot;", "\u{b7}"),
2240
+ ("inusb;", "\u{229f}"),
2241
+ ("inusd;", "\u{2238}"),
2242
+ ("nplus;", "\u{2213}"),
2243
+ ("odels;", "\u{22a7}"),
2244
+ ("stpos;", "\u{223e}"),
2245
+ ("DDot;", "\u{223a}"),
2246
+ ("dash;", "\u{2014}"),
2247
+ ("icro;", "\u{b5}"),
2248
+ ("iddot", "\u{b7}"),
2249
+ ("inus;", "\u{2212}"),
2250
+ ("umap;", "\u{22b8}"),
2251
+ ("acr;", "\u{af}"),
2252
+ ("ale;", "\u{2642}"),
2253
+ ("alt;", "\u{2720}"),
2254
+ ("icro", "\u{b5}"),
2255
+ ("lcp;", "\u{2adb}"),
2256
+ ("ldr;", "\u{2026}"),
2257
+ ("opf;", "\u{1d55e}"),
2258
+ ("scr;", "\u{1d4c2}"),
2259
+ ("acr", "\u{af}"),
2260
+ ("ap;", "\u{21a6}"),
2261
+ ("cy;", "\u{43c}"),
2262
+ ("fr;", "\u{1d52a}"),
2263
+ ("ho;", "\u{2127}"),
2264
+ ("id;", "\u{2223}"),
2265
+ ("p;", "\u{2213}"),
2266
+ ("u;", "\u{3bc}"),
2267
+ ] {
2268
+ if try_read(other_chars)? {
2269
+ return Ok(Some(CharRef {
2270
+ name: other_chars,
2271
+ characters,
2272
+ }));
2273
+ }
2274
+ }
2275
+
2276
+ Ok(None)
2277
+ }
2278
+
2279
+ branch_m(try_read)
2280
+ }
2281
+
2282
+ 'n' => {
2283
+ #[allow(non_snake_case)]
2284
+ fn branch_n<E>(
2285
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2286
+ ) -> Result<Option<CharRef>, E> {
2287
+ for (other_chars, characters) in &[
2288
+ ("trianglerighteq;", "\u{22ed}"),
2289
+ ("Leftrightarrow;", "\u{21ce}"),
2290
+ ("leftrightarrow;", "\u{21ae}"),
2291
+ ("trianglelefteq;", "\u{22ec}"),
2292
+ ("shortparallel;", "\u{2226}"),
2293
+ ("triangleright;", "\u{22eb}"),
2294
+ ("triangleleft;", "\u{22ea}"),
2295
+ ("Rightarrow;", "\u{21cf}"),
2296
+ ("rightarrow;", "\u{219b}"),
2297
+ ("Leftarrow;", "\u{21cd}"),
2298
+ ("leftarrow;", "\u{219a}"),
2299
+ ("subseteqq;", "\u{2ac5}\u{338}"),
2300
+ ("supseteqq;", "\u{2ac6}\u{338}"),
2301
+ ("geqslant;", "\u{2a7e}\u{338}"),
2302
+ ("leqslant;", "\u{2a7d}\u{338}"),
2303
+ ("parallel;", "\u{2226}"),
2304
+ ("shortmid;", "\u{2224}"),
2305
+ ("subseteq;", "\u{2288}"),
2306
+ ("supseteq;", "\u{2289}"),
2307
+ ("aturals;", "\u{2115}"),
2308
+ ("congdot;", "\u{2a6d}\u{338}"),
2309
+ ("otindot;", "\u{22f5}\u{338}"),
2310
+ ("approx;", "\u{2249}"),
2311
+ ("atural;", "\u{266e}"),
2312
+ ("earrow;", "\u{2197}"),
2313
+ ("exists;", "\u{2204}"),
2314
+ ("otinva;", "\u{2209}"),
2315
+ ("otinvb;", "\u{22f7}"),
2316
+ ("otinvc;", "\u{22f6}"),
2317
+ ("otniva;", "\u{220c}"),
2318
+ ("otnivb;", "\u{22fe}"),
2319
+ ("otnivc;", "\u{22fd}"),
2320
+ ("polint;", "\u{2a14}"),
2321
+ ("preceq;", "\u{2aaf}\u{338}"),
2322
+ ("sqsube;", "\u{22e2}"),
2323
+ ("sqsupe;", "\u{22e3}"),
2324
+ ("subset;", "\u{2282}\u{20d2}"),
2325
+ ("succeq;", "\u{2ab0}\u{338}"),
2326
+ ("supset;", "\u{2283}\u{20d2}"),
2327
+ ("vinfin;", "\u{29de}"),
2328
+ ("vltrie;", "\u{22b4}\u{20d2}"),
2329
+ ("vrtrie;", "\u{22b5}\u{20d2}"),
2330
+ ("warrow;", "\u{2196}"),
2331
+ ("VDash;", "\u{22af}"),
2332
+ ("Vdash;", "\u{22ae}"),
2333
+ ("acute;", "\u{144}"),
2334
+ ("bumpe;", "\u{224f}\u{338}"),
2335
+ ("caron;", "\u{148}"),
2336
+ ("cedil;", "\u{146}"),
2337
+ ("earhk;", "\u{2924}"),
2338
+ ("equiv;", "\u{2262}"),
2339
+ ("esear;", "\u{2928}"),
2340
+ ("exist;", "\u{2204}"),
2341
+ ("ltrie;", "\u{22ec}"),
2342
+ ("otinE;", "\u{22f9}\u{338}"),
2343
+ ("parsl;", "\u{2afd}\u{20e5}"),
2344
+ ("prcue;", "\u{22e0}"),
2345
+ ("rarrc;", "\u{2933}\u{338}"),
2346
+ ("rarrw;", "\u{219d}\u{338}"),
2347
+ ("rtrie;", "\u{22ed}"),
2348
+ ("sccue;", "\u{22e1}"),
2349
+ ("simeq;", "\u{2244}"),
2350
+ ("tilde;", "\u{f1}"),
2351
+ ("umero;", "\u{2116}"),
2352
+ ("vDash;", "\u{22ad}"),
2353
+ ("vHarr;", "\u{2904}"),
2354
+ ("vdash;", "\u{22ac}"),
2355
+ ("vlArr;", "\u{2902}"),
2356
+ ("vrArr;", "\u{2903}"),
2357
+ ("warhk;", "\u{2923}"),
2358
+ ("wnear;", "\u{2927}"),
2359
+ ("abla;", "\u{2207}"),
2360
+ ("apid;", "\u{224b}\u{338}"),
2361
+ ("apos;", "\u{149}"),
2362
+ ("atur;", "\u{266e}"),
2363
+ ("bump;", "\u{224e}\u{338}"),
2364
+ ("cong;", "\u{2247}"),
2365
+ ("dash;", "\u{2013}"),
2366
+ ("eArr;", "\u{21d7}"),
2367
+ ("earr;", "\u{2197}"),
2368
+ ("edot;", "\u{2250}\u{338}"),
2369
+ ("esim;", "\u{2242}\u{338}"),
2370
+ ("geqq;", "\u{2267}\u{338}"),
2371
+ ("gsim;", "\u{2275}"),
2372
+ ("hArr;", "\u{21ce}"),
2373
+ ("harr;", "\u{21ae}"),
2374
+ ("hpar;", "\u{2af2}"),
2375
+ ("lArr;", "\u{21cd}"),
2376
+ ("larr;", "\u{219a}"),
2377
+ ("leqq;", "\u{2266}\u{338}"),
2378
+ ("less;", "\u{226e}"),
2379
+ ("lsim;", "\u{2274}"),
2380
+ ("ltri;", "\u{22ea}"),
2381
+ ("otin;", "\u{2209}"),
2382
+ ("otni;", "\u{220c}"),
2383
+ ("part;", "\u{2202}\u{338}"),
2384
+ ("prec;", "\u{2280}"),
2385
+ ("rArr;", "\u{21cf}"),
2386
+ ("rarr;", "\u{219b}"),
2387
+ ("rtri;", "\u{22eb}"),
2388
+ ("sime;", "\u{2244}"),
2389
+ ("smid;", "\u{2224}"),
2390
+ ("spar;", "\u{2226}"),
2391
+ ("subE;", "\u{2ac5}\u{338}"),
2392
+ ("sube;", "\u{2288}"),
2393
+ ("succ;", "\u{2281}"),
2394
+ ("supE;", "\u{2ac6}\u{338}"),
2395
+ ("supe;", "\u{2289}"),
2396
+ ("tilde", "\u{f1}"),
2397
+ ("umsp;", "\u{2007}"),
2398
+ ("vsim;", "\u{223c}\u{20d2}"),
2399
+ ("wArr;", "\u{21d6}"),
2400
+ ("warr;", "\u{2196}"),
2401
+ ("Gtv;", "\u{226b}\u{338}"),
2402
+ ("Ltv;", "\u{226a}\u{338}"),
2403
+ ("ang;", "\u{2220}\u{20d2}"),
2404
+ ("apE;", "\u{2a70}\u{338}"),
2405
+ ("bsp;", "\u{a0}"),
2406
+ ("cap;", "\u{2a43}"),
2407
+ ("cup;", "\u{2a42}"),
2408
+ ("geq;", "\u{2271}"),
2409
+ ("ges;", "\u{2a7e}\u{338}"),
2410
+ ("gtr;", "\u{226f}"),
2411
+ ("isd;", "\u{22fa}"),
2412
+ ("jcy;", "\u{45a}"),
2413
+ ("ldr;", "\u{2025}"),
2414
+ ("leq;", "\u{2270}"),
2415
+ ("les;", "\u{2a7d}\u{338}"),
2416
+ ("mid;", "\u{2224}"),
2417
+ ("opf;", "\u{1d55f}"),
2418
+ ("par;", "\u{2226}"),
2419
+ ("pre;", "\u{2aaf}\u{338}"),
2420
+ ("sce;", "\u{2ab0}\u{338}"),
2421
+ ("scr;", "\u{1d4c3}"),
2422
+ ("sim;", "\u{2241}"),
2423
+ ("sub;", "\u{2284}"),
2424
+ ("sup;", "\u{2285}"),
2425
+ ("tgl;", "\u{2279}"),
2426
+ ("tlg;", "\u{2278}"),
2427
+ ("vap;", "\u{224d}\u{20d2}"),
2428
+ ("vge;", "\u{2265}\u{20d2}"),
2429
+ ("vgt;", "\u{3e}\u{20d2}"),
2430
+ ("vle;", "\u{2264}\u{20d2}"),
2431
+ ("vlt;", "\u{3c}\u{20d2}"),
2432
+ ("Gg;", "\u{22d9}\u{338}"),
2433
+ ("Gt;", "\u{226b}\u{20d2}"),
2434
+ ("Ll;", "\u{22d8}\u{338}"),
2435
+ ("Lt;", "\u{226a}\u{20d2}"),
2436
+ ("ap;", "\u{2249}"),
2437
+ ("bsp", "\u{a0}"),
2438
+ ("cy;", "\u{43d}"),
2439
+ ("fr;", "\u{1d52b}"),
2440
+ ("gE;", "\u{2267}\u{338}"),
2441
+ ("ge;", "\u{2271}"),
2442
+ ("gt;", "\u{226f}"),
2443
+ ("is;", "\u{22fc}"),
2444
+ ("iv;", "\u{220b}"),
2445
+ ("lE;", "\u{2266}\u{338}"),
2446
+ ("le;", "\u{2270}"),
2447
+ ("lt;", "\u{226e}"),
2448
+ ("ot;", "\u{ac}"),
2449
+ ("pr;", "\u{2280}"),
2450
+ ("sc;", "\u{2281}"),
2451
+ ("um;", "\u{23}"),
2452
+ ("e;", "\u{2260}"),
2453
+ ("i;", "\u{220b}"),
2454
+ ("ot", "\u{ac}"),
2455
+ ("u;", "\u{3bd}"),
2456
+ ] {
2457
+ if try_read(other_chars)? {
2458
+ return Ok(Some(CharRef {
2459
+ name: other_chars,
2460
+ characters,
2461
+ }));
2462
+ }
2463
+ }
2464
+
2465
+ Ok(None)
2466
+ }
2467
+
2468
+ branch_n(try_read)
2469
+ }
2470
+
2471
+ 'o' => {
2472
+ #[allow(non_snake_case)]
2473
+ fn branch_o<E>(
2474
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2475
+ ) -> Result<Option<CharRef>, E> {
2476
+ for (other_chars, characters) in &[
2477
+ ("timesas;", "\u{2a36}"),
2478
+ ("lcross;", "\u{29bb}"),
2479
+ ("micron;", "\u{3bf}"),
2480
+ ("rderof;", "\u{2134}"),
2481
+ ("rslope;", "\u{2a57}"),
2482
+ ("acute;", "\u{f3}"),
2483
+ ("dblac;", "\u{151}"),
2484
+ ("dsold;", "\u{29bc}"),
2485
+ ("grave;", "\u{f2}"),
2486
+ ("minus;", "\u{2296}"),
2487
+ ("rigof;", "\u{22b6}"),
2488
+ ("slash;", "\u{f8}"),
2489
+ ("tilde;", "\u{f5}"),
2490
+ ("times;", "\u{2297}"),
2491
+ ("acute", "\u{f3}"),
2492
+ ("circ;", "\u{f4}"),
2493
+ ("dash;", "\u{229d}"),
2494
+ ("elig;", "\u{153}"),
2495
+ ("fcir;", "\u{29bf}"),
2496
+ ("grave", "\u{f2}"),
2497
+ ("hbar;", "\u{29b5}"),
2498
+ ("larr;", "\u{21ba}"),
2499
+ ("lcir;", "\u{29be}"),
2500
+ ("line;", "\u{203e}"),
2501
+ ("macr;", "\u{14d}"),
2502
+ ("mega;", "\u{3c9}"),
2503
+ ("perp;", "\u{29b9}"),
2504
+ ("plus;", "\u{2295}"),
2505
+ ("rarr;", "\u{21bb}"),
2506
+ ("rder;", "\u{2134}"),
2507
+ ("slash", "\u{f8}"),
2508
+ ("tilde", "\u{f5}"),
2509
+ ("vbar;", "\u{233d}"),
2510
+ ("ast;", "\u{229b}"),
2511
+ ("cir;", "\u{229a}"),
2512
+ ("circ", "\u{f4}"),
2513
+ ("div;", "\u{2a38}"),
2514
+ ("dot;", "\u{2299}"),
2515
+ ("gon;", "\u{2db}"),
2516
+ ("int;", "\u{222e}"),
2517
+ ("mid;", "\u{29b6}"),
2518
+ ("opf;", "\u{1d560}"),
2519
+ ("par;", "\u{29b7}"),
2520
+ ("rdf;", "\u{aa}"),
2521
+ ("rdm;", "\u{ba}"),
2522
+ ("ror;", "\u{2a56}"),
2523
+ ("scr;", "\u{2134}"),
2524
+ ("sol;", "\u{2298}"),
2525
+ ("uml;", "\u{f6}"),
2526
+ ("cy;", "\u{43e}"),
2527
+ ("fr;", "\u{1d52c}"),
2528
+ ("gt;", "\u{29c1}"),
2529
+ ("hm;", "\u{3a9}"),
2530
+ ("lt;", "\u{29c0}"),
2531
+ ("rd;", "\u{2a5d}"),
2532
+ ("rdf", "\u{aa}"),
2533
+ ("rdm", "\u{ba}"),
2534
+ ("rv;", "\u{2a5b}"),
2535
+ ("uml", "\u{f6}"),
2536
+ ("S;", "\u{24c8}"),
2537
+ ("r;", "\u{2228}"),
2538
+ ] {
2539
+ if try_read(other_chars)? {
2540
+ return Ok(Some(CharRef {
2541
+ name: other_chars,
2542
+ characters,
2543
+ }));
2544
+ }
2545
+ }
2546
+
2547
+ Ok(None)
2548
+ }
2549
+
2550
+ branch_o(try_read)
2551
+ }
2552
+
2553
+ 'p' => {
2554
+ #[allow(non_snake_case)]
2555
+ fn branch_p<E>(
2556
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2557
+ ) -> Result<Option<CharRef>, E> {
2558
+ for (other_chars, characters) in &[
2559
+ ("reccurlyeq;", "\u{227c}"),
2560
+ ("recnapprox;", "\u{2ab9}"),
2561
+ ("recapprox;", "\u{2ab7}"),
2562
+ ("itchfork;", "\u{22d4}"),
2563
+ ("arallel;", "\u{2225}"),
2564
+ ("lusacir;", "\u{2a23}"),
2565
+ ("ointint;", "\u{2a15}"),
2566
+ ("recneqq;", "\u{2ab5}"),
2567
+ ("recnsim;", "\u{22e8}"),
2568
+ ("rofalar;", "\u{232e}"),
2569
+ ("rofline;", "\u{2312}"),
2570
+ ("rofsurf;", "\u{2313}"),
2571
+ ("ertenk;", "\u{2031}"),
2572
+ ("lanckh;", "\u{210e}"),
2573
+ ("luscir;", "\u{2a22}"),
2574
+ ("lussim;", "\u{2a26}"),
2575
+ ("lustwo;", "\u{2a27}"),
2576
+ ("recsim;", "\u{227e}"),
2577
+ ("arsim;", "\u{2af3}"),
2578
+ ("ercnt;", "\u{25}"),
2579
+ ("eriod;", "\u{2e}"),
2580
+ ("ermil;", "\u{2030}"),
2581
+ ("hmmat;", "\u{2133}"),
2582
+ ("lanck;", "\u{210f}"),
2583
+ ("lankv;", "\u{210f}"),
2584
+ ("lusdo;", "\u{2214}"),
2585
+ ("lusdu;", "\u{2a25}"),
2586
+ ("lusmn;", "\u{b1}"),
2587
+ ("receq;", "\u{2aaf}"),
2588
+ ("rimes;", "\u{2119}"),
2589
+ ("rnsim;", "\u{22e8}"),
2590
+ ("ropto;", "\u{221d}"),
2591
+ ("rurel;", "\u{22b0}"),
2592
+ ("uncsp;", "\u{2008}"),
2593
+ ("arsl;", "\u{2afd}"),
2594
+ ("hone;", "\u{260e}"),
2595
+ ("lusb;", "\u{229e}"),
2596
+ ("luse;", "\u{2a72}"),
2597
+ ("lusmn", "\u{b1}"),
2598
+ ("ound;", "\u{a3}"),
2599
+ ("rcue;", "\u{227c}"),
2600
+ ("rime;", "\u{2032}"),
2601
+ ("rnap;", "\u{2ab9}"),
2602
+ ("rsim;", "\u{227e}"),
2603
+ ("ara;", "\u{b6}"),
2604
+ ("art;", "\u{2202}"),
2605
+ ("erp;", "\u{22a5}"),
2606
+ ("hiv;", "\u{3d5}"),
2607
+ ("lus;", "\u{2b}"),
2608
+ ("opf;", "\u{1d561}"),
2609
+ ("ound", "\u{a3}"),
2610
+ ("rap;", "\u{2ab7}"),
2611
+ ("rec;", "\u{227a}"),
2612
+ ("rnE;", "\u{2ab5}"),
2613
+ ("rod;", "\u{220f}"),
2614
+ ("rop;", "\u{221d}"),
2615
+ ("scr;", "\u{1d4c5}"),
2616
+ ("ar;", "\u{2225}"),
2617
+ ("ara", "\u{b6}"),
2618
+ ("cy;", "\u{43f}"),
2619
+ ("fr;", "\u{1d52d}"),
2620
+ ("hi;", "\u{3c6}"),
2621
+ ("iv;", "\u{3d6}"),
2622
+ ("rE;", "\u{2ab3}"),
2623
+ ("re;", "\u{2aaf}"),
2624
+ ("si;", "\u{3c8}"),
2625
+ ("i;", "\u{3c0}"),
2626
+ ("m;", "\u{b1}"),
2627
+ ("r;", "\u{227a}"),
2628
+ ] {
2629
+ if try_read(other_chars)? {
2630
+ return Ok(Some(CharRef {
2631
+ name: other_chars,
2632
+ characters,
2633
+ }));
2634
+ }
2635
+ }
2636
+
2637
+ Ok(None)
2638
+ }
2639
+
2640
+ branch_p(try_read)
2641
+ }
2642
+
2643
+ 'q' => {
2644
+ #[allow(non_snake_case)]
2645
+ fn branch_q<E>(
2646
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2647
+ ) -> Result<Option<CharRef>, E> {
2648
+ for (other_chars, characters) in &[
2649
+ ("uaternions;", "\u{210d}"),
2650
+ ("uatint;", "\u{2a16}"),
2651
+ ("uesteq;", "\u{225f}"),
2652
+ ("prime;", "\u{2057}"),
2653
+ ("uest;", "\u{3f}"),
2654
+ ("int;", "\u{2a0c}"),
2655
+ ("opf;", "\u{1d562}"),
2656
+ ("scr;", "\u{1d4c6}"),
2657
+ ("uot;", "\u{22}"),
2658
+ ("fr;", "\u{1d52e}"),
2659
+ ("uot", "\u{22}"),
2660
+ ] {
2661
+ if try_read(other_chars)? {
2662
+ return Ok(Some(CharRef {
2663
+ name: other_chars,
2664
+ characters,
2665
+ }));
2666
+ }
2667
+ }
2668
+
2669
+ Ok(None)
2670
+ }
2671
+
2672
+ branch_q(try_read)
2673
+ }
2674
+
2675
+ 'r' => {
2676
+ #[allow(non_snake_case)]
2677
+ fn branch_r<E>(
2678
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2679
+ ) -> Result<Option<CharRef>, E> {
2680
+ for (other_chars, characters) in &[
2681
+ ("ightleftharpoons;", "\u{21cc}"),
2682
+ ("ightharpoondown;", "\u{21c1}"),
2683
+ ("ightrightarrows;", "\u{21c9}"),
2684
+ ("ightleftarrows;", "\u{21c4}"),
2685
+ ("ightsquigarrow;", "\u{219d}"),
2686
+ ("ightthreetimes;", "\u{22cc}"),
2687
+ ("ightarrowtail;", "\u{21a3}"),
2688
+ ("ightharpoonup;", "\u{21c0}"),
2689
+ ("isingdotseq;", "\u{2253}"),
2690
+ ("ightarrow;", "\u{2192}"),
2691
+ ("moustache;", "\u{23b1}"),
2692
+ ("ationals;", "\u{211a}"),
2693
+ ("aemptyv;", "\u{29b3}"),
2694
+ ("ealpart;", "\u{211c}"),
2695
+ ("ppolint;", "\u{2a12}"),
2696
+ ("triltri;", "\u{29ce}"),
2697
+ ("arrbfs;", "\u{2920}"),
2698
+ ("arrsim;", "\u{2974}"),
2699
+ ("brksld;", "\u{298e}"),
2700
+ ("brkslu;", "\u{2990}"),
2701
+ ("dldhar;", "\u{2969}"),
2702
+ ("ealine;", "\u{211b}"),
2703
+ ("otimes;", "\u{2a35}"),
2704
+ ("uluhar;", "\u{2968}"),
2705
+ ("Atail;", "\u{291c}"),
2706
+ ("acute;", "\u{155}"),
2707
+ ("angle;", "\u{27e9}"),
2708
+ ("arrap;", "\u{2975}"),
2709
+ ("arrfs;", "\u{291e}"),
2710
+ ("arrhk;", "\u{21aa}"),
2711
+ ("arrlp;", "\u{21ac}"),
2712
+ ("arrpl;", "\u{2945}"),
2713
+ ("arrtl;", "\u{21a3}"),
2714
+ ("atail;", "\u{291a}"),
2715
+ ("brace;", "\u{7d}"),
2716
+ ("brack;", "\u{5d}"),
2717
+ ("caron;", "\u{159}"),
2718
+ ("cedil;", "\u{157}"),
2719
+ ("dquor;", "\u{201d}"),
2720
+ ("fisht;", "\u{297d}"),
2721
+ ("floor;", "\u{230b}"),
2722
+ ("harul;", "\u{296c}"),
2723
+ ("moust;", "\u{23b1}"),
2724
+ ("oplus;", "\u{2a2e}"),
2725
+ ("pargt;", "\u{2994}"),
2726
+ ("saquo;", "\u{203a}"),
2727
+ ("squor;", "\u{2019}"),
2728
+ ("three;", "\u{22cc}"),
2729
+ ("times;", "\u{22ca}"),
2730
+ ("Aarr;", "\u{21db}"),
2731
+ ("Barr;", "\u{290f}"),
2732
+ ("adic;", "\u{221a}"),
2733
+ ("angd;", "\u{2992}"),
2734
+ ("ange;", "\u{29a5}"),
2735
+ ("aquo;", "\u{bb}"),
2736
+ ("arrb;", "\u{21e5}"),
2737
+ ("arrc;", "\u{2933}"),
2738
+ ("arrw;", "\u{219d}"),
2739
+ ("atio;", "\u{2236}"),
2740
+ ("barr;", "\u{290d}"),
2741
+ ("bbrk;", "\u{2773}"),
2742
+ ("brke;", "\u{298c}"),
2743
+ ("ceil;", "\u{2309}"),
2744
+ ("dquo;", "\u{201d}"),
2745
+ ("eals;", "\u{211d}"),
2746
+ ("hard;", "\u{21c1}"),
2747
+ ("haru;", "\u{21c0}"),
2748
+ ("larr;", "\u{21c4}"),
2749
+ ("lhar;", "\u{21cc}"),
2750
+ ("nmid;", "\u{2aee}"),
2751
+ ("oang;", "\u{27ed}"),
2752
+ ("oarr;", "\u{21fe}"),
2753
+ ("obrk;", "\u{27e7}"),
2754
+ ("opar;", "\u{2986}"),
2755
+ ("rarr;", "\u{21c9}"),
2756
+ ("squo;", "\u{2019}"),
2757
+ ("trie;", "\u{22b5}"),
2758
+ ("trif;", "\u{25b8}"),
2759
+ ("Arr;", "\u{21d2}"),
2760
+ ("Har;", "\u{2964}"),
2761
+ ("ace;", "\u{223d}\u{331}"),
2762
+ ("ang;", "\u{27e9}"),
2763
+ ("aquo", "\u{bb}"),
2764
+ ("arr;", "\u{2192}"),
2765
+ ("cub;", "\u{7d}"),
2766
+ ("dca;", "\u{2937}"),
2767
+ ("dsh;", "\u{21b3}"),
2768
+ ("eal;", "\u{211c}"),
2769
+ ("ect;", "\u{25ad}"),
2770
+ ("hov;", "\u{3f1}"),
2771
+ ("ing;", "\u{2da}"),
2772
+ ("opf;", "\u{1d563}"),
2773
+ ("par;", "\u{29}"),
2774
+ ("scr;", "\u{1d4c7}"),
2775
+ ("sqb;", "\u{5d}"),
2776
+ ("tri;", "\u{25b9}"),
2777
+ ("cy;", "\u{440}"),
2778
+ ("eg;", "\u{ae}"),
2779
+ ("fr;", "\u{1d52f}"),
2780
+ ("ho;", "\u{3c1}"),
2781
+ ("lm;", "\u{200f}"),
2782
+ ("sh;", "\u{21b1}"),
2783
+ ("eg", "\u{ae}"),
2784
+ ("x;", "\u{211e}"),
2785
+ ] {
2786
+ if try_read(other_chars)? {
2787
+ return Ok(Some(CharRef {
2788
+ name: other_chars,
2789
+ characters,
2790
+ }));
2791
+ }
2792
+ }
2793
+
2794
+ Ok(None)
2795
+ }
2796
+
2797
+ branch_r(try_read)
2798
+ }
2799
+
2800
+ 's' => {
2801
+ #[allow(non_snake_case)]
2802
+ fn branch_s<E>(
2803
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2804
+ ) -> Result<Option<CharRef>, E> {
2805
+ for (other_chars, characters) in &[
2806
+ ("traightepsilon;", "\u{3f5}"),
2807
+ ("hortparallel;", "\u{2225}"),
2808
+ ("mallsetminus;", "\u{2216}"),
2809
+ ("traightphi;", "\u{3d5}"),
2810
+ ("ucccurlyeq;", "\u{227d}"),
2811
+ ("uccnapprox;", "\u{2aba}"),
2812
+ ("qsubseteq;", "\u{2291}"),
2813
+ ("qsupseteq;", "\u{2292}"),
2814
+ ("ubsetneqq;", "\u{2acb}"),
2815
+ ("uccapprox;", "\u{2ab8}"),
2816
+ ("upsetneqq;", "\u{2acc}"),
2817
+ ("padesuit;", "\u{2660}"),
2818
+ ("ubseteqq;", "\u{2ac5}"),
2819
+ ("ubsetneq;", "\u{228a}"),
2820
+ ("upseteqq;", "\u{2ac6}"),
2821
+ ("upsetneq;", "\u{228b}"),
2822
+ ("cpolint;", "\u{2a13}"),
2823
+ ("etminus;", "\u{2216}"),
2824
+ ("hortmid;", "\u{2223}"),
2825
+ ("meparsl;", "\u{29e4}"),
2826
+ ("qsubset;", "\u{228f}"),
2827
+ ("qsupset;", "\u{2290}"),
2828
+ ("ubseteq;", "\u{2286}"),
2829
+ ("uccneqq;", "\u{2ab6}"),
2830
+ ("uccnsim;", "\u{22e9}"),
2831
+ ("upseteq;", "\u{2287}"),
2832
+ ("earrow;", "\u{2198}"),
2833
+ ("implus;", "\u{2a24}"),
2834
+ ("imrarr;", "\u{2972}"),
2835
+ ("ubedot;", "\u{2ac3}"),
2836
+ ("ubmult;", "\u{2ac1}"),
2837
+ ("ubplus;", "\u{2abf}"),
2838
+ ("ubrarr;", "\u{2979}"),
2839
+ ("uccsim;", "\u{227f}"),
2840
+ ("updsub;", "\u{2ad8}"),
2841
+ ("upedot;", "\u{2ac4}"),
2842
+ ("uphsol;", "\u{27c9}"),
2843
+ ("uphsub;", "\u{2ad7}"),
2844
+ ("uplarr;", "\u{297b}"),
2845
+ ("upmult;", "\u{2ac2}"),
2846
+ ("upplus;", "\u{2ac0}"),
2847
+ ("warrow;", "\u{2199}"),
2848
+ ("acute;", "\u{15b}"),
2849
+ ("caron;", "\u{161}"),
2850
+ ("cedil;", "\u{15f}"),
2851
+ ("cnsim;", "\u{22e9}"),
2852
+ ("earhk;", "\u{2925}"),
2853
+ ("eswar;", "\u{2929}"),
2854
+ ("frown;", "\u{2322}"),
2855
+ ("hchcy;", "\u{449}"),
2856
+ ("igmaf;", "\u{3c2}"),
2857
+ ("igmav;", "\u{3c2}"),
2858
+ ("imdot;", "\u{2a6a}"),
2859
+ ("mashp;", "\u{2a33}"),
2860
+ ("oftcy;", "\u{44c}"),
2861
+ ("olbar;", "\u{233f}"),
2862
+ ("pades;", "\u{2660}"),
2863
+ ("qcaps;", "\u{2293}\u{fe00}"),
2864
+ ("qcups;", "\u{2294}\u{fe00}"),
2865
+ ("qsube;", "\u{2291}"),
2866
+ ("qsupe;", "\u{2292}"),
2867
+ ("quare;", "\u{25a1}"),
2868
+ ("quarf;", "\u{25aa}"),
2869
+ ("setmn;", "\u{2216}"),
2870
+ ("smile;", "\u{2323}"),
2871
+ ("starf;", "\u{22c6}"),
2872
+ ("ubdot;", "\u{2abd}"),
2873
+ ("ubset;", "\u{2282}"),
2874
+ ("ubsim;", "\u{2ac7}"),
2875
+ ("ubsub;", "\u{2ad5}"),
2876
+ ("ubsup;", "\u{2ad3}"),
2877
+ ("ucceq;", "\u{2ab0}"),
2878
+ ("updot;", "\u{2abe}"),
2879
+ ("upset;", "\u{2283}"),
2880
+ ("upsim;", "\u{2ac8}"),
2881
+ ("upsub;", "\u{2ad4}"),
2882
+ ("upsup;", "\u{2ad6}"),
2883
+ ("warhk;", "\u{2926}"),
2884
+ ("wnwar;", "\u{292a}"),
2885
+ ("bquo;", "\u{201a}"),
2886
+ ("ccue;", "\u{227d}"),
2887
+ ("circ;", "\u{15d}"),
2888
+ ("cnap;", "\u{2aba}"),
2889
+ ("csim;", "\u{227f}"),
2890
+ ("dotb;", "\u{22a1}"),
2891
+ ("dote;", "\u{2a66}"),
2892
+ ("eArr;", "\u{21d8}"),
2893
+ ("earr;", "\u{2198}"),
2894
+ ("etmn;", "\u{2216}"),
2895
+ ("harp;", "\u{266f}"),
2896
+ ("igma;", "\u{3c3}"),
2897
+ ("imeq;", "\u{2243}"),
2898
+ ("imgE;", "\u{2aa0}"),
2899
+ ("imlE;", "\u{2a9f}"),
2900
+ ("imne;", "\u{2246}"),
2901
+ ("larr;", "\u{2190}"),
2902
+ ("mile;", "\u{2323}"),
2903
+ ("mtes;", "\u{2aac}\u{fe00}"),
2904
+ ("qcap;", "\u{2293}"),
2905
+ ("qcup;", "\u{2294}"),
2906
+ ("qsub;", "\u{228f}"),
2907
+ ("qsup;", "\u{2290}"),
2908
+ ("rarr;", "\u{2192}"),
2909
+ ("tarf;", "\u{2605}"),
2910
+ ("trns;", "\u{af}"),
2911
+ ("ubnE;", "\u{2acb}"),
2912
+ ("ubne;", "\u{228a}"),
2913
+ ("upnE;", "\u{2acc}"),
2914
+ ("upne;", "\u{228b}"),
2915
+ ("wArr;", "\u{21d9}"),
2916
+ ("warr;", "\u{2199}"),
2917
+ ("zlig;", "\u{df}"),
2918
+ ("cap;", "\u{2ab8}"),
2919
+ ("cnE;", "\u{2ab6}"),
2920
+ ("dot;", "\u{22c5}"),
2921
+ ("ect;", "\u{a7}"),
2922
+ ("emi;", "\u{3b}"),
2923
+ ("ext;", "\u{2736}"),
2924
+ ("hcy;", "\u{448}"),
2925
+ ("ime;", "\u{2243}"),
2926
+ ("img;", "\u{2a9e}"),
2927
+ ("iml;", "\u{2a9d}"),
2928
+ ("mid;", "\u{2223}"),
2929
+ ("mte;", "\u{2aac}"),
2930
+ ("olb;", "\u{29c4}"),
2931
+ ("opf;", "\u{1d564}"),
2932
+ ("par;", "\u{2225}"),
2933
+ ("quf;", "\u{25aa}"),
2934
+ ("scr;", "\u{1d4c8}"),
2935
+ ("tar;", "\u{2606}"),
2936
+ ("ubE;", "\u{2ac5}"),
2937
+ ("ube;", "\u{2286}"),
2938
+ ("ucc;", "\u{227b}"),
2939
+ ("ung;", "\u{266a}"),
2940
+ ("up1;", "\u{b9}"),
2941
+ ("up2;", "\u{b2}"),
2942
+ ("up3;", "\u{b3}"),
2943
+ ("upE;", "\u{2ac6}"),
2944
+ ("upe;", "\u{2287}"),
2945
+ ("zlig", "\u{df}"),
2946
+ ("cE;", "\u{2ab4}"),
2947
+ ("ce;", "\u{2ab0}"),
2948
+ ("cy;", "\u{441}"),
2949
+ ("ect", "\u{a7}"),
2950
+ ("fr;", "\u{1d530}"),
2951
+ ("hy;", "\u{ad}"),
2952
+ ("im;", "\u{223c}"),
2953
+ ("mt;", "\u{2aaa}"),
2954
+ ("ol;", "\u{2f}"),
2955
+ ("qu;", "\u{25a1}"),
2956
+ ("ub;", "\u{2282}"),
2957
+ ("um;", "\u{2211}"),
2958
+ ("up1", "\u{b9}"),
2959
+ ("up2", "\u{b2}"),
2960
+ ("up3", "\u{b3}"),
2961
+ ("up;", "\u{2283}"),
2962
+ ("c;", "\u{227b}"),
2963
+ ("hy", "\u{ad}"),
2964
+ ] {
2965
+ if try_read(other_chars)? {
2966
+ return Ok(Some(CharRef {
2967
+ name: other_chars,
2968
+ characters,
2969
+ }));
2970
+ }
2971
+ }
2972
+
2973
+ Ok(None)
2974
+ }
2975
+
2976
+ branch_s(try_read)
2977
+ }
2978
+
2979
+ 't' => {
2980
+ #[allow(non_snake_case)]
2981
+ fn branch_t<E>(
2982
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
2983
+ ) -> Result<Option<CharRef>, E> {
2984
+ for (other_chars, characters) in &[
2985
+ ("woheadrightarrow;", "\u{21a0}"),
2986
+ ("woheadleftarrow;", "\u{219e}"),
2987
+ ("rianglerighteq;", "\u{22b5}"),
2988
+ ("rianglelefteq;", "\u{22b4}"),
2989
+ ("riangleright;", "\u{25b9}"),
2990
+ ("riangledown;", "\u{25bf}"),
2991
+ ("riangleleft;", "\u{25c3}"),
2992
+ ("hickapprox;", "\u{2248}"),
2993
+ ("herefore;", "\u{2234}"),
2994
+ ("riangleq;", "\u{225c}"),
2995
+ ("hetasym;", "\u{3d1}"),
2996
+ ("hicksim;", "\u{223c}"),
2997
+ ("imesbar;", "\u{2a31}"),
2998
+ ("riangle;", "\u{25b5}"),
2999
+ ("riminus;", "\u{2a3a}"),
3000
+ ("rpezium;", "\u{23e2}"),
3001
+ ("opfork;", "\u{2ada}"),
3002
+ ("riplus;", "\u{2a39}"),
3003
+ ("ritime;", "\u{2a3b}"),
3004
+ ("arget;", "\u{2316}"),
3005
+ ("caron;", "\u{165}"),
3006
+ ("cedil;", "\u{163}"),
3007
+ ("elrec;", "\u{2315}"),
3008
+ ("here4;", "\u{2234}"),
3009
+ ("hetav;", "\u{3d1}"),
3010
+ ("hinsp;", "\u{2009}"),
3011
+ ("hksim;", "\u{223c}"),
3012
+ ("imesb;", "\u{22a0}"),
3013
+ ("imesd;", "\u{2a30}"),
3014
+ ("opbot;", "\u{2336}"),
3015
+ ("opcir;", "\u{2af1}"),
3016
+ ("prime;", "\u{2034}"),
3017
+ ("ridot;", "\u{25ec}"),
3018
+ ("strok;", "\u{167}"),
3019
+ ("heta;", "\u{3b8}"),
3020
+ ("hkap;", "\u{2248}"),
3021
+ ("horn;", "\u{fe}"),
3022
+ ("ilde;", "\u{2dc}"),
3023
+ ("imes;", "\u{d7}"),
3024
+ ("rade;", "\u{2122}"),
3025
+ ("risb;", "\u{29cd}"),
3026
+ ("shcy;", "\u{45b}"),
3027
+ ("wixt;", "\u{226c}"),
3028
+ ("brk;", "\u{23b4}"),
3029
+ ("dot;", "\u{20db}"),
3030
+ ("horn", "\u{fe}"),
3031
+ ("imes", "\u{d7}"),
3032
+ ("int;", "\u{222d}"),
3033
+ ("oea;", "\u{2928}"),
3034
+ ("opf;", "\u{1d565}"),
3035
+ ("osa;", "\u{2929}"),
3036
+ ("rie;", "\u{225c}"),
3037
+ ("scr;", "\u{1d4c9}"),
3038
+ ("scy;", "\u{446}"),
3039
+ ("au;", "\u{3c4}"),
3040
+ ("cy;", "\u{442}"),
3041
+ ("fr;", "\u{1d531}"),
3042
+ ("op;", "\u{22a4}"),
3043
+ ] {
3044
+ if try_read(other_chars)? {
3045
+ return Ok(Some(CharRef {
3046
+ name: other_chars,
3047
+ characters,
3048
+ }));
3049
+ }
3050
+ }
3051
+
3052
+ Ok(None)
3053
+ }
3054
+
3055
+ branch_t(try_read)
3056
+ }
3057
+
3058
+ 'u' => {
3059
+ #[allow(non_snake_case)]
3060
+ fn branch_u<E>(
3061
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3062
+ ) -> Result<Option<CharRef>, E> {
3063
+ for (other_chars, characters) in &[
3064
+ ("pharpoonright;", "\u{21be}"),
3065
+ ("pharpoonleft;", "\u{21bf}"),
3066
+ ("pdownarrow;", "\u{2195}"),
3067
+ ("puparrows;", "\u{21c8}"),
3068
+ ("lcorner;", "\u{231c}"),
3069
+ ("rcorner;", "\u{231d}"),
3070
+ ("parrow;", "\u{2191}"),
3071
+ ("psilon;", "\u{3c5}"),
3072
+ ("wangle;", "\u{29a7}"),
3073
+ ("acute;", "\u{fa}"),
3074
+ ("breve;", "\u{16d}"),
3075
+ ("dblac;", "\u{171}"),
3076
+ ("fisht;", "\u{297e}"),
3077
+ ("grave;", "\u{f9}"),
3078
+ ("lcorn;", "\u{231c}"),
3079
+ ("lcrop;", "\u{230f}"),
3080
+ ("rcorn;", "\u{231d}"),
3081
+ ("rcrop;", "\u{230e}"),
3082
+ ("tilde;", "\u{169}"),
3083
+ ("acute", "\u{fa}"),
3084
+ ("brcy;", "\u{45e}"),
3085
+ ("circ;", "\u{fb}"),
3086
+ ("darr;", "\u{21c5}"),
3087
+ ("dhar;", "\u{296e}"),
3088
+ ("grave", "\u{f9}"),
3089
+ ("harl;", "\u{21bf}"),
3090
+ ("harr;", "\u{21be}"),
3091
+ ("hblk;", "\u{2580}"),
3092
+ ("ltri;", "\u{25f8}"),
3093
+ ("macr;", "\u{16b}"),
3094
+ ("ogon;", "\u{173}"),
3095
+ ("plus;", "\u{228e}"),
3096
+ ("psih;", "\u{3d2}"),
3097
+ ("ring;", "\u{16f}"),
3098
+ ("rtri;", "\u{25f9}"),
3099
+ ("tdot;", "\u{22f0}"),
3100
+ ("trif;", "\u{25b4}"),
3101
+ ("uarr;", "\u{21c8}"),
3102
+ ("Arr;", "\u{21d1}"),
3103
+ ("Har;", "\u{2963}"),
3104
+ ("arr;", "\u{2191}"),
3105
+ ("circ", "\u{fb}"),
3106
+ ("opf;", "\u{1d566}"),
3107
+ ("psi;", "\u{3c5}"),
3108
+ ("scr;", "\u{1d4ca}"),
3109
+ ("tri;", "\u{25b5}"),
3110
+ ("uml;", "\u{fc}"),
3111
+ ("cy;", "\u{443}"),
3112
+ ("fr;", "\u{1d532}"),
3113
+ ("ml;", "\u{a8}"),
3114
+ ("uml", "\u{fc}"),
3115
+ ("ml", "\u{a8}"),
3116
+ ] {
3117
+ if try_read(other_chars)? {
3118
+ return Ok(Some(CharRef {
3119
+ name: other_chars,
3120
+ characters,
3121
+ }));
3122
+ }
3123
+ }
3124
+
3125
+ Ok(None)
3126
+ }
3127
+
3128
+ branch_u(try_read)
3129
+ }
3130
+
3131
+ 'v' => {
3132
+ #[allow(non_snake_case)]
3133
+ fn branch_v<E>(
3134
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3135
+ ) -> Result<Option<CharRef>, E> {
3136
+ for (other_chars, characters) in &[
3137
+ ("artriangleright;", "\u{22b3}"),
3138
+ ("artriangleleft;", "\u{22b2}"),
3139
+ ("arsubsetneqq;", "\u{2acb}\u{fe00}"),
3140
+ ("arsupsetneqq;", "\u{2acc}\u{fe00}"),
3141
+ ("arsubsetneq;", "\u{228a}\u{fe00}"),
3142
+ ("arsupsetneq;", "\u{228b}\u{fe00}"),
3143
+ ("arepsilon;", "\u{3f5}"),
3144
+ ("arnothing;", "\u{2205}"),
3145
+ ("arpropto;", "\u{221d}"),
3146
+ ("arkappa;", "\u{3f0}"),
3147
+ ("arsigma;", "\u{3c2}"),
3148
+ ("artheta;", "\u{3d1}"),
3149
+ ("zigzag;", "\u{299a}"),
3150
+ ("angrt;", "\u{299c}"),
3151
+ ("arphi;", "\u{3d5}"),
3152
+ ("arrho;", "\u{3f1}"),
3153
+ ("eebar;", "\u{22bb}"),
3154
+ ("ellip;", "\u{22ee}"),
3155
+ ("erbar;", "\u{7c}"),
3156
+ ("subnE;", "\u{2acb}\u{fe00}"),
3157
+ ("subne;", "\u{228a}\u{fe00}"),
3158
+ ("supnE;", "\u{2acc}\u{fe00}"),
3159
+ ("supne;", "\u{228b}\u{fe00}"),
3160
+ ("Barv;", "\u{2ae9}"),
3161
+ ("Dash;", "\u{22a8}"),
3162
+ ("arpi;", "\u{3d6}"),
3163
+ ("dash;", "\u{22a2}"),
3164
+ ("eeeq;", "\u{225a}"),
3165
+ ("ltri;", "\u{22b2}"),
3166
+ ("nsub;", "\u{2282}\u{20d2}"),
3167
+ ("nsup;", "\u{2283}\u{20d2}"),
3168
+ ("prop;", "\u{221d}"),
3169
+ ("rtri;", "\u{22b3}"),
3170
+ ("Arr;", "\u{21d5}"),
3171
+ ("Bar;", "\u{2ae8}"),
3172
+ ("arr;", "\u{2195}"),
3173
+ ("ert;", "\u{7c}"),
3174
+ ("opf;", "\u{1d567}"),
3175
+ ("scr;", "\u{1d4cb}"),
3176
+ ("cy;", "\u{432}"),
3177
+ ("ee;", "\u{2228}"),
3178
+ ("fr;", "\u{1d533}"),
3179
+ ] {
3180
+ if try_read(other_chars)? {
3181
+ return Ok(Some(CharRef {
3182
+ name: other_chars,
3183
+ characters,
3184
+ }));
3185
+ }
3186
+ }
3187
+
3188
+ Ok(None)
3189
+ }
3190
+
3191
+ branch_v(try_read)
3192
+ }
3193
+
3194
+ 'w' => {
3195
+ #[allow(non_snake_case)]
3196
+ fn branch_w<E>(
3197
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3198
+ ) -> Result<Option<CharRef>, E> {
3199
+ for (other_chars, characters) in &[
3200
+ ("edbar;", "\u{2a5f}"),
3201
+ ("edgeq;", "\u{2259}"),
3202
+ ("eierp;", "\u{2118}"),
3203
+ ("reath;", "\u{2240}"),
3204
+ ("circ;", "\u{175}"),
3205
+ ("edge;", "\u{2227}"),
3206
+ ("opf;", "\u{1d568}"),
3207
+ ("scr;", "\u{1d4cc}"),
3208
+ ("fr;", "\u{1d534}"),
3209
+ ("p;", "\u{2118}"),
3210
+ ("r;", "\u{2240}"),
3211
+ ] {
3212
+ if try_read(other_chars)? {
3213
+ return Ok(Some(CharRef {
3214
+ name: other_chars,
3215
+ characters,
3216
+ }));
3217
+ }
3218
+ }
3219
+
3220
+ Ok(None)
3221
+ }
3222
+
3223
+ branch_w(try_read)
3224
+ }
3225
+
3226
+ 'x' => {
3227
+ #[allow(non_snake_case)]
3228
+ fn branch_x<E>(
3229
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3230
+ ) -> Result<Option<CharRef>, E> {
3231
+ for (other_chars, characters) in &[
3232
+ ("oplus;", "\u{2a01}"),
3233
+ ("otime;", "\u{2a02}"),
3234
+ ("sqcup;", "\u{2a06}"),
3235
+ ("uplus;", "\u{2a04}"),
3236
+ ("wedge;", "\u{22c0}"),
3237
+ ("circ;", "\u{25ef}"),
3238
+ ("dtri;", "\u{25bd}"),
3239
+ ("hArr;", "\u{27fa}"),
3240
+ ("harr;", "\u{27f7}"),
3241
+ ("lArr;", "\u{27f8}"),
3242
+ ("larr;", "\u{27f5}"),
3243
+ ("odot;", "\u{2a00}"),
3244
+ ("rArr;", "\u{27f9}"),
3245
+ ("rarr;", "\u{27f6}"),
3246
+ ("utri;", "\u{25b3}"),
3247
+ ("cap;", "\u{22c2}"),
3248
+ ("cup;", "\u{22c3}"),
3249
+ ("map;", "\u{27fc}"),
3250
+ ("nis;", "\u{22fb}"),
3251
+ ("opf;", "\u{1d569}"),
3252
+ ("scr;", "\u{1d4cd}"),
3253
+ ("vee;", "\u{22c1}"),
3254
+ ("fr;", "\u{1d535}"),
3255
+ ("i;", "\u{3be}"),
3256
+ ] {
3257
+ if try_read(other_chars)? {
3258
+ return Ok(Some(CharRef {
3259
+ name: other_chars,
3260
+ characters,
3261
+ }));
3262
+ }
3263
+ }
3264
+
3265
+ Ok(None)
3266
+ }
3267
+
3268
+ branch_x(try_read)
3269
+ }
3270
+
3271
+ 'y' => {
3272
+ #[allow(non_snake_case)]
3273
+ fn branch_y<E>(
3274
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3275
+ ) -> Result<Option<CharRef>, E> {
3276
+ for (other_chars, characters) in &[
3277
+ ("acute;", "\u{fd}"),
3278
+ ("acute", "\u{fd}"),
3279
+ ("circ;", "\u{177}"),
3280
+ ("acy;", "\u{44f}"),
3281
+ ("icy;", "\u{457}"),
3282
+ ("opf;", "\u{1d56a}"),
3283
+ ("scr;", "\u{1d4ce}"),
3284
+ ("ucy;", "\u{44e}"),
3285
+ ("uml;", "\u{ff}"),
3286
+ ("cy;", "\u{44b}"),
3287
+ ("en;", "\u{a5}"),
3288
+ ("fr;", "\u{1d536}"),
3289
+ ("uml", "\u{ff}"),
3290
+ ("en", "\u{a5}"),
3291
+ ] {
3292
+ if try_read(other_chars)? {
3293
+ return Ok(Some(CharRef {
3294
+ name: other_chars,
3295
+ characters,
3296
+ }));
3297
+ }
3298
+ }
3299
+
3300
+ Ok(None)
3301
+ }
3302
+
3303
+ branch_y(try_read)
3304
+ }
3305
+
3306
+ 'z' => {
3307
+ #[allow(non_snake_case)]
3308
+ fn branch_z<E>(
3309
+ mut try_read: impl FnMut(&str) -> Result<bool, E>,
3310
+ ) -> Result<Option<CharRef>, E> {
3311
+ for (other_chars, characters) in &[
3312
+ ("igrarr;", "\u{21dd}"),
3313
+ ("acute;", "\u{17a}"),
3314
+ ("caron;", "\u{17e}"),
3315
+ ("eetrf;", "\u{2128}"),
3316
+ ("dot;", "\u{17c}"),
3317
+ ("eta;", "\u{3b6}"),
3318
+ ("hcy;", "\u{436}"),
3319
+ ("opf;", "\u{1d56b}"),
3320
+ ("scr;", "\u{1d4cf}"),
3321
+ ("wnj;", "\u{200c}"),
3322
+ ("cy;", "\u{437}"),
3323
+ ("fr;", "\u{1d537}"),
3324
+ ("wj;", "\u{200d}"),
3325
+ ] {
3326
+ if try_read(other_chars)? {
3327
+ return Ok(Some(CharRef {
3328
+ name: other_chars,
3329
+ characters,
3330
+ }));
3331
+ }
3332
+ }
3333
+
3334
+ Ok(None)
3335
+ }
3336
+
3337
+ branch_z(try_read)
3338
+ }
3339
+
3340
+ _ => Ok(None),
3341
+ }
3342
+ }