1 # Some names for unicode abbreviations
8 "Ll": "Lowercase Letter",
9 "Lm": "Modifier Letter",
11 "Lt": "Titlecase Letter",
12 "Lu": "Uppercase Letter",
14 "Me": "Enclosing Mark",
15 "Mn": "Nonspacing Mark",
16 "Nd": "Decimal Number",
17 "Nl": "Letter Number",
19 "Pc": "Connector Punctuation",
20 "Pd": "Dash Punctuation",
21 "Pe": "Close Punctuation",
22 "Pf": "Final Punctuation",
23 "Pi": "Initial Punctuation",
24 "Po": "Other Punctuation",
25 "Ps": "Open Punctuation",
26 "Sc": "Currency Symbol",
27 "Sk": "Modifier Symbol",
30 "Zl": "Line Separator",
31 "Zp": "Paragraph Separator",
32 "Zs": "Space Separator",
36 "AL": "Arabic Letter",
37 "AN": "Arabic Number",
38 "B": "Paragraph Separator",
39 "BN": "Boundary Neutral",
40 "CS": "Common Separator",
41 "EN": "European Number",
42 "ES": "European Separator",
43 "ET": "European Terminator",
44 "FSI": "First Strong Isolate",
46 "LRE": "Left To Right Embedding",
47 "LRI": "Left To Right Isolate",
48 "LRO": "Left To Right Override",
49 "NSM": "Nonspacing Mark",
50 "ON": "Other Neutral",
51 "PDF": "Pop Directional Format",
52 "PDI": "Pop Directional Isolate",
54 "RLE": "Right To Left Embedding",
55 "RLI": "Right To Left Isolate",
56 "RLO": "Right To Left Override",
57 "S": "Segment Separator",
104 "202": "Attached Below",
105 "214": "Attached Above",
106 "216": "Attached Above Right",
109 "222": "Below Right",
114 "232": "Above Right",
115 "233": "Double Below",
116 "234": "Double Above",
117 "240": "Iota Subscript",
120 DECOMPOSITION_NAMES := {
121 "<circle>": "Encircled form",
122 "<compat>": "Otherwise unspecified compatibility character",
123 "<final>": "Final presentation form (Arabic)",
124 "<font>": "Font variant",
125 "<fraction>": "Vulgar fraction form",
126 "<initial>": "Initial presentation form (Arabic)",
127 "<isolated>": "Isolated presentation form (Arabic)",
128 "<medial>": "Medial presentation form (Arabic)",
129 "<narrow>": "Narrow (or hankaku) compatibility character",
130 "<noBreak>": "No-break version of a space or hyphen",
131 "<small>": "Small variant form (CNS compatibility)",
132 "<square>": "CJK squared font variant",
133 "<sub>": "Subscript form",
134 "<super>": "Superscript form",
135 "<vertical>": "Vertical layout presentation form",
136 "<wide>": "Wide (or zenkaku) compatibility character",
139 func named(thing:Text, names:{Text:Text} -> Text)
140 if name := names[thing]
141 return "$name ($thing)"