From 4efef08c94dba681837f8ec19f9140b708ca246e Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 2 Jan 2024 18:03:32 +0100 Subject: [PATCH] Update core:encoding to Unicode 15.1 table. --- .../entity/example/entity_example.odin | 8 +- core/encoding/entity/generated.odin | 8422 ++++++----------- core/unicode/tools/generate_entity_table.odin | 145 +- tests/core/build.bat | 204 +- tests/core/encoding/xml/test_core_xml.odin | 4 +- 5 files changed, 3194 insertions(+), 5589 deletions(-) diff --git a/core/encoding/entity/example/entity_example.odin b/core/encoding/entity/example/entity_example.odin index 6301eb263..1a6b8e9ba 100644 --- a/core/encoding/entity/example/entity_example.odin +++ b/core/encoding/entity/example/entity_example.odin @@ -47,8 +47,6 @@ _entities :: proc() { } _main :: proc() { - using fmt - options := xml.Options{ flags = { .Ignore_Unsupported, .Intern_Comments, .Unbox_CDATA, .Decode_SGML_Entities }} doc, _ := xml.parse(#load("test.html"), options) @@ -58,8 +56,6 @@ _main :: proc() { } main :: proc() { - using fmt - track: mem.Tracking_Allocator mem.tracking_allocator_init(&track, context.allocator) context.allocator = mem.tracking_allocator(&track) @@ -68,9 +64,9 @@ main :: proc() { _entities() if len(track.allocation_map) > 0 { - println() + fmt.println() for _, v in track.allocation_map { - printf("%v Leaked %v bytes.\n", v.location, v.size) + fmt.printf("%v Leaked %v bytes.\n", v.location, v.size) } } } \ No newline at end of file diff --git a/core/encoding/entity/generated.odin b/core/encoding/entity/generated.odin index 9afdcae6d..3d1c02513 100644 --- a/core/encoding/entity/generated.odin +++ b/core/encoding/entity/generated.odin @@ -5,7 +5,7 @@ package unicode_entity */ /* - This file is generated from "https://www.w3.org/2003/entities/2007xml/unicode.xml". + This file is generated from "https://github.com/w3c/xml-entities/blob/gh-pages/unicode.xml". UPDATE: - Ensure the XML file was downloaded using "tests\core\download_assets.py". @@ -13,15 +13,21 @@ package unicode_entity Odin unicode generated tables: https://github.com/odin-lang/Odin/tree/master/core/encoding/entity - Copyright © 2021 World Wide Web Consortium, (Massachusetts Institute of Technology, - European Research Consortium for Informatics and Mathematics, Keio University, Beihang). + Copyright David Carlisle 1999-2023 - All Rights Reserved. + Use and distribution of this code are permitted under the terms of the + W3C Software Notice and License. + http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html - This work is distributed under the W3C® Software License [1] in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - [1] http://www.w3.org/Consortium/Legal/copyright-software + + This file is a collection of information about how to map + Unicode entities to LaTeX, and various SGML/XML entity + sets (ISO and MathML/HTML). A Unicode character may be mapped + to several entities. + + Originally designed by Sebastian Rahtz in conjunction with + Barbara Beeton for the STIX project See also: LICENSE_table.md */ @@ -55,7433 +61,5025 @@ named_xml_entity_to_rune :: proc(name: string) -> (decoded: rune, ok: bool) { case 'A': switch name { - case "AElig": - // LATIN CAPITAL LETTER AE + case "AElig": // LATIN CAPITAL LETTER AE return rune(0xc6), true - case "AMP": - // AMPERSAND + case "AMP": // AMPERSAND return rune(0x26), true - case "Aacgr": - // GREEK CAPITAL LETTER ALPHA WITH TONOS + case "Aacgr": // GREEK CAPITAL LETTER ALPHA WITH TONOS return rune(0x0386), true - case "Aacute": - // LATIN CAPITAL LETTER A WITH ACUTE + case "Aacute": // LATIN CAPITAL LETTER A WITH ACUTE return rune(0xc1), true - case "Abreve": - // LATIN CAPITAL LETTER A WITH BREVE + case "Abreve": // LATIN CAPITAL LETTER A WITH BREVE return rune(0x0102), true - case "Acirc": - // LATIN CAPITAL LETTER A WITH CIRCUMFLEX + case "Acirc": // LATIN CAPITAL LETTER A WITH CIRCUMFLEX return rune(0xc2), true - case "Acy": - // CYRILLIC CAPITAL LETTER A + case "Acy": // CYRILLIC CAPITAL LETTER A return rune(0x0410), true - case "Afr": - // MATHEMATICAL FRAKTUR CAPITAL A + case "Afr": // MATHEMATICAL FRAKTUR CAPITAL A return rune(0x01d504), true - case "Agrave": - // LATIN CAPITAL LETTER A WITH GRAVE + case "Agr": // GREEK CAPITAL LETTER ALPHA + return rune(0x0391), true + case "Agrave": // LATIN CAPITAL LETTER A WITH GRAVE return rune(0xc0), true - case "Agr": - // GREEK CAPITAL LETTER ALPHA + case "Alpha": // GREEK CAPITAL LETTER ALPHA return rune(0x0391), true - case "Alpha": - // GREEK CAPITAL LETTER ALPHA - return rune(0x0391), true - case "Amacr": - // LATIN CAPITAL LETTER A WITH MACRON + case "Amacr": // LATIN CAPITAL LETTER A WITH MACRON return rune(0x0100), true - case "And": - // DOUBLE LOGICAL AND + case "And": // DOUBLE LOGICAL AND return rune(0x2a53), true - case "Aogon": - // LATIN CAPITAL LETTER A WITH OGONEK + case "Aogon": // LATIN CAPITAL LETTER A WITH OGONEK return rune(0x0104), true - case "Aopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL A + case "Aopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL A return rune(0x01d538), true - case "ApplyFunction": - // FUNCTION APPLICATION + case "ApplyFunction": // FUNCTION APPLICATION return rune(0x2061), true - case "Aring": - // LATIN CAPITAL LETTER A WITH RING ABOVE + case "Aring": // LATIN CAPITAL LETTER A WITH RING ABOVE return rune(0xc5), true - case "Ascr": - // MATHEMATICAL SCRIPT CAPITAL A + case "Ascr": // MATHEMATICAL SCRIPT CAPITAL A return rune(0x01d49c), true - case "Assign": - // COLON EQUALS + case "Assign": // COLON EQUALS return rune(0x2254), true - case "Ast": - // TWO ASTERISKS ALIGNED VERTICALLY + case "Ast": // TWO ASTERISKS ALIGNED VERTICALLY return rune(0x2051), true - case "Atilde": - // LATIN CAPITAL LETTER A WITH TILDE + case "Atilde": // LATIN CAPITAL LETTER A WITH TILDE return rune(0xc3), true - case "Auml": - // LATIN CAPITAL LETTER A WITH DIAERESIS + case "Auml": // LATIN CAPITAL LETTER A WITH DIAERESIS return rune(0xc4), true } case 'B': switch name { - case "Backslash": - // SET MINUS + case "Backslash": // SET MINUS return rune(0x2216), true - case "Barint": - // INTEGRAL WITH DOUBLE STROKE + case "Barint": // INTEGRAL WITH DOUBLE STROKE return rune(0x2a0e), true - case "Barv": - // SHORT DOWN TACK WITH OVERBAR + case "Barv": // SHORT DOWN TACK WITH OVERBAR return rune(0x2ae7), true - case "Barwedl": - // LOGICAL AND WITH DOUBLE OVERBAR - return rune(0x2a5e), true - case "Barwed": - // PERSPECTIVE + case "Barwed": // PERSPECTIVE return rune(0x2306), true - case "Bcy": - // CYRILLIC CAPITAL LETTER BE + case "Barwedl": // LOGICAL AND WITH DOUBLE OVERBAR + return rune(0x2a5e), true + case "Bcy": // CYRILLIC CAPITAL LETTER BE return rune(0x0411), true - case "Because": - // BECAUSE + case "Because": // BECAUSE return rune(0x2235), true - case "Bernoullis": - // SCRIPT CAPITAL B + case "Bernoullis": // SCRIPT CAPITAL B return rune(0x212c), true - case "Beta": - // GREEK CAPITAL LETTER BETA + case "Beta": // GREEK CAPITAL LETTER BETA return rune(0x0392), true - case "Bfr": - // MATHEMATICAL FRAKTUR CAPITAL B + case "Bfr": // MATHEMATICAL FRAKTUR CAPITAL B return rune(0x01d505), true - case "Bgr": - // GREEK CAPITAL LETTER BETA + case "Bgr": // GREEK CAPITAL LETTER BETA return rune(0x0392), true - case "Bopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL B + case "Bopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL B return rune(0x01d539), true - case "Breve": - // BREVE + case "Breve": // BREVE return rune(0x02d8), true - case "Bscr": - // SCRIPT CAPITAL B + case "Bscr": // SCRIPT CAPITAL B return rune(0x212c), true - case "Bumpeq": - // GEOMETRICALLY EQUIVALENT TO + case "Bumpeq": // GEOMETRICALLY EQUIVALENT TO return rune(0x224e), true - case "Bvert": - // BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL + case "Bvert": // BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL return rune(0x2506), true } case 'C': switch name { - case "CHcy": - // CYRILLIC CAPITAL LETTER CHE + case "CHcy": // CYRILLIC CAPITAL LETTER CHE return rune(0x0427), true - case "COPY": - // COPYRIGHT SIGN + case "COPY": // COPYRIGHT SIGN return rune(0xa9), true - case "Cacute": - // LATIN CAPITAL LETTER C WITH ACUTE + case "Cacute": // LATIN CAPITAL LETTER C WITH ACUTE return rune(0x0106), true - case "CapitalDifferentialD": - // DOUBLE-STRUCK ITALIC CAPITAL D - return rune(0x2145), true - case "Cap": - // DOUBLE INTERSECTION + case "Cap": // DOUBLE INTERSECTION return rune(0x22d2), true - case "Cayleys": - // BLACK-LETTER CAPITAL C + case "CapitalDifferentialD": // DOUBLE-STRUCK ITALIC CAPITAL D + return rune(0x2145), true + case "Cayleys": // BLACK-LETTER CAPITAL C return rune(0x212d), true - case "Ccaron": - // LATIN CAPITAL LETTER C WITH CARON + case "Ccaron": // LATIN CAPITAL LETTER C WITH CARON return rune(0x010c), true - case "Ccedil": - // LATIN CAPITAL LETTER C WITH CEDILLA + case "Ccedil": // LATIN CAPITAL LETTER C WITH CEDILLA return rune(0xc7), true - case "Ccirc": - // LATIN CAPITAL LETTER C WITH CIRCUMFLEX + case "Ccirc": // LATIN CAPITAL LETTER C WITH CIRCUMFLEX return rune(0x0108), true - case "Cconint": - // VOLUME INTEGRAL + case "Cconint": // VOLUME INTEGRAL return rune(0x2230), true - case "Cdot": - // LATIN CAPITAL LETTER C WITH DOT ABOVE + case "Cdot": // LATIN CAPITAL LETTER C WITH DOT ABOVE return rune(0x010a), true - case "Cedilla": - // CEDILLA + case "Cedilla": // CEDILLA return rune(0xb8), true - case "CenterDot": - // MIDDLE DOT + case "CenterDot": // MIDDLE DOT return rune(0xb7), true - case "Cfr": - // BLACK-LETTER CAPITAL C + case "Cfr": // BLACK-LETTER CAPITAL C return rune(0x212d), true - case "Chi": - // GREEK CAPITAL LETTER CHI + case "Chi": // GREEK CAPITAL LETTER CHI return rune(0x03a7), true - case "CircleDot": - // CIRCLED DOT OPERATOR + case "CircleDot": // CIRCLED DOT OPERATOR return rune(0x2299), true - case "CircleMinus": - // CIRCLED MINUS + case "CircleMinus": // CIRCLED MINUS return rune(0x2296), true - case "CirclePlus": - // CIRCLED PLUS + case "CirclePlus": // CIRCLED PLUS return rune(0x2295), true - case "CircleTimes": - // CIRCLED TIMES + case "CircleTimes": // CIRCLED TIMES return rune(0x2297), true - case "ClockwiseContourIntegral": - // CLOCKWISE CONTOUR INTEGRAL + case "ClockwiseContourIntegral": // CLOCKWISE CONTOUR INTEGRAL return rune(0x2232), true - case "CloseCurlyDoubleQuote": - // RIGHT DOUBLE QUOTATION MARK + case "CloseCurlyDoubleQuote": // RIGHT DOUBLE QUOTATION MARK return rune(0x201d), true - case "CloseCurlyQuote": - // RIGHT SINGLE QUOTATION MARK + case "CloseCurlyQuote": // RIGHT SINGLE QUOTATION MARK return rune(0x2019), true - case "Colon": - // PROPORTION + case "Colon": // PROPORTION return rune(0x2237), true - case "Colone": - // DOUBLE COLON EQUAL + case "Colone": // DOUBLE COLON EQUAL return rune(0x2a74), true - case "Congruent": - // IDENTICAL TO + case "Congruent": // IDENTICAL TO return rune(0x2261), true - case "Conint": - // SURFACE INTEGRAL + case "Conint": // SURFACE INTEGRAL return rune(0x222f), true - case "ContourIntegral": - // CONTOUR INTEGRAL + case "ContourIntegral": // CONTOUR INTEGRAL return rune(0x222e), true - case "Copf": - // DOUBLE-STRUCK CAPITAL C + case "Copf": // DOUBLE-STRUCK CAPITAL C return rune(0x2102), true - case "Coproduct": - // N-ARY COPRODUCT + case "Coproduct": // N-ARY COPRODUCT return rune(0x2210), true - case "CounterClockwiseContourIntegral": - // ANTICLOCKWISE CONTOUR INTEGRAL + case "CounterClockwiseContourIntegral": // ANTICLOCKWISE CONTOUR INTEGRAL return rune(0x2233), true - case "Cross": - // VECTOR OR CROSS PRODUCT + case "Cross": // VECTOR OR CROSS PRODUCT return rune(0x2a2f), true - case "Cscr": - // MATHEMATICAL SCRIPT CAPITAL C + case "Cscr": // MATHEMATICAL SCRIPT CAPITAL C return rune(0x01d49e), true - case "CupCap": - // EQUIVALENT TO - return rune(0x224d), true - case "Cup": - // DOUBLE UNION + case "Cup": // DOUBLE UNION return rune(0x22d3), true + case "CupCap": // EQUIVALENT TO + return rune(0x224d), true } case 'D': switch name { - case "DD": - // DOUBLE-STRUCK ITALIC CAPITAL D + case "DD": // DOUBLE-STRUCK ITALIC CAPITAL D return rune(0x2145), true - case "DDotrahd": - // RIGHTWARDS ARROW WITH DOTTED STEM + case "DDotrahd": // RIGHTWARDS ARROW WITH DOTTED STEM return rune(0x2911), true - case "DJcy": - // CYRILLIC CAPITAL LETTER DJE + case "DJcy": // CYRILLIC CAPITAL LETTER DJE return rune(0x0402), true - case "DScy": - // CYRILLIC CAPITAL LETTER DZE + case "DScy": // CYRILLIC CAPITAL LETTER DZE return rune(0x0405), true - case "DZcy": - // CYRILLIC CAPITAL LETTER DZHE + case "DZcy": // CYRILLIC CAPITAL LETTER DZHE return rune(0x040f), true - case "Dagger": - // DOUBLE DAGGER + case "Dagger": // DOUBLE DAGGER return rune(0x2021), true - case "Darr": - // DOWNWARDS TWO HEADED ARROW + case "Darr": // DOWNWARDS TWO HEADED ARROW return rune(0x21a1), true - case "Dashv": - // VERTICAL BAR DOUBLE LEFT TURNSTILE + case "Dashv": // VERTICAL BAR DOUBLE LEFT TURNSTILE return rune(0x2ae4), true - case "Dcaron": - // LATIN CAPITAL LETTER D WITH CARON + case "Dcaron": // LATIN CAPITAL LETTER D WITH CARON return rune(0x010e), true - case "Dcy": - // CYRILLIC CAPITAL LETTER DE + case "Dcy": // CYRILLIC CAPITAL LETTER DE return rune(0x0414), true - case "Del": - // NABLA + case "Del": // NABLA return rune(0x2207), true - case "Delta": - // GREEK CAPITAL LETTER DELTA + case "Delta": // GREEK CAPITAL LETTER DELTA return rune(0x0394), true - case "Dfr": - // MATHEMATICAL FRAKTUR CAPITAL D + case "Dfr": // MATHEMATICAL FRAKTUR CAPITAL D return rune(0x01d507), true - case "Dgr": - // GREEK CAPITAL LETTER DELTA + case "Dgr": // GREEK CAPITAL LETTER DELTA return rune(0x0394), true - case "DiacriticalAcute": - // ACUTE ACCENT + case "DiacriticalAcute": // ACUTE ACCENT return rune(0xb4), true - case "DiacriticalDot": - // DOT ABOVE + case "DiacriticalDot": // DOT ABOVE return rune(0x02d9), true - case "DiacriticalDoubleAcute": - // DOUBLE ACUTE ACCENT + case "DiacriticalDoubleAcute": // DOUBLE ACUTE ACCENT return rune(0x02dd), true - case "DiacriticalGrave": - // GRAVE ACCENT + case "DiacriticalGrave": // GRAVE ACCENT return rune(0x60), true - case "DiacriticalTilde": - // SMALL TILDE + case "DiacriticalTilde": // SMALL TILDE return rune(0x02dc), true - case "Diamond": - // DIAMOND OPERATOR + case "Diamond": // DIAMOND OPERATOR return rune(0x22c4), true - case "DifferentialD": - // DOUBLE-STRUCK ITALIC SMALL D + case "DifferentialD": // DOUBLE-STRUCK ITALIC SMALL D return rune(0x2146), true - case "Dopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL D + case "Dopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL D return rune(0x01d53b), true - case "Dot": - // DIAERESIS + case "Dot": // DIAERESIS return rune(0xa8), true - case "DotDot": - // COMBINING FOUR DOTS ABOVE + case "DotDot": // COMBINING FOUR DOTS ABOVE return rune(0x20dc), true - case "DotEqual": - // APPROACHES THE LIMIT + case "DotEqual": // APPROACHES THE LIMIT return rune(0x2250), true - case "DoubleContourIntegral": - // SURFACE INTEGRAL + case "DoubleContourIntegral": // SURFACE INTEGRAL return rune(0x222f), true - case "DoubleDot": - // DIAERESIS + case "DoubleDot": // DIAERESIS return rune(0xa8), true - case "DoubleDownArrow": - // DOWNWARDS DOUBLE ARROW + case "DoubleDownArrow": // DOWNWARDS DOUBLE ARROW return rune(0x21d3), true - case "DoubleLeftArrow": - // LEFTWARDS DOUBLE ARROW + case "DoubleLeftArrow": // LEFTWARDS DOUBLE ARROW return rune(0x21d0), true - case "DoubleLeftRightArrow": - // LEFT RIGHT DOUBLE ARROW + case "DoubleLeftRightArrow": // LEFT RIGHT DOUBLE ARROW return rune(0x21d4), true - case "DoubleLeftTee": - // VERTICAL BAR DOUBLE LEFT TURNSTILE + case "DoubleLeftTee": // VERTICAL BAR DOUBLE LEFT TURNSTILE return rune(0x2ae4), true - case "DoubleLongLeftArrow": - // LONG LEFTWARDS DOUBLE ARROW + case "DoubleLongLeftArrow": // LONG LEFTWARDS DOUBLE ARROW return rune(0x27f8), true - case "DoubleLongLeftRightArrow": - // LONG LEFT RIGHT DOUBLE ARROW + case "DoubleLongLeftRightArrow": // LONG LEFT RIGHT DOUBLE ARROW return rune(0x27fa), true - case "DoubleLongRightArrow": - // LONG RIGHTWARDS DOUBLE ARROW + case "DoubleLongRightArrow": // LONG RIGHTWARDS DOUBLE ARROW return rune(0x27f9), true - case "DoubleRightArrow": - // RIGHTWARDS DOUBLE ARROW + case "DoubleRightArrow": // RIGHTWARDS DOUBLE ARROW return rune(0x21d2), true - case "DoubleRightTee": - // TRUE + case "DoubleRightTee": // TRUE return rune(0x22a8), true - case "DoubleUpArrow": - // UPWARDS DOUBLE ARROW + case "DoubleUpArrow": // UPWARDS DOUBLE ARROW return rune(0x21d1), true - case "DoubleUpDownArrow": - // UP DOWN DOUBLE ARROW + case "DoubleUpDownArrow": // UP DOWN DOUBLE ARROW return rune(0x21d5), true - case "DoubleVerticalBar": - // PARALLEL TO + case "DoubleVerticalBar": // PARALLEL TO return rune(0x2225), true - case "DownArrowUpArrow": - // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW - return rune(0x21f5), true - case "DownArrow": - // DOWNWARDS ARROW + case "DownArrow": // DOWNWARDS ARROW return rune(0x2193), true - case "DownArrowBar": - // DOWNWARDS ARROW TO BAR + case "DownArrowBar": // DOWNWARDS ARROW TO BAR return rune(0x2913), true - case "DownBreve": - // COMBINING INVERTED BREVE + case "DownArrowUpArrow": // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW + return rune(0x21f5), true + case "DownBreve": // COMBINING INVERTED BREVE return rune(0x0311), true - case "DownLeftRightVector": - // LEFT BARB DOWN RIGHT BARB DOWN HARPOON + case "DownLeftRightVector": // LEFT BARB DOWN RIGHT BARB DOWN HARPOON return rune(0x2950), true - case "DownLeftTeeVector": - // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR + case "DownLeftTeeVector": // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR return rune(0x295e), true - case "DownLeftVector": - // LEFTWARDS HARPOON WITH BARB DOWNWARDS + case "DownLeftVector": // LEFTWARDS HARPOON WITH BARB DOWNWARDS return rune(0x21bd), true - case "DownLeftVectorBar": - // LEFTWARDS HARPOON WITH BARB DOWN TO BAR + case "DownLeftVectorBar": // LEFTWARDS HARPOON WITH BARB DOWN TO BAR return rune(0x2956), true - case "DownRightTeeVector": - // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR + case "DownRightTeeVector": // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR return rune(0x295f), true - case "DownRightVector": - // RIGHTWARDS HARPOON WITH BARB DOWNWARDS + case "DownRightVector": // RIGHTWARDS HARPOON WITH BARB DOWNWARDS return rune(0x21c1), true - case "DownRightVectorBar": - // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR + case "DownRightVectorBar": // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR return rune(0x2957), true - case "DownTeeArrow": - // DOWNWARDS ARROW FROM BAR - return rune(0x21a7), true - case "DownTee": - // DOWN TACK + case "DownTee": // DOWN TACK return rune(0x22a4), true - case "Downarrow": - // DOWNWARDS DOUBLE ARROW + case "DownTeeArrow": // DOWNWARDS ARROW FROM BAR + return rune(0x21a7), true + case "Downarrow": // DOWNWARDS DOUBLE ARROW return rune(0x21d3), true - case "Dscr": - // MATHEMATICAL SCRIPT CAPITAL D + case "Dscr": // MATHEMATICAL SCRIPT CAPITAL D return rune(0x01d49f), true - case "Dstrok": - // LATIN CAPITAL LETTER D WITH STROKE + case "Dstrok": // LATIN CAPITAL LETTER D WITH STROKE return rune(0x0110), true } case 'E': switch name { - case "EEacgr": - // GREEK CAPITAL LETTER ETA WITH TONOS + case "EEacgr": // GREEK CAPITAL LETTER ETA WITH TONOS return rune(0x0389), true - case "EEgr": - // GREEK CAPITAL LETTER ETA + case "EEgr": // GREEK CAPITAL LETTER ETA return rune(0x0397), true - case "ENG": - // LATIN CAPITAL LETTER ENG + case "ENG": // LATIN CAPITAL LETTER ENG return rune(0x014a), true - case "ETH": - // LATIN CAPITAL LETTER ETH + case "ETH": // LATIN CAPITAL LETTER ETH return rune(0xd0), true - case "Eacgr": - // GREEK CAPITAL LETTER EPSILON WITH TONOS + case "Eacgr": // GREEK CAPITAL LETTER EPSILON WITH TONOS return rune(0x0388), true - case "Eacute": - // LATIN CAPITAL LETTER E WITH ACUTE + case "Eacute": // LATIN CAPITAL LETTER E WITH ACUTE return rune(0xc9), true - case "Ecaron": - // LATIN CAPITAL LETTER E WITH CARON + case "Ecaron": // LATIN CAPITAL LETTER E WITH CARON return rune(0x011a), true - case "Ecirc": - // LATIN CAPITAL LETTER E WITH CIRCUMFLEX + case "Ecirc": // LATIN CAPITAL LETTER E WITH CIRCUMFLEX return rune(0xca), true - case "Ecy": - // CYRILLIC CAPITAL LETTER E + case "Ecy": // CYRILLIC CAPITAL LETTER E return rune(0x042d), true - case "Edot": - // LATIN CAPITAL LETTER E WITH DOT ABOVE + case "Edot": // LATIN CAPITAL LETTER E WITH DOT ABOVE return rune(0x0116), true - case "Efr": - // MATHEMATICAL FRAKTUR CAPITAL E + case "Efr": // MATHEMATICAL FRAKTUR CAPITAL E return rune(0x01d508), true - case "Egrave": - // LATIN CAPITAL LETTER E WITH GRAVE + case "Egr": // GREEK CAPITAL LETTER EPSILON + return rune(0x0395), true + case "Egrave": // LATIN CAPITAL LETTER E WITH GRAVE return rune(0xc8), true - case "Egr": - // GREEK CAPITAL LETTER EPSILON - return rune(0x0395), true - case "Element": - // ELEMENT OF + case "Element": // ELEMENT OF return rune(0x2208), true - case "Emacr": - // LATIN CAPITAL LETTER E WITH MACRON + case "Emacr": // LATIN CAPITAL LETTER E WITH MACRON return rune(0x0112), true - case "EmptySmallSquare": - // WHITE MEDIUM SQUARE + case "EmptySmallSquare": // WHITE MEDIUM SQUARE return rune(0x25fb), true - case "EmptyVerySmallSquare": - // WHITE SMALL SQUARE + case "EmptyVerySmallSquare": // WHITE SMALL SQUARE return rune(0x25ab), true - case "Eogon": - // LATIN CAPITAL LETTER E WITH OGONEK + case "Eogon": // LATIN CAPITAL LETTER E WITH OGONEK return rune(0x0118), true - case "Eopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL E + case "Eopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL E return rune(0x01d53c), true - case "Epsilon": - // GREEK CAPITAL LETTER EPSILON + case "Epsilon": // GREEK CAPITAL LETTER EPSILON return rune(0x0395), true - case "EqualTilde": - // MINUS TILDE - return rune(0x2242), true - case "Equal": - // TWO CONSECUTIVE EQUALS SIGNS + case "Equal": // TWO CONSECUTIVE EQUALS SIGNS return rune(0x2a75), true - case "Equilibrium": - // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + case "EqualTilde": // MINUS TILDE + return rune(0x2242), true + case "Equilibrium": // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON return rune(0x21cc), true - case "Escr": - // SCRIPT CAPITAL E + case "Escr": // SCRIPT CAPITAL E return rune(0x2130), true - case "Esim": - // EQUALS SIGN ABOVE TILDE OPERATOR + case "Esim": // EQUALS SIGN ABOVE TILDE OPERATOR return rune(0x2a73), true - case "Eta": - // GREEK CAPITAL LETTER ETA + case "Eta": // GREEK CAPITAL LETTER ETA return rune(0x0397), true - case "Euml": - // LATIN CAPITAL LETTER E WITH DIAERESIS + case "Euml": // LATIN CAPITAL LETTER E WITH DIAERESIS return rune(0xcb), true - case "Exists": - // THERE EXISTS + case "Exists": // THERE EXISTS return rune(0x2203), true - case "ExponentialE": - // DOUBLE-STRUCK ITALIC SMALL E + case "ExponentialE": // DOUBLE-STRUCK ITALIC SMALL E return rune(0x2147), true } case 'F': switch name { - case "Fcy": - // CYRILLIC CAPITAL LETTER EF + case "Fcy": // CYRILLIC CAPITAL LETTER EF return rune(0x0424), true - case "Ffr": - // MATHEMATICAL FRAKTUR CAPITAL F + case "Ffr": // MATHEMATICAL FRAKTUR CAPITAL F return rune(0x01d509), true - case "FilledSmallSquare": - // BLACK MEDIUM SQUARE + case "FilledSmallSquare": // BLACK MEDIUM SQUARE return rune(0x25fc), true - case "FilledVerySmallSquare": - // BLACK SMALL SQUARE + case "FilledVerySmallSquare": // BLACK SMALL SQUARE return rune(0x25aa), true - case "Fopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL F + case "Fopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL F return rune(0x01d53d), true - case "ForAll": - // FOR ALL + case "ForAll": // FOR ALL return rune(0x2200), true - case "Fouriertrf": - // SCRIPT CAPITAL F + case "Fouriertrf": // SCRIPT CAPITAL F return rune(0x2131), true - case "Fscr": - // SCRIPT CAPITAL F + case "Fscr": // SCRIPT CAPITAL F return rune(0x2131), true } case 'G': switch name { - case "GJcy": - // CYRILLIC CAPITAL LETTER GJE + case "GJcy": // CYRILLIC CAPITAL LETTER GJE return rune(0x0403), true - case "GT": - // GREATER-THAN SIGN + case "GT": // GREATER-THAN SIGN return rune(0x3e), true - case "Game": - // TURNED SANS-SERIF CAPITAL G + case "Game": // TURNED SANS-SERIF CAPITAL G return rune(0x2141), true - case "Gamma": - // GREEK CAPITAL LETTER GAMMA + case "Gamma": // GREEK CAPITAL LETTER GAMMA return rune(0x0393), true - case "Gammad": - // GREEK LETTER DIGAMMA + case "Gammad": // GREEK LETTER DIGAMMA return rune(0x03dc), true - case "Gbreve": - // LATIN CAPITAL LETTER G WITH BREVE + case "Gbreve": // LATIN CAPITAL LETTER G WITH BREVE return rune(0x011e), true - case "Gcedil": - // LATIN CAPITAL LETTER G WITH CEDILLA + case "Gcedil": // LATIN CAPITAL LETTER G WITH CEDILLA return rune(0x0122), true - case "Gcirc": - // LATIN CAPITAL LETTER G WITH CIRCUMFLEX + case "Gcirc": // LATIN CAPITAL LETTER G WITH CIRCUMFLEX return rune(0x011c), true - case "Gcy": - // CYRILLIC CAPITAL LETTER GHE + case "Gcy": // CYRILLIC CAPITAL LETTER GHE return rune(0x0413), true - case "Gdot": - // LATIN CAPITAL LETTER G WITH DOT ABOVE + case "Gdot": // LATIN CAPITAL LETTER G WITH DOT ABOVE return rune(0x0120), true - case "Gfr": - // MATHEMATICAL FRAKTUR CAPITAL G + case "Gfr": // MATHEMATICAL FRAKTUR CAPITAL G return rune(0x01d50a), true - case "Ggr": - // GREEK CAPITAL LETTER GAMMA - return rune(0x0393), true - case "Gg": - // VERY MUCH GREATER-THAN + case "Gg": // VERY MUCH GREATER-THAN return rune(0x22d9), true - case "Gopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL G + case "Ggr": // GREEK CAPITAL LETTER GAMMA + return rune(0x0393), true + case "Gopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL G return rune(0x01d53e), true - case "GreaterEqual": - // GREATER-THAN OR EQUAL TO + case "GreaterEqual": // GREATER-THAN OR EQUAL TO return rune(0x2265), true - case "GreaterEqualLess": - // GREATER-THAN EQUAL TO OR LESS-THAN + case "GreaterEqualLess": // GREATER-THAN EQUAL TO OR LESS-THAN return rune(0x22db), true - case "GreaterFullEqual": - // GREATER-THAN OVER EQUAL TO + case "GreaterFullEqual": // GREATER-THAN OVER EQUAL TO return rune(0x2267), true - case "GreaterGreater": - // DOUBLE NESTED GREATER-THAN + case "GreaterGreater": // DOUBLE NESTED GREATER-THAN return rune(0x2aa2), true - case "GreaterLess": - // GREATER-THAN OR LESS-THAN + case "GreaterLess": // GREATER-THAN OR LESS-THAN return rune(0x2277), true - case "GreaterSlantEqual": - // GREATER-THAN OR SLANTED EQUAL TO + case "GreaterSlantEqual": // GREATER-THAN OR SLANTED EQUAL TO return rune(0x2a7e), true - case "GreaterTilde": - // GREATER-THAN OR EQUIVALENT TO + case "GreaterTilde": // GREATER-THAN OR EQUIVALENT TO return rune(0x2273), true - case "Gscr": - // MATHEMATICAL SCRIPT CAPITAL G + case "Gscr": // MATHEMATICAL SCRIPT CAPITAL G return rune(0x01d4a2), true - case "Gt": - // MUCH GREATER-THAN + case "Gt": // MUCH GREATER-THAN return rune(0x226b), true } case 'H': switch name { - case "HARDcy": - // CYRILLIC CAPITAL LETTER HARD SIGN + case "HARDcy": // CYRILLIC CAPITAL LETTER HARD SIGN return rune(0x042a), true - case "Hacek": - // CARON + case "Hacek": // CARON return rune(0x02c7), true - case "Hat": - // CIRCUMFLEX ACCENT + case "Hat": // CIRCUMFLEX ACCENT return rune(0x5e), true - case "Hcirc": - // LATIN CAPITAL LETTER H WITH CIRCUMFLEX + case "Hcirc": // LATIN CAPITAL LETTER H WITH CIRCUMFLEX return rune(0x0124), true - case "Hfr": - // BLACK-LETTER CAPITAL H + case "Hfr": // BLACK-LETTER CAPITAL H return rune(0x210c), true - case "HilbertSpace": - // SCRIPT CAPITAL H + case "HilbertSpace": // SCRIPT CAPITAL H return rune(0x210b), true - case "Hopf": - // DOUBLE-STRUCK CAPITAL H + case "Hopf": // DOUBLE-STRUCK CAPITAL H return rune(0x210d), true - case "HorizontalLine": - // BOX DRAWINGS LIGHT HORIZONTAL + case "HorizontalLine": // BOX DRAWINGS LIGHT HORIZONTAL return rune(0x2500), true - case "Hscr": - // SCRIPT CAPITAL H + case "Hscr": // SCRIPT CAPITAL H return rune(0x210b), true - case "Hstrok": - // LATIN CAPITAL LETTER H WITH STROKE + case "Hstrok": // LATIN CAPITAL LETTER H WITH STROKE return rune(0x0126), true - case "HumpDownHump": - // GEOMETRICALLY EQUIVALENT TO + case "HumpDownHump": // GEOMETRICALLY EQUIVALENT TO return rune(0x224e), true - case "HumpEqual": - // DIFFERENCE BETWEEN + case "HumpEqual": // DIFFERENCE BETWEEN return rune(0x224f), true } case 'I': switch name { - case "IEcy": - // CYRILLIC CAPITAL LETTER IE + case "IEcy": // CYRILLIC CAPITAL LETTER IE return rune(0x0415), true - case "IJlig": - // LATIN CAPITAL LIGATURE IJ + case "IJlig": // LATIN CAPITAL LIGATURE IJ return rune(0x0132), true - case "IOcy": - // CYRILLIC CAPITAL LETTER IO + case "IOcy": // CYRILLIC CAPITAL LETTER IO return rune(0x0401), true - case "Iacgr": - // GREEK CAPITAL LETTER IOTA WITH TONOS + case "Iacgr": // GREEK CAPITAL LETTER IOTA WITH TONOS return rune(0x038a), true - case "Iacute": - // LATIN CAPITAL LETTER I WITH ACUTE + case "Iacute": // LATIN CAPITAL LETTER I WITH ACUTE return rune(0xcd), true - case "Icirc": - // LATIN CAPITAL LETTER I WITH CIRCUMFLEX + case "Icirc": // LATIN CAPITAL LETTER I WITH CIRCUMFLEX return rune(0xce), true - case "Icy": - // CYRILLIC CAPITAL LETTER I + case "Icy": // CYRILLIC CAPITAL LETTER I return rune(0x0418), true - case "Idigr": - // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA + case "Idigr": // GREEK CAPITAL LETTER IOTA WITH DIALYTIKA return rune(0x03aa), true - case "Idot": - // LATIN CAPITAL LETTER I WITH DOT ABOVE + case "Idot": // LATIN CAPITAL LETTER I WITH DOT ABOVE return rune(0x0130), true - case "Ifr": - // BLACK-LETTER CAPITAL I + case "Ifr": // BLACK-LETTER CAPITAL I return rune(0x2111), true - case "Igrave": - // LATIN CAPITAL LETTER I WITH GRAVE + case "Igr": // GREEK CAPITAL LETTER IOTA + return rune(0x0399), true + case "Igrave": // LATIN CAPITAL LETTER I WITH GRAVE return rune(0xcc), true - case "Igr": - // GREEK CAPITAL LETTER IOTA - return rune(0x0399), true - case "Imacr": - // LATIN CAPITAL LETTER I WITH MACRON - return rune(0x012a), true - case "ImaginaryI": - // DOUBLE-STRUCK ITALIC SMALL I - return rune(0x2148), true - case "Implies": - // RIGHTWARDS DOUBLE ARROW - return rune(0x21d2), true - case "Im": - // BLACK-LETTER CAPITAL I + case "Im": // BLACK-LETTER CAPITAL I return rune(0x2111), true - case "Integral": - // INTEGRAL - return rune(0x222b), true - case "Int": - // DOUBLE INTEGRAL + case "Imacr": // LATIN CAPITAL LETTER I WITH MACRON + return rune(0x012a), true + case "ImaginaryI": // DOUBLE-STRUCK ITALIC SMALL I + return rune(0x2148), true + case "Implies": // RIGHTWARDS DOUBLE ARROW + return rune(0x21d2), true + case "Int": // DOUBLE INTEGRAL return rune(0x222c), true - case "Intersection": - // N-ARY INTERSECTION + case "Integral": // INTEGRAL + return rune(0x222b), true + case "Intersection": // N-ARY INTERSECTION return rune(0x22c2), true - case "InvisibleComma": - // INVISIBLE SEPARATOR + case "InvisibleComma": // INVISIBLE SEPARATOR return rune(0x2063), true - case "InvisibleTimes": - // INVISIBLE TIMES + case "InvisibleTimes": // INVISIBLE TIMES return rune(0x2062), true - case "Iogon": - // LATIN CAPITAL LETTER I WITH OGONEK + case "Iogon": // LATIN CAPITAL LETTER I WITH OGONEK return rune(0x012e), true - case "Iopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL I + case "Iopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL I return rune(0x01d540), true - case "Iota": - // GREEK CAPITAL LETTER IOTA + case "Iota": // GREEK CAPITAL LETTER IOTA return rune(0x0399), true - case "Iscr": - // SCRIPT CAPITAL I + case "Iscr": // SCRIPT CAPITAL I return rune(0x2110), true - case "Itilde": - // LATIN CAPITAL LETTER I WITH TILDE + case "Itilde": // LATIN CAPITAL LETTER I WITH TILDE return rune(0x0128), true - case "Iukcy": - // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I + case "Iukcy": // CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I return rune(0x0406), true - case "Iuml": - // LATIN CAPITAL LETTER I WITH DIAERESIS + case "Iuml": // LATIN CAPITAL LETTER I WITH DIAERESIS return rune(0xcf), true } case 'J': switch name { - case "Jcirc": - // LATIN CAPITAL LETTER J WITH CIRCUMFLEX + case "Jcirc": // LATIN CAPITAL LETTER J WITH CIRCUMFLEX return rune(0x0134), true - case "Jcy": - // CYRILLIC CAPITAL LETTER SHORT I + case "Jcy": // CYRILLIC CAPITAL LETTER SHORT I return rune(0x0419), true - case "Jfr": - // MATHEMATICAL FRAKTUR CAPITAL J + case "Jfr": // MATHEMATICAL FRAKTUR CAPITAL J return rune(0x01d50d), true - case "Jopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL J + case "Jopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL J return rune(0x01d541), true - case "Jscr": - // MATHEMATICAL SCRIPT CAPITAL J + case "Jscr": // MATHEMATICAL SCRIPT CAPITAL J return rune(0x01d4a5), true - case "Jsercy": - // CYRILLIC CAPITAL LETTER JE + case "Jsercy": // CYRILLIC CAPITAL LETTER JE return rune(0x0408), true - case "Jukcy": - // CYRILLIC CAPITAL LETTER UKRAINIAN IE + case "Jukcy": // CYRILLIC CAPITAL LETTER UKRAINIAN IE return rune(0x0404), true } case 'K': switch name { - case "KHcy": - // CYRILLIC CAPITAL LETTER HA + case "KHcy": // CYRILLIC CAPITAL LETTER HA return rune(0x0425), true - case "KHgr": - // GREEK CAPITAL LETTER CHI + case "KHgr": // GREEK CAPITAL LETTER CHI return rune(0x03a7), true - case "KJcy": - // CYRILLIC CAPITAL LETTER KJE + case "KJcy": // CYRILLIC CAPITAL LETTER KJE return rune(0x040c), true - case "Kappa": - // GREEK CAPITAL LETTER KAPPA + case "Kappa": // GREEK CAPITAL LETTER KAPPA return rune(0x039a), true - case "Kcedil": - // LATIN CAPITAL LETTER K WITH CEDILLA + case "Kcedil": // LATIN CAPITAL LETTER K WITH CEDILLA return rune(0x0136), true - case "Kcy": - // CYRILLIC CAPITAL LETTER KA + case "Kcy": // CYRILLIC CAPITAL LETTER KA return rune(0x041a), true - case "Kfr": - // MATHEMATICAL FRAKTUR CAPITAL K + case "Kfr": // MATHEMATICAL FRAKTUR CAPITAL K return rune(0x01d50e), true - case "Kgr": - // GREEK CAPITAL LETTER KAPPA + case "Kgr": // GREEK CAPITAL LETTER KAPPA return rune(0x039a), true - case "Kopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL K + case "Kopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL K return rune(0x01d542), true - case "Kscr": - // MATHEMATICAL SCRIPT CAPITAL K + case "Kscr": // MATHEMATICAL SCRIPT CAPITAL K return rune(0x01d4a6), true } case 'L': switch name { - case "LJcy": - // CYRILLIC CAPITAL LETTER LJE + case "LJcy": // CYRILLIC CAPITAL LETTER LJE return rune(0x0409), true - case "LT": - // LESS-THAN SIGN + case "LT": // LESS-THAN SIGN return rune(0x3c), true - case "Lacute": - // LATIN CAPITAL LETTER L WITH ACUTE + case "Lacute": // LATIN CAPITAL LETTER L WITH ACUTE return rune(0x0139), true - case "Lambda": - // GREEK CAPITAL LETTER LAMDA + case "Lambda": // GREEK CAPITAL LETTER LAMDA return rune(0x039b), true - case "Lang": - // MATHEMATICAL LEFT DOUBLE ANGLE BRACKET + case "Lang": // MATHEMATICAL LEFT DOUBLE ANGLE BRACKET return rune(0x27ea), true - case "Laplacetrf": - // SCRIPT CAPITAL L + case "Laplacetrf": // SCRIPT CAPITAL L return rune(0x2112), true - case "Larr": - // LEFTWARDS TWO HEADED ARROW + case "Larr": // LEFTWARDS TWO HEADED ARROW return rune(0x219e), true - case "Lcaron": - // LATIN CAPITAL LETTER L WITH CARON + case "Lcaron": // LATIN CAPITAL LETTER L WITH CARON return rune(0x013d), true - case "Lcedil": - // LATIN CAPITAL LETTER L WITH CEDILLA + case "Lcedil": // LATIN CAPITAL LETTER L WITH CEDILLA return rune(0x013b), true - case "Lcy": - // CYRILLIC CAPITAL LETTER EL + case "Lcy": // CYRILLIC CAPITAL LETTER EL return rune(0x041b), true - case "LeftAngleBracket": - // MATHEMATICAL LEFT ANGLE BRACKET + case "LeftAngleBracket": // MATHEMATICAL LEFT ANGLE BRACKET return rune(0x27e8), true - case "LeftArrowBar": - // LEFTWARDS ARROW TO BAR - return rune(0x21e4), true - case "LeftArrowRightArrow": - // LEFTWARDS ARROW OVER RIGHTWARDS ARROW - return rune(0x21c6), true - case "LeftArrow": - // LEFTWARDS ARROW + case "LeftArrow": // LEFTWARDS ARROW return rune(0x2190), true - case "LeftCeiling": - // LEFT CEILING + case "LeftArrowBar": // LEFTWARDS ARROW TO BAR + return rune(0x21e4), true + case "LeftArrowRightArrow": // LEFTWARDS ARROW OVER RIGHTWARDS ARROW + return rune(0x21c6), true + case "LeftCeiling": // LEFT CEILING return rune(0x2308), true - case "LeftDoubleBracket": - // MATHEMATICAL LEFT WHITE SQUARE BRACKET + case "LeftDoubleBracket": // MATHEMATICAL LEFT WHITE SQUARE BRACKET return rune(0x27e6), true - case "LeftDownTeeVector": - // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR + case "LeftDownTeeVector": // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR return rune(0x2961), true - case "LeftDownVector": - // DOWNWARDS HARPOON WITH BARB LEFTWARDS + case "LeftDownVector": // DOWNWARDS HARPOON WITH BARB LEFTWARDS return rune(0x21c3), true - case "LeftDownVectorBar": - // DOWNWARDS HARPOON WITH BARB LEFT TO BAR + case "LeftDownVectorBar": // DOWNWARDS HARPOON WITH BARB LEFT TO BAR return rune(0x2959), true - case "LeftFloor": - // LEFT FLOOR + case "LeftFloor": // LEFT FLOOR return rune(0x230a), true - case "LeftRightArrow": - // LEFT RIGHT ARROW + case "LeftRightArrow": // LEFT RIGHT ARROW return rune(0x2194), true - case "LeftRightVector": - // LEFT BARB UP RIGHT BARB UP HARPOON + case "LeftRightVector": // LEFT BARB UP RIGHT BARB UP HARPOON return rune(0x294e), true - case "LeftTeeArrow": - // LEFTWARDS ARROW FROM BAR - return rune(0x21a4), true - case "LeftTeeVector": - // LEFTWARDS HARPOON WITH BARB UP FROM BAR - return rune(0x295a), true - case "LeftTee": - // LEFT TACK + case "LeftTee": // LEFT TACK return rune(0x22a3), true - case "LeftTriangleBar": - // LEFT TRIANGLE BESIDE VERTICAL BAR - return rune(0x29cf), true - case "LeftTriangle": - // NORMAL SUBGROUP OF + case "LeftTeeArrow": // LEFTWARDS ARROW FROM BAR + return rune(0x21a4), true + case "LeftTeeVector": // LEFTWARDS HARPOON WITH BARB UP FROM BAR + return rune(0x295a), true + case "LeftTriangle": // NORMAL SUBGROUP OF return rune(0x22b2), true - case "LeftTriangleEqual": - // NORMAL SUBGROUP OF OR EQUAL TO + case "LeftTriangleBar": // LEFT TRIANGLE BESIDE VERTICAL BAR + return rune(0x29cf), true + case "LeftTriangleEqual": // NORMAL SUBGROUP OF OR EQUAL TO return rune(0x22b4), true - case "LeftUpDownVector": - // UP BARB LEFT DOWN BARB LEFT HARPOON + case "LeftUpDownVector": // UP BARB LEFT DOWN BARB LEFT HARPOON return rune(0x2951), true - case "LeftUpTeeVector": - // UPWARDS HARPOON WITH BARB LEFT FROM BAR + case "LeftUpTeeVector": // UPWARDS HARPOON WITH BARB LEFT FROM BAR return rune(0x2960), true - case "LeftUpVector": - // UPWARDS HARPOON WITH BARB LEFTWARDS + case "LeftUpVector": // UPWARDS HARPOON WITH BARB LEFTWARDS return rune(0x21bf), true - case "LeftUpVectorBar": - // UPWARDS HARPOON WITH BARB LEFT TO BAR + case "LeftUpVectorBar": // UPWARDS HARPOON WITH BARB LEFT TO BAR return rune(0x2958), true - case "LeftVector": - // LEFTWARDS HARPOON WITH BARB UPWARDS + case "LeftVector": // LEFTWARDS HARPOON WITH BARB UPWARDS return rune(0x21bc), true - case "LeftVectorBar": - // LEFTWARDS HARPOON WITH BARB UP TO BAR + case "LeftVectorBar": // LEFTWARDS HARPOON WITH BARB UP TO BAR return rune(0x2952), true - case "Leftarrow": - // LEFTWARDS DOUBLE ARROW + case "Leftarrow": // LEFTWARDS DOUBLE ARROW return rune(0x21d0), true - case "Leftrightarrow": - // LEFT RIGHT DOUBLE ARROW + case "Leftrightarrow": // LEFT RIGHT DOUBLE ARROW return rune(0x21d4), true - case "LessEqualGreater": - // LESS-THAN EQUAL TO OR GREATER-THAN + case "LessEqualGreater": // LESS-THAN EQUAL TO OR GREATER-THAN return rune(0x22da), true - case "LessFullEqual": - // LESS-THAN OVER EQUAL TO + case "LessFullEqual": // LESS-THAN OVER EQUAL TO return rune(0x2266), true - case "LessGreater": - // LESS-THAN OR GREATER-THAN + case "LessGreater": // LESS-THAN OR GREATER-THAN return rune(0x2276), true - case "LessLess": - // DOUBLE NESTED LESS-THAN + case "LessLess": // DOUBLE NESTED LESS-THAN return rune(0x2aa1), true - case "LessSlantEqual": - // LESS-THAN OR SLANTED EQUAL TO + case "LessSlantEqual": // LESS-THAN OR SLANTED EQUAL TO return rune(0x2a7d), true - case "LessTilde": - // LESS-THAN OR EQUIVALENT TO + case "LessTilde": // LESS-THAN OR EQUIVALENT TO return rune(0x2272), true - case "Lfr": - // MATHEMATICAL FRAKTUR CAPITAL L + case "Lfr": // MATHEMATICAL FRAKTUR CAPITAL L return rune(0x01d50f), true - case "Lgr": - // GREEK CAPITAL LETTER LAMDA + case "Lgr": // GREEK CAPITAL LETTER LAMDA return rune(0x039b), true - case "Lleftarrow": - // LEFTWARDS TRIPLE ARROW - return rune(0x21da), true - case "Ll": - // VERY MUCH LESS-THAN + case "Ll": // VERY MUCH LESS-THAN return rune(0x22d8), true - case "Lmidot": - // LATIN CAPITAL LETTER L WITH MIDDLE DOT + case "Lleftarrow": // LEFTWARDS TRIPLE ARROW + return rune(0x21da), true + case "Lmidot": // LATIN CAPITAL LETTER L WITH MIDDLE DOT return rune(0x013f), true - case "LongLeftArrow": - // LONG LEFTWARDS ARROW + case "LongLeftArrow": // LONG LEFTWARDS ARROW return rune(0x27f5), true - case "LongLeftRightArrow": - // LONG LEFT RIGHT ARROW + case "LongLeftRightArrow": // LONG LEFT RIGHT ARROW return rune(0x27f7), true - case "LongRightArrow": - // LONG RIGHTWARDS ARROW + case "LongRightArrow": // LONG RIGHTWARDS ARROW return rune(0x27f6), true - case "Longleftarrow": - // LONG LEFTWARDS DOUBLE ARROW + case "Longleftarrow": // LONG LEFTWARDS DOUBLE ARROW return rune(0x27f8), true - case "Longleftrightarrow": - // LONG LEFT RIGHT DOUBLE ARROW + case "Longleftrightarrow": // LONG LEFT RIGHT DOUBLE ARROW return rune(0x27fa), true - case "Longrightarrow": - // LONG RIGHTWARDS DOUBLE ARROW + case "Longrightarrow": // LONG RIGHTWARDS DOUBLE ARROW return rune(0x27f9), true - case "Lopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL L + case "Lopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL L return rune(0x01d543), true - case "LowerLeftArrow": - // SOUTH WEST ARROW + case "LowerLeftArrow": // SOUTH WEST ARROW return rune(0x2199), true - case "LowerRightArrow": - // SOUTH EAST ARROW + case "LowerRightArrow": // SOUTH EAST ARROW return rune(0x2198), true - case "Lscr": - // SCRIPT CAPITAL L + case "Lscr": // SCRIPT CAPITAL L return rune(0x2112), true - case "Lsh": - // UPWARDS ARROW WITH TIP LEFTWARDS + case "Lsh": // UPWARDS ARROW WITH TIP LEFTWARDS return rune(0x21b0), true - case "Lstrok": - // LATIN CAPITAL LETTER L WITH STROKE + case "Lstrok": // LATIN CAPITAL LETTER L WITH STROKE return rune(0x0141), true - case "Ltbar": - // DOUBLE NESTED LESS-THAN WITH UNDERBAR - return rune(0x2aa3), true - case "Lt": - // MUCH LESS-THAN + case "Lt": // MUCH LESS-THAN return rune(0x226a), true + case "Ltbar": // DOUBLE NESTED LESS-THAN WITH UNDERBAR + return rune(0x2aa3), true } case 'M': switch name { - case "Mapfrom": - // LEFTWARDS DOUBLE ARROW FROM BAR - return rune(0x2906), true - case "Mapto": - // RIGHTWARDS DOUBLE ARROW FROM BAR - return rune(0x2907), true - case "Map": - // RIGHTWARDS TWO-HEADED ARROW FROM BAR + case "Map": // RIGHTWARDS TWO-HEADED ARROW FROM BAR return rune(0x2905), true - case "Mcy": - // CYRILLIC CAPITAL LETTER EM + case "Mapfrom": // LEFTWARDS DOUBLE ARROW FROM BAR + return rune(0x2906), true + case "Mapto": // RIGHTWARDS DOUBLE ARROW FROM BAR + return rune(0x2907), true + case "Mcy": // CYRILLIC CAPITAL LETTER EM return rune(0x041c), true - case "MediumSpace": - // MEDIUM MATHEMATICAL SPACE + case "MediumSpace": // MEDIUM MATHEMATICAL SPACE return rune(0x205f), true - case "Mellintrf": - // SCRIPT CAPITAL M + case "Mellintrf": // SCRIPT CAPITAL M return rune(0x2133), true - case "Mfr": - // MATHEMATICAL FRAKTUR CAPITAL M + case "Mfr": // MATHEMATICAL FRAKTUR CAPITAL M return rune(0x01d510), true - case "Mgr": - // GREEK CAPITAL LETTER MU + case "Mgr": // GREEK CAPITAL LETTER MU return rune(0x039c), true - case "MinusPlus": - // MINUS-OR-PLUS SIGN + case "MinusPlus": // MINUS-OR-PLUS SIGN return rune(0x2213), true - case "Mopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL M + case "Mopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL M return rune(0x01d544), true - case "Mscr": - // SCRIPT CAPITAL M + case "Mscr": // SCRIPT CAPITAL M return rune(0x2133), true - case "Mu": - // GREEK CAPITAL LETTER MU + case "Mu": // GREEK CAPITAL LETTER MU return rune(0x039c), true } case 'N': switch name { - case "NJcy": - // CYRILLIC CAPITAL LETTER NJE + case "NJcy": // CYRILLIC CAPITAL LETTER NJE return rune(0x040a), true - case "Nacute": - // LATIN CAPITAL LETTER N WITH ACUTE + case "Nacute": // LATIN CAPITAL LETTER N WITH ACUTE return rune(0x0143), true - case "Ncaron": - // LATIN CAPITAL LETTER N WITH CARON + case "Ncaron": // LATIN CAPITAL LETTER N WITH CARON return rune(0x0147), true - case "Ncedil": - // LATIN CAPITAL LETTER N WITH CEDILLA + case "Ncedil": // LATIN CAPITAL LETTER N WITH CEDILLA return rune(0x0145), true - case "Ncy": - // CYRILLIC CAPITAL LETTER EN + case "Ncy": // CYRILLIC CAPITAL LETTER EN return rune(0x041d), true - case "NegativeMediumSpace": - // ZERO WIDTH SPACE + case "NegativeMediumSpace": // ZERO WIDTH SPACE return rune(0x200b), true - case "NegativeThickSpace": - // ZERO WIDTH SPACE + case "NegativeThickSpace": // ZERO WIDTH SPACE return rune(0x200b), true - case "NegativeThinSpace": - // ZERO WIDTH SPACE + case "NegativeThinSpace": // ZERO WIDTH SPACE return rune(0x200b), true - case "NegativeVeryThinSpace": - // ZERO WIDTH SPACE + case "NegativeVeryThinSpace": // ZERO WIDTH SPACE return rune(0x200b), true - case "NestedGreaterGreater": - // MUCH GREATER-THAN + case "NestedGreaterGreater": // MUCH GREATER-THAN return rune(0x226b), true - case "NestedLessLess": - // MUCH LESS-THAN + case "NestedLessLess": // MUCH LESS-THAN return rune(0x226a), true - case "NewLine": - // LINE FEED (LF) + case "NewLine": // LINE FEED (LF) return rune(0x0a), true - case "Nfr": - // MATHEMATICAL FRAKTUR CAPITAL N + case "Nfr": // MATHEMATICAL FRAKTUR CAPITAL N return rune(0x01d511), true - case "Ngr": - // GREEK CAPITAL LETTER NU + case "Ngr": // GREEK CAPITAL LETTER NU return rune(0x039d), true - case "NoBreak": - // WORD JOINER + case "NoBreak": // WORD JOINER return rune(0x2060), true - case "NonBreakingSpace": - // NO-BREAK SPACE + case "NonBreakingSpace": // NO-BREAK SPACE return rune(0xa0), true - case "Nopf": - // DOUBLE-STRUCK CAPITAL N + case "Nopf": // DOUBLE-STRUCK CAPITAL N return rune(0x2115), true - case "NotDoubleVerticalBar": - // NOT PARALLEL TO - return rune(0x2226), true - case "NotElement": - // NOT AN ELEMENT OF - return rune(0x2209), true - case "NotEqualTilde": - // MINUS TILDE with slash - return rune(0x2242), true - case "NotEqual": - // NOT EQUAL TO - return rune(0x2260), true - case "NotExists": - // THERE DOES NOT EXIST - return rune(0x2204), true - case "NotHumpDownHump": - // GEOMETRICALLY EQUIVALENT TO with slash - return rune(0x224e), true - case "NotHumpEqual": - // DIFFERENCE BETWEEN with slash - return rune(0x224f), true - case "NotLessGreater": - // NEITHER LESS-THAN NOR GREATER-THAN - return rune(0x2278), true - case "NotReverseElement": - // DOES NOT CONTAIN AS MEMBER - return rune(0x220c), true - case "NotTilde": - // NOT TILDE - return rune(0x2241), true - case "NotTildeEqual": - // NOT ASYMPTOTICALLY EQUAL TO - return rune(0x2244), true - case "NotTildeFullEqual": - // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO - return rune(0x2247), true - case "NotTildeTilde": - // NOT ALMOST EQUAL TO - return rune(0x2249), true - case "NotVerticalBar": - // DOES NOT DIVIDE - return rune(0x2224), true - case "Not": - // DOUBLE STROKE NOT SIGN + case "Not": // DOUBLE STROKE NOT SIGN return rune(0x2aec), true - case "NotCongruent": - // NOT IDENTICAL TO + case "NotCongruent": // NOT IDENTICAL TO return rune(0x2262), true - case "NotCupCap": - // NOT EQUIVALENT TO + case "NotCupCap": // NOT EQUIVALENT TO return rune(0x226d), true - case "NotGreaterFullEqual": - // GREATER-THAN OVER EQUAL TO with slash - return rune(0x2267), true - case "NotGreaterGreater": - // MUCH GREATER THAN with slash - return rune(0x226b), true - case "NotGreaterSlantEqual": - // GREATER-THAN OR SLANTED EQUAL TO with slash - return rune(0x2a7e), true - case "NotGreater": - // NOT GREATER-THAN + case "NotDoubleVerticalBar": // NOT PARALLEL TO + return rune(0x2226), true + case "NotElement": // NOT AN ELEMENT OF + return rune(0x2209), true + case "NotEqual": // NOT EQUAL TO + return rune(0x2260), true + case "NotEqualTilde": // MINUS TILDE with slash + return rune(0x2242), true + case "NotExists": // THERE DOES NOT EXIST + return rune(0x2204), true + case "NotGreater": // NOT GREATER-THAN return rune(0x226f), true - case "NotGreaterEqual": - // NEITHER GREATER-THAN NOR EQUAL TO + case "NotGreaterEqual": // NEITHER GREATER-THAN NOR EQUAL TO return rune(0x2271), true - case "NotGreaterLess": - // NEITHER GREATER-THAN NOR LESS-THAN + case "NotGreaterFullEqual": // GREATER-THAN OVER EQUAL TO with slash + return rune(0x2267), true + case "NotGreaterGreater": // MUCH GREATER THAN with slash + return rune(0x226b), true + case "NotGreaterLess": // NEITHER GREATER-THAN NOR LESS-THAN return rune(0x2279), true - case "NotGreaterTilde": - // NEITHER GREATER-THAN NOR EQUIVALENT TO + case "NotGreaterSlantEqual": // GREATER-THAN OR SLANTED EQUAL TO with slash + return rune(0x2a7e), true + case "NotGreaterTilde": // NEITHER GREATER-THAN NOR EQUIVALENT TO return rune(0x2275), true - case "NotLeftTriangleBar": - // LEFT TRIANGLE BESIDE VERTICAL BAR with slash - return rune(0x29cf), true - case "NotLeftTriangle": - // NOT NORMAL SUBGROUP OF + case "NotHumpDownHump": // GEOMETRICALLY EQUIVALENT TO with slash + return rune(0x224e), true + case "NotHumpEqual": // DIFFERENCE BETWEEN with slash + return rune(0x224f), true + case "NotLeftTriangle": // NOT NORMAL SUBGROUP OF return rune(0x22ea), true - case "NotLeftTriangleEqual": - // NOT NORMAL SUBGROUP OF OR EQUAL TO + case "NotLeftTriangleBar": // LEFT TRIANGLE BESIDE VERTICAL BAR with slash + return rune(0x29cf), true + case "NotLeftTriangleEqual": // NOT NORMAL SUBGROUP OF OR EQUAL TO return rune(0x22ec), true - case "NotLessLess": - // MUCH LESS THAN with slash - return rune(0x226a), true - case "NotLessSlantEqual": - // LESS-THAN OR SLANTED EQUAL TO with slash - return rune(0x2a7d), true - case "NotLess": - // NOT LESS-THAN + case "NotLess": // NOT LESS-THAN return rune(0x226e), true - case "NotLessEqual": - // NEITHER LESS-THAN NOR EQUAL TO + case "NotLessEqual": // NEITHER LESS-THAN NOR EQUAL TO return rune(0x2270), true - case "NotLessTilde": - // NEITHER LESS-THAN NOR EQUIVALENT TO + case "NotLessGreater": // NEITHER LESS-THAN NOR GREATER-THAN + return rune(0x2278), true + case "NotLessLess": // MUCH LESS THAN with slash + return rune(0x226a), true + case "NotLessSlantEqual": // LESS-THAN OR SLANTED EQUAL TO with slash + return rune(0x2a7d), true + case "NotLessTilde": // NEITHER LESS-THAN NOR EQUIVALENT TO return rune(0x2274), true - case "NotNestedGreaterGreater": - // DOUBLE NESTED GREATER-THAN with slash + case "NotNestedGreaterGreater": // DOUBLE NESTED GREATER-THAN with slash return rune(0x2aa2), true - case "NotNestedLessLess": - // DOUBLE NESTED LESS-THAN with slash + case "NotNestedLessLess": // DOUBLE NESTED LESS-THAN with slash return rune(0x2aa1), true - case "NotPrecedesEqual": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash - return rune(0x2aaf), true - case "NotPrecedes": - // DOES NOT PRECEDE + case "NotPrecedes": // DOES NOT PRECEDE return rune(0x2280), true - case "NotPrecedesSlantEqual": - // DOES NOT PRECEDE OR EQUAL + case "NotPrecedesEqual": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash + return rune(0x2aaf), true + case "NotPrecedesSlantEqual": // DOES NOT PRECEDE OR EQUAL return rune(0x22e0), true - case "NotRightTriangleBar": - // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash - return rune(0x29d0), true - case "NotRightTriangle": - // DOES NOT CONTAIN AS NORMAL SUBGROUP + case "NotReverseElement": // DOES NOT CONTAIN AS MEMBER + return rune(0x220c), true + case "NotRightTriangle": // DOES NOT CONTAIN AS NORMAL SUBGROUP return rune(0x22eb), true - case "NotRightTriangleEqual": - // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL + case "NotRightTriangleBar": // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash + return rune(0x29d0), true + case "NotRightTriangleEqual": // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL return rune(0x22ed), true - case "NotSquareSubset": - // SQUARE IMAGE OF with slash + case "NotSquareSubset": // SQUARE IMAGE OF with slash return rune(0x228f), true - case "NotSquareSubsetEqual": - // NOT SQUARE IMAGE OF OR EQUAL TO + case "NotSquareSubsetEqual": // NOT SQUARE IMAGE OF OR EQUAL TO return rune(0x22e2), true - case "NotSquareSuperset": - // SQUARE ORIGINAL OF with slash + case "NotSquareSuperset": // SQUARE ORIGINAL OF with slash return rune(0x2290), true - case "NotSquareSupersetEqual": - // NOT SQUARE ORIGINAL OF OR EQUAL TO + case "NotSquareSupersetEqual": // NOT SQUARE ORIGINAL OF OR EQUAL TO return rune(0x22e3), true - case "NotSubset": - // SUBSET OF with vertical line + case "NotSubset": // SUBSET OF with vertical line return rune(0x2282), true - case "NotSubsetEqual": - // NEITHER A SUBSET OF NOR EQUAL TO + case "NotSubsetEqual": // NEITHER A SUBSET OF NOR EQUAL TO return rune(0x2288), true - case "NotSucceedsEqual": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash - return rune(0x2ab0), true - case "NotSucceedsTilde": - // SUCCEEDS OR EQUIVALENT TO with slash - return rune(0x227f), true - case "NotSucceeds": - // DOES NOT SUCCEED + case "NotSucceeds": // DOES NOT SUCCEED return rune(0x2281), true - case "NotSucceedsSlantEqual": - // DOES NOT SUCCEED OR EQUAL + case "NotSucceedsEqual": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash + return rune(0x2ab0), true + case "NotSucceedsSlantEqual": // DOES NOT SUCCEED OR EQUAL return rune(0x22e1), true - case "NotSuperset": - // SUPERSET OF with vertical line + case "NotSucceedsTilde": // SUCCEEDS OR EQUIVALENT TO with slash + return rune(0x227f), true + case "NotSuperset": // SUPERSET OF with vertical line return rune(0x2283), true - case "NotSupersetEqual": - // NEITHER A SUPERSET OF NOR EQUAL TO + case "NotSupersetEqual": // NEITHER A SUPERSET OF NOR EQUAL TO return rune(0x2289), true - case "Nscr": - // MATHEMATICAL SCRIPT CAPITAL N + case "NotTilde": // NOT TILDE + return rune(0x2241), true + case "NotTildeEqual": // NOT ASYMPTOTICALLY EQUAL TO + return rune(0x2244), true + case "NotTildeFullEqual": // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO + return rune(0x2247), true + case "NotTildeTilde": // NOT ALMOST EQUAL TO + return rune(0x2249), true + case "NotVerticalBar": // DOES NOT DIVIDE + return rune(0x2224), true + case "Nscr": // MATHEMATICAL SCRIPT CAPITAL N return rune(0x01d4a9), true - case "Ntilde": - // LATIN CAPITAL LETTER N WITH TILDE + case "Ntilde": // LATIN CAPITAL LETTER N WITH TILDE return rune(0xd1), true - case "Nu": - // GREEK CAPITAL LETTER NU + case "Nu": // GREEK CAPITAL LETTER NU return rune(0x039d), true } case 'O': switch name { - case "OElig": - // LATIN CAPITAL LIGATURE OE + case "OElig": // LATIN CAPITAL LIGATURE OE return rune(0x0152), true - case "OHacgr": - // GREEK CAPITAL LETTER OMEGA WITH TONOS + case "OHacgr": // GREEK CAPITAL LETTER OMEGA WITH TONOS return rune(0x038f), true - case "OHgr": - // GREEK CAPITAL LETTER OMEGA + case "OHgr": // GREEK CAPITAL LETTER OMEGA return rune(0x03a9), true - case "Oacgr": - // GREEK CAPITAL LETTER OMICRON WITH TONOS + case "Oacgr": // GREEK CAPITAL LETTER OMICRON WITH TONOS return rune(0x038c), true - case "Oacute": - // LATIN CAPITAL LETTER O WITH ACUTE + case "Oacute": // LATIN CAPITAL LETTER O WITH ACUTE return rune(0xd3), true - case "Ocirc": - // LATIN CAPITAL LETTER O WITH CIRCUMFLEX + case "Ocirc": // LATIN CAPITAL LETTER O WITH CIRCUMFLEX return rune(0xd4), true - case "Ocy": - // CYRILLIC CAPITAL LETTER O + case "Ocy": // CYRILLIC CAPITAL LETTER O return rune(0x041e), true - case "Odblac": - // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + case "Odblac": // LATIN CAPITAL LETTER O WITH DOUBLE ACUTE return rune(0x0150), true - case "Ofr": - // MATHEMATICAL FRAKTUR CAPITAL O + case "Ofr": // MATHEMATICAL FRAKTUR CAPITAL O return rune(0x01d512), true - case "Ograve": - // LATIN CAPITAL LETTER O WITH GRAVE + case "Ogr": // GREEK CAPITAL LETTER OMICRON + return rune(0x039f), true + case "Ograve": // LATIN CAPITAL LETTER O WITH GRAVE return rune(0xd2), true - case "Ogr": - // GREEK CAPITAL LETTER OMICRON - return rune(0x039f), true - case "Omacr": - // LATIN CAPITAL LETTER O WITH MACRON + case "Omacr": // LATIN CAPITAL LETTER O WITH MACRON return rune(0x014c), true - case "Omega": - // GREEK CAPITAL LETTER OMEGA + case "Omega": // GREEK CAPITAL LETTER OMEGA return rune(0x03a9), true - case "Omicron": - // GREEK CAPITAL LETTER OMICRON + case "Omicron": // GREEK CAPITAL LETTER OMICRON return rune(0x039f), true - case "Oopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL O + case "Oopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL O return rune(0x01d546), true - case "OpenCurlyDoubleQuote": - // LEFT DOUBLE QUOTATION MARK + case "OpenCurlyDoubleQuote": // LEFT DOUBLE QUOTATION MARK return rune(0x201c), true - case "OpenCurlyQuote": - // LEFT SINGLE QUOTATION MARK + case "OpenCurlyQuote": // LEFT SINGLE QUOTATION MARK return rune(0x2018), true - case "Or": - // DOUBLE LOGICAL OR + case "Or": // DOUBLE LOGICAL OR return rune(0x2a54), true - case "Oscr": - // MATHEMATICAL SCRIPT CAPITAL O + case "Oscr": // MATHEMATICAL SCRIPT CAPITAL O return rune(0x01d4aa), true - case "Oslash": - // LATIN CAPITAL LETTER O WITH STROKE + case "Oslash": // LATIN CAPITAL LETTER O WITH STROKE return rune(0xd8), true - case "Otilde": - // LATIN CAPITAL LETTER O WITH TILDE + case "Otilde": // LATIN CAPITAL LETTER O WITH TILDE return rune(0xd5), true - case "Otimes": - // MULTIPLICATION SIGN IN DOUBLE CIRCLE + case "Otimes": // MULTIPLICATION SIGN IN DOUBLE CIRCLE return rune(0x2a37), true - case "Ouml": - // LATIN CAPITAL LETTER O WITH DIAERESIS + case "Ouml": // LATIN CAPITAL LETTER O WITH DIAERESIS return rune(0xd6), true - case "OverBar": - // OVERLINE + case "OverBar": // OVERLINE return rune(0x203e), true - case "OverBrace": - // TOP CURLY BRACKET + case "OverBrace": // TOP CURLY BRACKET return rune(0x23de), true - case "OverBracket": - // TOP SQUARE BRACKET + case "OverBracket": // TOP SQUARE BRACKET return rune(0x23b4), true - case "OverParenthesis": - // TOP PARENTHESIS + case "OverParenthesis": // TOP PARENTHESIS return rune(0x23dc), true } case 'P': switch name { - case "PHgr": - // GREEK CAPITAL LETTER PHI + case "PHgr": // GREEK CAPITAL LETTER PHI return rune(0x03a6), true - case "PSgr": - // GREEK CAPITAL LETTER PSI + case "PSgr": // GREEK CAPITAL LETTER PSI return rune(0x03a8), true - case "PartialD": - // PARTIAL DIFFERENTIAL + case "PartialD": // PARTIAL DIFFERENTIAL return rune(0x2202), true - case "Pcy": - // CYRILLIC CAPITAL LETTER PE + case "Pcy": // CYRILLIC CAPITAL LETTER PE return rune(0x041f), true - case "Pfr": - // MATHEMATICAL FRAKTUR CAPITAL P + case "Pfr": // MATHEMATICAL FRAKTUR CAPITAL P return rune(0x01d513), true - case "Pgr": - // GREEK CAPITAL LETTER PI + case "Pgr": // GREEK CAPITAL LETTER PI return rune(0x03a0), true - case "Phi": - // GREEK CAPITAL LETTER PHI + case "Phi": // GREEK CAPITAL LETTER PHI return rune(0x03a6), true - case "Pi": - // GREEK CAPITAL LETTER PI + case "Pi": // GREEK CAPITAL LETTER PI return rune(0x03a0), true - case "PlusMinus": - // PLUS-MINUS SIGN + case "PlusMinus": // PLUS-MINUS SIGN return rune(0xb1), true - case "Poincareplane": - // BLACK-LETTER CAPITAL H + case "Poincareplane": // BLACK-LETTER CAPITAL H return rune(0x210c), true - case "Popf": - // DOUBLE-STRUCK CAPITAL P + case "Popf": // DOUBLE-STRUCK CAPITAL P return rune(0x2119), true - case "Product": - // N-ARY PRODUCT - return rune(0x220f), true - case "Proportional": - // PROPORTIONAL TO - return rune(0x221d), true - case "Proportion": - // PROPORTION - return rune(0x2237), true - case "Pr": - // DOUBLE PRECEDES + case "Pr": // DOUBLE PRECEDES return rune(0x2abb), true - case "PrecedesEqual": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN - return rune(0x2aaf), true - case "Precedes": - // PRECEDES + case "Precedes": // PRECEDES return rune(0x227a), true - case "PrecedesSlantEqual": - // PRECEDES OR EQUAL TO + case "PrecedesEqual": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + return rune(0x2aaf), true + case "PrecedesSlantEqual": // PRECEDES OR EQUAL TO return rune(0x227c), true - case "PrecedesTilde": - // PRECEDES OR EQUIVALENT TO + case "PrecedesTilde": // PRECEDES OR EQUIVALENT TO return rune(0x227e), true - case "Prime": - // DOUBLE PRIME + case "Prime": // DOUBLE PRIME return rune(0x2033), true - case "Pscr": - // MATHEMATICAL SCRIPT CAPITAL P + case "Product": // N-ARY PRODUCT + return rune(0x220f), true + case "Proportion": // PROPORTION + return rune(0x2237), true + case "Proportional": // PROPORTIONAL TO + return rune(0x221d), true + case "Pscr": // MATHEMATICAL SCRIPT CAPITAL P return rune(0x01d4ab), true - case "Psi": - // GREEK CAPITAL LETTER PSI + case "Psi": // GREEK CAPITAL LETTER PSI return rune(0x03a8), true } case 'Q': switch name { - case "QUOT": - // QUOTATION MARK + case "QUOT": // QUOTATION MARK return rune(0x22), true - case "Qfr": - // MATHEMATICAL FRAKTUR CAPITAL Q + case "Qfr": // MATHEMATICAL FRAKTUR CAPITAL Q return rune(0x01d514), true - case "Qopf": - // DOUBLE-STRUCK CAPITAL Q + case "Qopf": // DOUBLE-STRUCK CAPITAL Q return rune(0x211a), true - case "Qscr": - // MATHEMATICAL SCRIPT CAPITAL Q + case "Qscr": // MATHEMATICAL SCRIPT CAPITAL Q return rune(0x01d4ac), true } case 'R': switch name { - case "RBarr": - // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW + case "RBarr": // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW return rune(0x2910), true - case "REG": - // REGISTERED SIGN + case "REG": // REGISTERED SIGN return rune(0xae), true - case "Racute": - // LATIN CAPITAL LETTER R WITH ACUTE + case "Racute": // LATIN CAPITAL LETTER R WITH ACUTE return rune(0x0154), true - case "Rang": - // MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET + case "Rang": // MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET return rune(0x27eb), true - case "Rarr": - // RIGHTWARDS TWO HEADED ARROW + case "Rarr": // RIGHTWARDS TWO HEADED ARROW return rune(0x21a0), true - case "Rarrtl": - // RIGHTWARDS TWO-HEADED ARROW WITH TAIL + case "Rarrtl": // RIGHTWARDS TWO-HEADED ARROW WITH TAIL return rune(0x2916), true - case "Rcaron": - // LATIN CAPITAL LETTER R WITH CARON + case "Rcaron": // LATIN CAPITAL LETTER R WITH CARON return rune(0x0158), true - case "Rcedil": - // LATIN CAPITAL LETTER R WITH CEDILLA + case "Rcedil": // LATIN CAPITAL LETTER R WITH CEDILLA return rune(0x0156), true - case "Rcy": - // CYRILLIC CAPITAL LETTER ER + case "Rcy": // CYRILLIC CAPITAL LETTER ER return rune(0x0420), true - case "ReverseElement": - // CONTAINS AS MEMBER + case "Re": // BLACK-LETTER CAPITAL R + return rune(0x211c), true + case "ReverseElement": // CONTAINS AS MEMBER return rune(0x220b), true - case "ReverseEquilibrium": - // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + case "ReverseEquilibrium": // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON return rune(0x21cb), true - case "Re": - // BLACK-LETTER CAPITAL R - return rune(0x211c), true - case "ReverseUpEquilibrium": - // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT + case "ReverseUpEquilibrium": // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT return rune(0x296f), true - case "Rfr": - // BLACK-LETTER CAPITAL R + case "Rfr": // BLACK-LETTER CAPITAL R return rune(0x211c), true - case "Rgr": - // GREEK CAPITAL LETTER RHO + case "Rgr": // GREEK CAPITAL LETTER RHO return rune(0x03a1), true - case "Rho": - // GREEK CAPITAL LETTER RHO + case "Rho": // GREEK CAPITAL LETTER RHO return rune(0x03a1), true - case "RightAngleBracket": - // MATHEMATICAL RIGHT ANGLE BRACKET + case "RightAngleBracket": // MATHEMATICAL RIGHT ANGLE BRACKET return rune(0x27e9), true - case "RightArrowBar": - // RIGHTWARDS ARROW TO BAR - return rune(0x21e5), true - case "RightArrow": - // RIGHTWARDS ARROW + case "RightArrow": // RIGHTWARDS ARROW return rune(0x2192), true - case "RightArrowLeftArrow": - // RIGHTWARDS ARROW OVER LEFTWARDS ARROW + case "RightArrowBar": // RIGHTWARDS ARROW TO BAR + return rune(0x21e5), true + case "RightArrowLeftArrow": // RIGHTWARDS ARROW OVER LEFTWARDS ARROW return rune(0x21c4), true - case "RightCeiling": - // RIGHT CEILING + case "RightCeiling": // RIGHT CEILING return rune(0x2309), true - case "RightDoubleBracket": - // MATHEMATICAL RIGHT WHITE SQUARE BRACKET + case "RightDoubleBracket": // MATHEMATICAL RIGHT WHITE SQUARE BRACKET return rune(0x27e7), true - case "RightDownTeeVector": - // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR + case "RightDownTeeVector": // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR return rune(0x295d), true - case "RightDownVector": - // DOWNWARDS HARPOON WITH BARB RIGHTWARDS + case "RightDownVector": // DOWNWARDS HARPOON WITH BARB RIGHTWARDS return rune(0x21c2), true - case "RightDownVectorBar": - // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR + case "RightDownVectorBar": // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR return rune(0x2955), true - case "RightFloor": - // RIGHT FLOOR + case "RightFloor": // RIGHT FLOOR return rune(0x230b), true - case "RightTeeArrow": - // RIGHTWARDS ARROW FROM BAR - return rune(0x21a6), true - case "RightTeeVector": - // RIGHTWARDS HARPOON WITH BARB UP FROM BAR - return rune(0x295b), true - case "RightTee": - // RIGHT TACK + case "RightTee": // RIGHT TACK return rune(0x22a2), true - case "RightTriangleBar": - // VERTICAL BAR BESIDE RIGHT TRIANGLE - return rune(0x29d0), true - case "RightTriangle": - // CONTAINS AS NORMAL SUBGROUP + case "RightTeeArrow": // RIGHTWARDS ARROW FROM BAR + return rune(0x21a6), true + case "RightTeeVector": // RIGHTWARDS HARPOON WITH BARB UP FROM BAR + return rune(0x295b), true + case "RightTriangle": // CONTAINS AS NORMAL SUBGROUP return rune(0x22b3), true - case "RightTriangleEqual": - // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO + case "RightTriangleBar": // VERTICAL BAR BESIDE RIGHT TRIANGLE + return rune(0x29d0), true + case "RightTriangleEqual": // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO return rune(0x22b5), true - case "RightUpDownVector": - // UP BARB RIGHT DOWN BARB RIGHT HARPOON + case "RightUpDownVector": // UP BARB RIGHT DOWN BARB RIGHT HARPOON return rune(0x294f), true - case "RightUpTeeVector": - // UPWARDS HARPOON WITH BARB RIGHT FROM BAR + case "RightUpTeeVector": // UPWARDS HARPOON WITH BARB RIGHT FROM BAR return rune(0x295c), true - case "RightUpVector": - // UPWARDS HARPOON WITH BARB RIGHTWARDS + case "RightUpVector": // UPWARDS HARPOON WITH BARB RIGHTWARDS return rune(0x21be), true - case "RightUpVectorBar": - // UPWARDS HARPOON WITH BARB RIGHT TO BAR + case "RightUpVectorBar": // UPWARDS HARPOON WITH BARB RIGHT TO BAR return rune(0x2954), true - case "RightVector": - // RIGHTWARDS HARPOON WITH BARB UPWARDS + case "RightVector": // RIGHTWARDS HARPOON WITH BARB UPWARDS return rune(0x21c0), true - case "RightVectorBar": - // RIGHTWARDS HARPOON WITH BARB UP TO BAR + case "RightVectorBar": // RIGHTWARDS HARPOON WITH BARB UP TO BAR return rune(0x2953), true - case "Rightarrow": - // RIGHTWARDS DOUBLE ARROW + case "Rightarrow": // RIGHTWARDS DOUBLE ARROW return rune(0x21d2), true - case "Ropf": - // DOUBLE-STRUCK CAPITAL R + case "Ropf": // DOUBLE-STRUCK CAPITAL R return rune(0x211d), true - case "RoundImplies": - // RIGHT DOUBLE ARROW WITH ROUNDED HEAD + case "RoundImplies": // RIGHT DOUBLE ARROW WITH ROUNDED HEAD return rune(0x2970), true - case "Rrightarrow": - // RIGHTWARDS TRIPLE ARROW + case "Rrightarrow": // RIGHTWARDS TRIPLE ARROW return rune(0x21db), true - case "Rscr": - // SCRIPT CAPITAL R + case "Rscr": // SCRIPT CAPITAL R return rune(0x211b), true - case "Rsh": - // UPWARDS ARROW WITH TIP RIGHTWARDS + case "Rsh": // UPWARDS ARROW WITH TIP RIGHTWARDS return rune(0x21b1), true - case "RuleDelayed": - // RULE-DELAYED + case "RuleDelayed": // RULE-DELAYED return rune(0x29f4), true } case 'S': switch name { - case "SHCHcy": - // CYRILLIC CAPITAL LETTER SHCHA + case "SHCHcy": // CYRILLIC CAPITAL LETTER SHCHA return rune(0x0429), true - case "SHcy": - // CYRILLIC CAPITAL LETTER SHA + case "SHcy": // CYRILLIC CAPITAL LETTER SHA return rune(0x0428), true - case "SOFTcy": - // CYRILLIC CAPITAL LETTER SOFT SIGN + case "SOFTcy": // CYRILLIC CAPITAL LETTER SOFT SIGN return rune(0x042c), true - case "Sacute": - // LATIN CAPITAL LETTER S WITH ACUTE + case "Sacute": // LATIN CAPITAL LETTER S WITH ACUTE return rune(0x015a), true - case "Sc": - // DOUBLE SUCCEEDS + case "Sc": // DOUBLE SUCCEEDS return rune(0x2abc), true - case "Scaron": - // LATIN CAPITAL LETTER S WITH CARON + case "Scaron": // LATIN CAPITAL LETTER S WITH CARON return rune(0x0160), true - case "Scedil": - // LATIN CAPITAL LETTER S WITH CEDILLA + case "Scedil": // LATIN CAPITAL LETTER S WITH CEDILLA return rune(0x015e), true - case "Scirc": - // LATIN CAPITAL LETTER S WITH CIRCUMFLEX + case "Scirc": // LATIN CAPITAL LETTER S WITH CIRCUMFLEX return rune(0x015c), true - case "Scy": - // CYRILLIC CAPITAL LETTER ES + case "Scy": // CYRILLIC CAPITAL LETTER ES return rune(0x0421), true - case "Sfr": - // MATHEMATICAL FRAKTUR CAPITAL S + case "Sfr": // MATHEMATICAL FRAKTUR CAPITAL S return rune(0x01d516), true - case "Sgr": - // GREEK CAPITAL LETTER SIGMA + case "Sgr": // GREEK CAPITAL LETTER SIGMA return rune(0x03a3), true - case "ShortDownArrow": - // DOWNWARDS ARROW + case "ShortDownArrow": // DOWNWARDS ARROW return rune(0x2193), true - case "ShortLeftArrow": - // LEFTWARDS ARROW + case "ShortLeftArrow": // LEFTWARDS ARROW return rune(0x2190), true - case "ShortRightArrow": - // RIGHTWARDS ARROW + case "ShortRightArrow": // RIGHTWARDS ARROW return rune(0x2192), true - case "ShortUpArrow": - // UPWARDS ARROW + case "ShortUpArrow": // UPWARDS ARROW return rune(0x2191), true - case "Sigma": - // GREEK CAPITAL LETTER SIGMA + case "Sigma": // GREEK CAPITAL LETTER SIGMA return rune(0x03a3), true - case "SmallCircle": - // RING OPERATOR + case "SmallCircle": // RING OPERATOR return rune(0x2218), true - case "Sopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL S + case "Sopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL S return rune(0x01d54a), true - case "Sqrt": - // SQUARE ROOT + case "Sqrt": // SQUARE ROOT return rune(0x221a), true - case "SquareIntersection": - // SQUARE CAP - return rune(0x2293), true - case "SquareSubset": - // SQUARE IMAGE OF - return rune(0x228f), true - case "SquareSubsetEqual": - // SQUARE IMAGE OF OR EQUAL TO - return rune(0x2291), true - case "Square": - // WHITE SQUARE + case "Square": // WHITE SQUARE return rune(0x25a1), true - case "SquareSuperset": - // SQUARE ORIGINAL OF + case "SquareIntersection": // SQUARE CAP + return rune(0x2293), true + case "SquareSubset": // SQUARE IMAGE OF + return rune(0x228f), true + case "SquareSubsetEqual": // SQUARE IMAGE OF OR EQUAL TO + return rune(0x2291), true + case "SquareSuperset": // SQUARE ORIGINAL OF return rune(0x2290), true - case "SquareSupersetEqual": - // SQUARE ORIGINAL OF OR EQUAL TO + case "SquareSupersetEqual": // SQUARE ORIGINAL OF OR EQUAL TO return rune(0x2292), true - case "SquareUnion": - // SQUARE CUP + case "SquareUnion": // SQUARE CUP return rune(0x2294), true - case "Sscr": - // MATHEMATICAL SCRIPT CAPITAL S + case "Sscr": // MATHEMATICAL SCRIPT CAPITAL S return rune(0x01d4ae), true - case "Star": - // STAR OPERATOR + case "Star": // STAR OPERATOR return rune(0x22c6), true - case "Sub": - // DOUBLE SUBSET + case "Sub": // DOUBLE SUBSET return rune(0x22d0), true - case "Subset": - // DOUBLE SUBSET + case "Subset": // DOUBLE SUBSET return rune(0x22d0), true - case "SubsetEqual": - // SUBSET OF OR EQUAL TO + case "SubsetEqual": // SUBSET OF OR EQUAL TO return rune(0x2286), true - case "Succeeds": - // SUCCEEDS + case "Succeeds": // SUCCEEDS return rune(0x227b), true - case "SucceedsEqual": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + case "SucceedsEqual": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN return rune(0x2ab0), true - case "SucceedsSlantEqual": - // SUCCEEDS OR EQUAL TO + case "SucceedsSlantEqual": // SUCCEEDS OR EQUAL TO return rune(0x227d), true - case "SucceedsTilde": - // SUCCEEDS OR EQUIVALENT TO + case "SucceedsTilde": // SUCCEEDS OR EQUIVALENT TO return rune(0x227f), true - case "SuchThat": - // CONTAINS AS MEMBER + case "SuchThat": // CONTAINS AS MEMBER return rune(0x220b), true - case "Sum": - // N-ARY SUMMATION + case "Sum": // N-ARY SUMMATION return rune(0x2211), true - case "SupersetEqual": - // SUPERSET OF OR EQUAL TO - return rune(0x2287), true - case "Sup": - // DOUBLE SUPERSET + case "Sup": // DOUBLE SUPERSET return rune(0x22d1), true - case "Superset": - // SUPERSET OF + case "Superset": // SUPERSET OF return rune(0x2283), true - case "Supset": - // DOUBLE SUPERSET + case "SupersetEqual": // SUPERSET OF OR EQUAL TO + return rune(0x2287), true + case "Supset": // DOUBLE SUPERSET return rune(0x22d1), true } case 'T': switch name { - case "THORN": - // LATIN CAPITAL LETTER THORN + case "THORN": // LATIN CAPITAL LETTER THORN return rune(0xde), true - case "THgr": - // GREEK CAPITAL LETTER THETA + case "THgr": // GREEK CAPITAL LETTER THETA return rune(0x0398), true - case "TRADE": - // TRADE MARK SIGN + case "TRADE": // TRADE MARK SIGN return rune(0x2122), true - case "TSHcy": - // CYRILLIC CAPITAL LETTER TSHE + case "TSHcy": // CYRILLIC CAPITAL LETTER TSHE return rune(0x040b), true - case "TScy": - // CYRILLIC CAPITAL LETTER TSE + case "TScy": // CYRILLIC CAPITAL LETTER TSE return rune(0x0426), true - case "Tab": - // CHARACTER TABULATION + case "Tab": // CHARACTER TABULATION return rune(0x09), true - case "Tau": - // GREEK CAPITAL LETTER TAU + case "Tau": // GREEK CAPITAL LETTER TAU return rune(0x03a4), true - case "Tcaron": - // LATIN CAPITAL LETTER T WITH CARON + case "Tcaron": // LATIN CAPITAL LETTER T WITH CARON return rune(0x0164), true - case "Tcedil": - // LATIN CAPITAL LETTER T WITH CEDILLA + case "Tcedil": // LATIN CAPITAL LETTER T WITH CEDILLA return rune(0x0162), true - case "Tcy": - // CYRILLIC CAPITAL LETTER TE + case "Tcy": // CYRILLIC CAPITAL LETTER TE return rune(0x0422), true - case "Tfr": - // MATHEMATICAL FRAKTUR CAPITAL T + case "Tfr": // MATHEMATICAL FRAKTUR CAPITAL T return rune(0x01d517), true - case "Tgr": - // GREEK CAPITAL LETTER TAU + case "Tgr": // GREEK CAPITAL LETTER TAU return rune(0x03a4), true - case "Therefore": - // THEREFORE + case "Therefore": // THEREFORE return rune(0x2234), true - case "Theta": - // GREEK CAPITAL LETTER THETA + case "Theta": // GREEK CAPITAL LETTER THETA return rune(0x0398), true - case "Thetav": - // GREEK CAPITAL THETA SYMBOL + case "Thetav": // GREEK CAPITAL THETA SYMBOL return rune(0x03f4), true - case "ThickSpace": - // space of width 5/18 em + case "ThickSpace": // space of width 5/18 em return rune(0x205f), true - case "ThinSpace": - // THIN SPACE + case "ThinSpace": // THIN SPACE return rune(0x2009), true - case "Tilde": - // TILDE OPERATOR + case "Tilde": // TILDE OPERATOR return rune(0x223c), true - case "TildeEqual": - // ASYMPTOTICALLY EQUAL TO + case "TildeEqual": // ASYMPTOTICALLY EQUAL TO return rune(0x2243), true - case "TildeFullEqual": - // APPROXIMATELY EQUAL TO + case "TildeFullEqual": // APPROXIMATELY EQUAL TO return rune(0x2245), true - case "TildeTilde": - // ALMOST EQUAL TO + case "TildeTilde": // ALMOST EQUAL TO return rune(0x2248), true - case "Topf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL T + case "Topf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL T return rune(0x01d54b), true - case "TripleDot": - // COMBINING THREE DOTS ABOVE + case "TripleDot": // COMBINING THREE DOTS ABOVE return rune(0x20db), true - case "Tscr": - // MATHEMATICAL SCRIPT CAPITAL T + case "Tscr": // MATHEMATICAL SCRIPT CAPITAL T return rune(0x01d4af), true - case "Tstrok": - // LATIN CAPITAL LETTER T WITH STROKE + case "Tstrok": // LATIN CAPITAL LETTER T WITH STROKE return rune(0x0166), true } case 'U': switch name { - case "Uacgr": - // GREEK CAPITAL LETTER UPSILON WITH TONOS + case "Uacgr": // GREEK CAPITAL LETTER UPSILON WITH TONOS return rune(0x038e), true - case "Uacute": - // LATIN CAPITAL LETTER U WITH ACUTE + case "Uacute": // LATIN CAPITAL LETTER U WITH ACUTE return rune(0xda), true - case "Uarrocir": - // UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE - return rune(0x2949), true - case "Uarr": - // UPWARDS TWO HEADED ARROW + case "Uarr": // UPWARDS TWO HEADED ARROW return rune(0x219f), true - case "Ubrcy": - // CYRILLIC CAPITAL LETTER SHORT U + case "Uarrocir": // UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE + return rune(0x2949), true + case "Ubrcy": // CYRILLIC CAPITAL LETTER SHORT U return rune(0x040e), true - case "Ubreve": - // LATIN CAPITAL LETTER U WITH BREVE + case "Ubreve": // LATIN CAPITAL LETTER U WITH BREVE return rune(0x016c), true - case "Ucirc": - // LATIN CAPITAL LETTER U WITH CIRCUMFLEX + case "Ucirc": // LATIN CAPITAL LETTER U WITH CIRCUMFLEX return rune(0xdb), true - case "Ucy": - // CYRILLIC CAPITAL LETTER U + case "Ucy": // CYRILLIC CAPITAL LETTER U return rune(0x0423), true - case "Udblac": - // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + case "Udblac": // LATIN CAPITAL LETTER U WITH DOUBLE ACUTE return rune(0x0170), true - case "Udigr": - // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA + case "Udigr": // GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA return rune(0x03ab), true - case "Ufr": - // MATHEMATICAL FRAKTUR CAPITAL U + case "Ufr": // MATHEMATICAL FRAKTUR CAPITAL U return rune(0x01d518), true - case "Ugrave": - // LATIN CAPITAL LETTER U WITH GRAVE + case "Ugr": // GREEK CAPITAL LETTER UPSILON + return rune(0x03a5), true + case "Ugrave": // LATIN CAPITAL LETTER U WITH GRAVE return rune(0xd9), true - case "Ugr": - // GREEK CAPITAL LETTER UPSILON - return rune(0x03a5), true - case "Umacr": - // LATIN CAPITAL LETTER U WITH MACRON + case "Umacr": // LATIN CAPITAL LETTER U WITH MACRON return rune(0x016a), true - case "UnderBar": - // LOW LINE + case "UnderBar": // LOW LINE return rune(0x5f), true - case "UnderBrace": - // BOTTOM CURLY BRACKET + case "UnderBrace": // BOTTOM CURLY BRACKET return rune(0x23df), true - case "UnderBracket": - // BOTTOM SQUARE BRACKET + case "UnderBracket": // BOTTOM SQUARE BRACKET return rune(0x23b5), true - case "UnderParenthesis": - // BOTTOM PARENTHESIS + case "UnderParenthesis": // BOTTOM PARENTHESIS return rune(0x23dd), true - case "Union": - // N-ARY UNION + case "Union": // N-ARY UNION return rune(0x22c3), true - case "UnionPlus": - // MULTISET UNION + case "UnionPlus": // MULTISET UNION return rune(0x228e), true - case "Uogon": - // LATIN CAPITAL LETTER U WITH OGONEK + case "Uogon": // LATIN CAPITAL LETTER U WITH OGONEK return rune(0x0172), true - case "Uopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL U + case "Uopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL U return rune(0x01d54c), true - case "UpArrow": - // UPWARDS ARROW + case "UpArrow": // UPWARDS ARROW return rune(0x2191), true - case "UpArrowBar": - // UPWARDS ARROW TO BAR + case "UpArrowBar": // UPWARDS ARROW TO BAR return rune(0x2912), true - case "UpArrowDownArrow": - // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW + case "UpArrowDownArrow": // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW return rune(0x21c5), true - case "UpDownArrow": - // UP DOWN ARROW + case "UpDownArrow": // UP DOWN ARROW return rune(0x2195), true - case "UpEquilibrium": - // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT + case "UpEquilibrium": // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT return rune(0x296e), true - case "UpTee": - // UP TACK + case "UpTee": // UP TACK return rune(0x22a5), true - case "UpTeeArrow": - // UPWARDS ARROW FROM BAR + case "UpTeeArrow": // UPWARDS ARROW FROM BAR return rune(0x21a5), true - case "Uparrow": - // UPWARDS DOUBLE ARROW + case "Uparrow": // UPWARDS DOUBLE ARROW return rune(0x21d1), true - case "Updownarrow": - // UP DOWN DOUBLE ARROW + case "Updownarrow": // UP DOWN DOUBLE ARROW return rune(0x21d5), true - case "UpperLeftArrow": - // NORTH WEST ARROW + case "UpperLeftArrow": // NORTH WEST ARROW return rune(0x2196), true - case "UpperRightArrow": - // NORTH EAST ARROW + case "UpperRightArrow": // NORTH EAST ARROW return rune(0x2197), true - case "Upsilon": - // GREEK CAPITAL LETTER UPSILON - return rune(0x03a5), true - case "Upsi": - // GREEK UPSILON WITH HOOK SYMBOL + case "Upsi": // GREEK UPSILON WITH HOOK SYMBOL return rune(0x03d2), true - case "Uring": - // LATIN CAPITAL LETTER U WITH RING ABOVE + case "Upsilon": // GREEK CAPITAL LETTER UPSILON + return rune(0x03a5), true + case "Uring": // LATIN CAPITAL LETTER U WITH RING ABOVE return rune(0x016e), true - case "Uscr": - // MATHEMATICAL SCRIPT CAPITAL U + case "Uscr": // MATHEMATICAL SCRIPT CAPITAL U return rune(0x01d4b0), true - case "Utilde": - // LATIN CAPITAL LETTER U WITH TILDE + case "Utilde": // LATIN CAPITAL LETTER U WITH TILDE return rune(0x0168), true - case "Uuml": - // LATIN CAPITAL LETTER U WITH DIAERESIS + case "Uuml": // LATIN CAPITAL LETTER U WITH DIAERESIS return rune(0xdc), true } case 'V': switch name { - case "VDash": - // DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE + case "VDash": // DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE return rune(0x22ab), true - case "Vbar": - // DOUBLE UP TACK + case "Vbar": // DOUBLE UP TACK return rune(0x2aeb), true - case "Vcy": - // CYRILLIC CAPITAL LETTER VE + case "Vcy": // CYRILLIC CAPITAL LETTER VE return rune(0x0412), true - case "Vdashl": - // LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL - return rune(0x2ae6), true - case "Vdash": - // FORCES + case "Vdash": // FORCES return rune(0x22a9), true - case "Vee": - // N-ARY LOGICAL OR + case "Vdashl": // LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL + return rune(0x2ae6), true + case "Vee": // N-ARY LOGICAL OR return rune(0x22c1), true - case "Verbar": - // DOUBLE VERTICAL LINE + case "Verbar": // DOUBLE VERTICAL LINE return rune(0x2016), true - case "Vert": - // DOUBLE VERTICAL LINE + case "Vert": // DOUBLE VERTICAL LINE return rune(0x2016), true - case "VerticalBar": - // DIVIDES + case "VerticalBar": // DIVIDES return rune(0x2223), true - case "VerticalLine": - // VERTICAL LINE + case "VerticalLine": // VERTICAL LINE return rune(0x7c), true - case "VerticalSeparator": - // LIGHT VERTICAL BAR + case "VerticalSeparator": // LIGHT VERTICAL BAR return rune(0x2758), true - case "VerticalTilde": - // WREATH PRODUCT + case "VerticalTilde": // WREATH PRODUCT return rune(0x2240), true - case "VeryThinSpace": - // HAIR SPACE + case "VeryThinSpace": // HAIR SPACE return rune(0x200a), true - case "Vfr": - // MATHEMATICAL FRAKTUR CAPITAL V + case "Vfr": // MATHEMATICAL FRAKTUR CAPITAL V return rune(0x01d519), true - case "Vopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL V + case "Vopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL V return rune(0x01d54d), true - case "Vscr": - // MATHEMATICAL SCRIPT CAPITAL V + case "Vscr": // MATHEMATICAL SCRIPT CAPITAL V return rune(0x01d4b1), true - case "Vvdash": - // TRIPLE VERTICAL BAR RIGHT TURNSTILE + case "Vvdash": // TRIPLE VERTICAL BAR RIGHT TURNSTILE return rune(0x22aa), true } case 'W': switch name { - case "Wcirc": - // LATIN CAPITAL LETTER W WITH CIRCUMFLEX + case "Wcirc": // LATIN CAPITAL LETTER W WITH CIRCUMFLEX return rune(0x0174), true - case "Wedge": - // N-ARY LOGICAL AND + case "Wedge": // N-ARY LOGICAL AND return rune(0x22c0), true - case "Wfr": - // MATHEMATICAL FRAKTUR CAPITAL W + case "Wfr": // MATHEMATICAL FRAKTUR CAPITAL W return rune(0x01d51a), true - case "Wopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL W + case "Wopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL W return rune(0x01d54e), true - case "Wscr": - // MATHEMATICAL SCRIPT CAPITAL W + case "Wscr": // MATHEMATICAL SCRIPT CAPITAL W return rune(0x01d4b2), true } case 'X': switch name { - case "Xfr": - // MATHEMATICAL FRAKTUR CAPITAL X + case "Xfr": // MATHEMATICAL FRAKTUR CAPITAL X return rune(0x01d51b), true - case "Xgr": - // GREEK CAPITAL LETTER XI + case "Xgr": // GREEK CAPITAL LETTER XI return rune(0x039e), true - case "Xi": - // GREEK CAPITAL LETTER XI + case "Xi": // GREEK CAPITAL LETTER XI return rune(0x039e), true - case "Xopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL X + case "Xopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL X return rune(0x01d54f), true - case "Xscr": - // MATHEMATICAL SCRIPT CAPITAL X + case "Xscr": // MATHEMATICAL SCRIPT CAPITAL X return rune(0x01d4b3), true } case 'Y': switch name { - case "YAcy": - // CYRILLIC CAPITAL LETTER YA + case "YAcy": // CYRILLIC CAPITAL LETTER YA return rune(0x042f), true - case "YIcy": - // CYRILLIC CAPITAL LETTER YI + case "YIcy": // CYRILLIC CAPITAL LETTER YI return rune(0x0407), true - case "YUcy": - // CYRILLIC CAPITAL LETTER YU + case "YUcy": // CYRILLIC CAPITAL LETTER YU return rune(0x042e), true - case "Yacute": - // LATIN CAPITAL LETTER Y WITH ACUTE + case "Yacute": // LATIN CAPITAL LETTER Y WITH ACUTE return rune(0xdd), true - case "Ycirc": - // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + case "Ycirc": // LATIN CAPITAL LETTER Y WITH CIRCUMFLEX return rune(0x0176), true - case "Ycy": - // CYRILLIC CAPITAL LETTER YERU + case "Ycy": // CYRILLIC CAPITAL LETTER YERU return rune(0x042b), true - case "Yfr": - // MATHEMATICAL FRAKTUR CAPITAL Y + case "Yfr": // MATHEMATICAL FRAKTUR CAPITAL Y return rune(0x01d51c), true - case "Yopf": - // MATHEMATICAL DOUBLE-STRUCK CAPITAL Y + case "Yopf": // MATHEMATICAL DOUBLE-STRUCK CAPITAL Y return rune(0x01d550), true - case "Yscr": - // MATHEMATICAL SCRIPT CAPITAL Y + case "Yscr": // MATHEMATICAL SCRIPT CAPITAL Y return rune(0x01d4b4), true - case "Yuml": - // LATIN CAPITAL LETTER Y WITH DIAERESIS + case "Yuml": // LATIN CAPITAL LETTER Y WITH DIAERESIS return rune(0x0178), true } case 'Z': switch name { - case "ZHcy": - // CYRILLIC CAPITAL LETTER ZHE + case "ZHcy": // CYRILLIC CAPITAL LETTER ZHE return rune(0x0416), true - case "Zacute": - // LATIN CAPITAL LETTER Z WITH ACUTE + case "Zacute": // LATIN CAPITAL LETTER Z WITH ACUTE return rune(0x0179), true - case "Zcaron": - // LATIN CAPITAL LETTER Z WITH CARON + case "Zcaron": // LATIN CAPITAL LETTER Z WITH CARON return rune(0x017d), true - case "Zcy": - // CYRILLIC CAPITAL LETTER ZE + case "Zcy": // CYRILLIC CAPITAL LETTER ZE return rune(0x0417), true - case "Zdot": - // LATIN CAPITAL LETTER Z WITH DOT ABOVE + case "Zdot": // LATIN CAPITAL LETTER Z WITH DOT ABOVE return rune(0x017b), true - case "ZeroWidthSpace": - // ZERO WIDTH SPACE + case "ZeroWidthSpace": // ZERO WIDTH SPACE return rune(0x200b), true - case "Zeta": - // GREEK CAPITAL LETTER ZETA + case "Zeta": // GREEK CAPITAL LETTER ZETA return rune(0x0396), true - case "Zfr": - // BLACK-LETTER CAPITAL Z + case "Zfr": // BLACK-LETTER CAPITAL Z return rune(0x2128), true - case "Zgr": - // GREEK CAPITAL LETTER ZETA + case "Zgr": // GREEK CAPITAL LETTER ZETA return rune(0x0396), true - case "Zopf": - // DOUBLE-STRUCK CAPITAL Z + case "Zopf": // DOUBLE-STRUCK CAPITAL Z return rune(0x2124), true - case "Zscr": - // MATHEMATICAL SCRIPT CAPITAL Z + case "Zscr": // MATHEMATICAL SCRIPT CAPITAL Z return rune(0x01d4b5), true } case 'a': switch name { - case "aacgr": - // GREEK SMALL LETTER ALPHA WITH TONOS + case "aacgr": // GREEK SMALL LETTER ALPHA WITH TONOS return rune(0x03ac), true - case "aacute": - // LATIN SMALL LETTER A WITH ACUTE + case "aacute": // LATIN SMALL LETTER A WITH ACUTE return rune(0xe1), true - case "abreve": - // LATIN SMALL LETTER A WITH BREVE + case "abreve": // LATIN SMALL LETTER A WITH BREVE return rune(0x0103), true - case "acE": - // INVERTED LAZY S with double underline + case "ac": // INVERTED LAZY S return rune(0x223e), true - case "acd": - // SINE WAVE + case "acE": // INVERTED LAZY S with double underline + return rune(0x223e), true + case "acd": // SINE WAVE return rune(0x223f), true - case "acute": - // ACUTE ACCENT - return rune(0xb4), true - case "ac": - // INVERTED LAZY S - return rune(0x223e), true - case "acirc": - // LATIN SMALL LETTER A WITH CIRCUMFLEX + case "acirc": // LATIN SMALL LETTER A WITH CIRCUMFLEX return rune(0xe2), true - case "actuary": - // COMBINING ANNUITY SYMBOL + case "actuary": // COMBINING ANNUITY SYMBOL return rune(0x20e7), true - case "acy": - // CYRILLIC SMALL LETTER A + case "acute": // ACUTE ACCENT + return rune(0xb4), true + case "acy": // CYRILLIC SMALL LETTER A return rune(0x0430), true - case "aelig": - // LATIN SMALL LETTER AE + case "aelig": // LATIN SMALL LETTER AE return rune(0xe6), true - case "af": - // FUNCTION APPLICATION + case "af": // FUNCTION APPLICATION return rune(0x2061), true - case "afr": - // MATHEMATICAL FRAKTUR SMALL A + case "afr": // MATHEMATICAL FRAKTUR SMALL A return rune(0x01d51e), true - case "agr": - // GREEK SMALL LETTER ALPHA + case "agr": // GREEK SMALL LETTER ALPHA return rune(0x03b1), true - case "agrave": - // LATIN SMALL LETTER A WITH GRAVE + case "agrave": // LATIN SMALL LETTER A WITH GRAVE return rune(0xe0), true - case "alefsym": - // ALEF SYMBOL + case "alefsym": // ALEF SYMBOL return rune(0x2135), true - case "aleph": - // ALEF SYMBOL + case "aleph": // ALEF SYMBOL return rune(0x2135), true - case "alpha": - // GREEK SMALL LETTER ALPHA + case "alpha": // GREEK SMALL LETTER ALPHA return rune(0x03b1), true - case "amacr": - // LATIN SMALL LETTER A WITH MACRON + case "amacr": // LATIN SMALL LETTER A WITH MACRON return rune(0x0101), true - case "amalg": - // AMALGAMATION OR COPRODUCT + case "amalg": // AMALGAMATION OR COPRODUCT return rune(0x2a3f), true - case "amp": - // AMPERSAND + case "amp": // AMPERSAND return rune(0x26), true - case "andand": - // TWO INTERSECTING LOGICAL AND - return rune(0x2a55), true - case "andd": - // LOGICAL AND WITH HORIZONTAL DASH - return rune(0x2a5c), true - case "andslope": - // SLOPING LARGE AND - return rune(0x2a58), true - case "andv": - // LOGICAL AND WITH MIDDLE STEM - return rune(0x2a5a), true - case "and": - // LOGICAL AND + case "and": // LOGICAL AND return rune(0x2227), true - case "angdnl": - // TURNED ANGLE + case "andand": // TWO INTERSECTING LOGICAL AND + return rune(0x2a55), true + case "andd": // LOGICAL AND WITH HORIZONTAL DASH + return rune(0x2a5c), true + case "andslope": // SLOPING LARGE AND + return rune(0x2a58), true + case "andv": // LOGICAL AND WITH MIDDLE STEM + return rune(0x2a5a), true + case "ang": // ANGLE + return rune(0x2220), true + case "ang90": // RIGHT ANGLE + return rune(0x221f), true + case "angdnl": // TURNED ANGLE return rune(0x29a2), true - case "angdnr": - // ACUTE ANGLE + case "angdnr": // ACUTE ANGLE return rune(0x299f), true - case "ange": - // ANGLE WITH UNDERBAR + case "ange": // ANGLE WITH UNDERBAR return rune(0x29a4), true - case "angles": - // ANGLE WITH S INSIDE + case "angle": // ANGLE + return rune(0x2220), true + case "angles": // ANGLE WITH S INSIDE return rune(0x299e), true - case "angle": - // ANGLE - return rune(0x2220), true - case "angmsdaa": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT - return rune(0x29a8), true - case "angmsdab": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT - return rune(0x29a9), true - case "angmsdac": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT - return rune(0x29aa), true - case "angmsdad": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT - return rune(0x29ab), true - case "angmsdae": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP - return rune(0x29ac), true - case "angmsdaf": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP - return rune(0x29ad), true - case "angmsdag": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN - return rune(0x29ae), true - case "angmsdah": - // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN - return rune(0x29af), true - case "angmsd": - // MEASURED ANGLE + case "angmsd": // MEASURED ANGLE return rune(0x2221), true - case "angrtvbd": - // MEASURED RIGHT ANGLE WITH DOT - return rune(0x299d), true - case "angrtvb": - // RIGHT ANGLE WITH ARC + case "angmsdaa": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT + return rune(0x29a8), true + case "angmsdab": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT + return rune(0x29a9), true + case "angmsdac": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT + return rune(0x29aa), true + case "angmsdad": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT + return rune(0x29ab), true + case "angmsdae": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP + return rune(0x29ac), true + case "angmsdaf": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP + return rune(0x29ad), true + case "angmsdag": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN + return rune(0x29ae), true + case "angmsdah": // MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN + return rune(0x29af), true + case "angrt": // RIGHT ANGLE + return rune(0x221f), true + case "angrtvb": // RIGHT ANGLE WITH ARC return rune(0x22be), true - case "angsph": - // SPHERICAL ANGLE + case "angrtvbd": // MEASURED RIGHT ANGLE WITH DOT + return rune(0x299d), true + case "angsph": // SPHERICAL ANGLE return rune(0x2222), true - case "angst": - // LATIN CAPITAL LETTER A WITH RING ABOVE + case "angst": // LATIN CAPITAL LETTER A WITH RING ABOVE return rune(0xc5), true - case "angupl": - // REVERSED ANGLE + case "angupl": // REVERSED ANGLE return rune(0x29a3), true - case "angzarr": - // RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW + case "angzarr": // RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW return rune(0x237c), true - case "ang": - // ANGLE - return rune(0x2220), true - case "ang90": - // RIGHT ANGLE - return rune(0x221f), true - case "angrt": - // RIGHT ANGLE - return rune(0x221f), true - case "aogon": - // LATIN SMALL LETTER A WITH OGONEK + case "aogon": // LATIN SMALL LETTER A WITH OGONEK return rune(0x0105), true - case "aopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL A + case "aopf": // MATHEMATICAL DOUBLE-STRUCK SMALL A return rune(0x01d552), true - case "apE": - // APPROXIMATELY EQUAL OR EQUAL TO + case "ap": // ALMOST EQUAL TO + return rune(0x2248), true + case "apE": // APPROXIMATELY EQUAL OR EQUAL TO return rune(0x2a70), true - case "apacir": - // ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT + case "apacir": // ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT return rune(0x2a6f), true - case "ape": - // ALMOST EQUAL OR EQUAL TO + case "ape": // ALMOST EQUAL OR EQUAL TO return rune(0x224a), true - case "apid": - // TRIPLE TILDE + case "apid": // TRIPLE TILDE return rune(0x224b), true - case "approxeq": - // ALMOST EQUAL OR EQUAL TO - return rune(0x224a), true - case "approx": - // ALMOST EQUAL TO - return rune(0x2248), true - case "ap": - // ALMOST EQUAL TO - return rune(0x2248), true - case "apos": - // APOSTROPHE + case "apos": // APOSTROPHE return rune(0x27), true - case "aring": - // LATIN SMALL LETTER A WITH RING ABOVE - return rune(0xe5), true - case "arrllsr": - // LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW - return rune(0x2943), true - case "arrlrsl": - // RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW - return rune(0x2942), true - case "arrsrll": - // SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW - return rune(0x2944), true - case "ascr": - // MATHEMATICAL SCRIPT SMALL A - return rune(0x01d4b6), true - case "astb": - // SQUARED ASTERISK - return rune(0x29c6), true - case "ast": - // ASTERISK - return rune(0x2a), true - case "asympeq": - // EQUIVALENT TO - return rune(0x224d), true - case "asymp": - // ALMOST EQUAL TO + case "approx": // ALMOST EQUAL TO return rune(0x2248), true - case "atilde": - // LATIN SMALL LETTER A WITH TILDE + case "approxeq": // ALMOST EQUAL OR EQUAL TO + return rune(0x224a), true + case "aring": // LATIN SMALL LETTER A WITH RING ABOVE + return rune(0xe5), true + case "arrllsr": // LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW + return rune(0x2943), true + case "arrlrsl": // RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW + return rune(0x2942), true + case "arrsrll": // SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW + return rune(0x2944), true + case "ascr": // MATHEMATICAL SCRIPT SMALL A + return rune(0x01d4b6), true + case "ast": // ASTERISK + return rune(0x2a), true + case "astb": // SQUARED ASTERISK + return rune(0x29c6), true + case "asymp": // ALMOST EQUAL TO + return rune(0x2248), true + case "asympeq": // EQUIVALENT TO + return rune(0x224d), true + case "atilde": // LATIN SMALL LETTER A WITH TILDE return rune(0xe3), true - case "auml": - // LATIN SMALL LETTER A WITH DIAERESIS + case "auml": // LATIN SMALL LETTER A WITH DIAERESIS return rune(0xe4), true - case "awconint": - // ANTICLOCKWISE CONTOUR INTEGRAL + case "awconint": // ANTICLOCKWISE CONTOUR INTEGRAL return rune(0x2233), true - case "awint": - // ANTICLOCKWISE INTEGRATION + case "awint": // ANTICLOCKWISE INTEGRATION return rune(0x2a11), true } case 'b': switch name { - case "b.Delta": - // MATHEMATICAL BOLD CAPITAL DELTA + case "b.Delta": // MATHEMATICAL BOLD CAPITAL DELTA return rune(0x01d6ab), true - case "b.Gamma": - // MATHEMATICAL BOLD CAPITAL GAMMA + case "b.Gamma": // MATHEMATICAL BOLD CAPITAL GAMMA return rune(0x01d6aa), true - case "b.Gammad": - // MATHEMATICAL BOLD CAPITAL DIGAMMA + case "b.Gammad": // MATHEMATICAL BOLD CAPITAL DIGAMMA return rune(0x01d7ca), true - case "b.Lambda": - // MATHEMATICAL BOLD CAPITAL LAMDA + case "b.Lambda": // MATHEMATICAL BOLD CAPITAL LAMDA return rune(0x01d6b2), true - case "b.Omega": - // MATHEMATICAL BOLD CAPITAL OMEGA + case "b.Omega": // MATHEMATICAL BOLD CAPITAL OMEGA return rune(0x01d6c0), true - case "b.Phi": - // MATHEMATICAL BOLD CAPITAL PHI + case "b.Phi": // MATHEMATICAL BOLD CAPITAL PHI return rune(0x01d6bd), true - case "b.Pi": - // MATHEMATICAL BOLD CAPITAL PI + case "b.Pi": // MATHEMATICAL BOLD CAPITAL PI return rune(0x01d6b7), true - case "b.Psi": - // MATHEMATICAL BOLD CAPITAL PSI + case "b.Psi": // MATHEMATICAL BOLD CAPITAL PSI return rune(0x01d6bf), true - case "b.Sigma": - // MATHEMATICAL BOLD CAPITAL SIGMA + case "b.Sigma": // MATHEMATICAL BOLD CAPITAL SIGMA return rune(0x01d6ba), true - case "b.Theta": - // MATHEMATICAL BOLD CAPITAL THETA + case "b.Theta": // MATHEMATICAL BOLD CAPITAL THETA return rune(0x01d6af), true - case "b.Upsi": - // MATHEMATICAL BOLD CAPITAL UPSILON + case "b.Upsi": // MATHEMATICAL BOLD CAPITAL UPSILON return rune(0x01d6bc), true - case "b.Xi": - // MATHEMATICAL BOLD CAPITAL XI + case "b.Xi": // MATHEMATICAL BOLD CAPITAL XI return rune(0x01d6b5), true - case "b.alpha": - // MATHEMATICAL BOLD SMALL ALPHA + case "b.alpha": // MATHEMATICAL BOLD SMALL ALPHA return rune(0x01d6c2), true - case "b.beta": - // MATHEMATICAL BOLD SMALL BETA + case "b.beta": // MATHEMATICAL BOLD SMALL BETA return rune(0x01d6c3), true - case "b.chi": - // MATHEMATICAL BOLD SMALL CHI + case "b.chi": // MATHEMATICAL BOLD SMALL CHI return rune(0x01d6d8), true - case "b.delta": - // MATHEMATICAL BOLD SMALL DELTA + case "b.delta": // MATHEMATICAL BOLD SMALL DELTA return rune(0x01d6c5), true - case "b.epsi": - // MATHEMATICAL BOLD SMALL EPSILON + case "b.epsi": // MATHEMATICAL BOLD SMALL EPSILON return rune(0x01d6c6), true - case "b.epsiv": - // MATHEMATICAL BOLD EPSILON SYMBOL + case "b.epsiv": // MATHEMATICAL BOLD EPSILON SYMBOL return rune(0x01d6dc), true - case "b.eta": - // MATHEMATICAL BOLD SMALL ETA + case "b.eta": // MATHEMATICAL BOLD SMALL ETA return rune(0x01d6c8), true - case "b.gammad": - // MATHEMATICAL BOLD SMALL DIGAMMA - return rune(0x01d7cb), true - case "b.gamma": - // MATHEMATICAL BOLD SMALL GAMMA + case "b.gamma": // MATHEMATICAL BOLD SMALL GAMMA return rune(0x01d6c4), true - case "b.iota": - // MATHEMATICAL BOLD SMALL IOTA + case "b.gammad": // MATHEMATICAL BOLD SMALL DIGAMMA + return rune(0x01d7cb), true + case "b.iota": // MATHEMATICAL BOLD SMALL IOTA return rune(0x01d6ca), true - case "b.kappa": - // MATHEMATICAL BOLD SMALL KAPPA + case "b.kappa": // MATHEMATICAL BOLD SMALL KAPPA return rune(0x01d6cb), true - case "b.kappav": - // MATHEMATICAL BOLD KAPPA SYMBOL + case "b.kappav": // MATHEMATICAL BOLD KAPPA SYMBOL return rune(0x01d6de), true - case "b.lambda": - // MATHEMATICAL BOLD SMALL LAMDA + case "b.lambda": // MATHEMATICAL BOLD SMALL LAMDA return rune(0x01d6cc), true - case "b.mu": - // MATHEMATICAL BOLD SMALL MU + case "b.mu": // MATHEMATICAL BOLD SMALL MU return rune(0x01d6cd), true - case "b.nu": - // MATHEMATICAL BOLD SMALL NU + case "b.nu": // MATHEMATICAL BOLD SMALL NU return rune(0x01d6ce), true - case "b.omega": - // MATHEMATICAL BOLD SMALL OMEGA + case "b.omega": // MATHEMATICAL BOLD SMALL OMEGA return rune(0x01d6da), true - case "b.phi": - // MATHEMATICAL BOLD SMALL PHI + case "b.phi": // MATHEMATICAL BOLD SMALL PHI return rune(0x01d6d7), true - case "b.phiv": - // MATHEMATICAL BOLD PHI SYMBOL + case "b.phiv": // MATHEMATICAL BOLD PHI SYMBOL return rune(0x01d6df), true - case "b.pi": - // MATHEMATICAL BOLD SMALL PI + case "b.pi": // MATHEMATICAL BOLD SMALL PI return rune(0x01d6d1), true - case "b.piv": - // MATHEMATICAL BOLD PI SYMBOL + case "b.piv": // MATHEMATICAL BOLD PI SYMBOL return rune(0x01d6e1), true - case "b.psi": - // MATHEMATICAL BOLD SMALL PSI + case "b.psi": // MATHEMATICAL BOLD SMALL PSI return rune(0x01d6d9), true - case "b.rho": - // MATHEMATICAL BOLD SMALL RHO + case "b.rho": // MATHEMATICAL BOLD SMALL RHO return rune(0x01d6d2), true - case "b.rhov": - // MATHEMATICAL BOLD RHO SYMBOL + case "b.rhov": // MATHEMATICAL BOLD RHO SYMBOL return rune(0x01d6e0), true - case "b.sigmav": - // MATHEMATICAL BOLD SMALL FINAL SIGMA - return rune(0x01d6d3), true - case "b.sigma": - // MATHEMATICAL BOLD SMALL SIGMA + case "b.sigma": // MATHEMATICAL BOLD SMALL SIGMA return rune(0x01d6d4), true - case "b.tau": - // MATHEMATICAL BOLD SMALL TAU + case "b.sigmav": // MATHEMATICAL BOLD SMALL FINAL SIGMA + return rune(0x01d6d3), true + case "b.tau": // MATHEMATICAL BOLD SMALL TAU return rune(0x01d6d5), true - case "b.thetas": - // MATHEMATICAL BOLD SMALL THETA + case "b.thetas": // MATHEMATICAL BOLD SMALL THETA return rune(0x01d6c9), true - case "b.thetav": - // MATHEMATICAL BOLD THETA SYMBOL + case "b.thetav": // MATHEMATICAL BOLD THETA SYMBOL return rune(0x01d6dd), true - case "b.upsi": - // MATHEMATICAL BOLD SMALL UPSILON + case "b.upsi": // MATHEMATICAL BOLD SMALL UPSILON return rune(0x01d6d6), true - case "b.xi": - // MATHEMATICAL BOLD SMALL XI + case "b.xi": // MATHEMATICAL BOLD SMALL XI return rune(0x01d6cf), true - case "b.zeta": - // MATHEMATICAL BOLD SMALL ZETA + case "b.zeta": // MATHEMATICAL BOLD SMALL ZETA return rune(0x01d6c7), true - case "bNot": - // REVERSED DOUBLE STROKE NOT SIGN + case "bNot": // REVERSED DOUBLE STROKE NOT SIGN return rune(0x2aed), true - case "backcong": - // ALL EQUAL TO + case "backcong": // ALL EQUAL TO return rune(0x224c), true - case "backepsilon": - // GREEK REVERSED LUNATE EPSILON SYMBOL + case "backepsilon": // GREEK REVERSED LUNATE EPSILON SYMBOL return rune(0x03f6), true - case "backprime": - // REVERSED PRIME + case "backprime": // REVERSED PRIME return rune(0x2035), true - case "backsimeq": - // REVERSED TILDE EQUALS - return rune(0x22cd), true - case "backsim": - // REVERSED TILDE + case "backsim": // REVERSED TILDE return rune(0x223d), true - case "barV": - // DOUBLE DOWN TACK + case "backsimeq": // REVERSED TILDE EQUALS + return rune(0x22cd), true + case "barV": // DOUBLE DOWN TACK return rune(0x2aea), true - case "barvee": - // NOR + case "barvee": // NOR return rune(0x22bd), true - case "barwed": - // PROJECTIVE + case "barwed": // PROJECTIVE return rune(0x2305), true - case "barwedge": - // PROJECTIVE + case "barwedge": // PROJECTIVE return rune(0x2305), true - case "bbrk": - // BOTTOM SQUARE BRACKET + case "bbrk": // BOTTOM SQUARE BRACKET return rune(0x23b5), true - case "bbrktbrk": - // BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET + case "bbrktbrk": // BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET return rune(0x23b6), true - case "bcong": - // ALL EQUAL TO + case "bcong": // ALL EQUAL TO return rune(0x224c), true - case "bcy": - // CYRILLIC SMALL LETTER BE + case "bcy": // CYRILLIC SMALL LETTER BE return rune(0x0431), true - case "bdlhar": - // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR + case "bdlhar": // DOWNWARDS HARPOON WITH BARB LEFT FROM BAR return rune(0x2961), true - case "bdquo": - // DOUBLE LOW-9 QUOTATION MARK + case "bdquo": // DOUBLE LOW-9 QUOTATION MARK return rune(0x201e), true - case "bdrhar": - // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR + case "bdrhar": // DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR return rune(0x295d), true - case "because": - // BECAUSE + case "becaus": // BECAUSE return rune(0x2235), true - case "becaus": - // BECAUSE + case "because": // BECAUSE return rune(0x2235), true - case "bemptyv": - // REVERSED EMPTY SET + case "bemptyv": // REVERSED EMPTY SET return rune(0x29b0), true - case "bepsi": - // GREEK REVERSED LUNATE EPSILON SYMBOL + case "bepsi": // GREEK REVERSED LUNATE EPSILON SYMBOL return rune(0x03f6), true - case "bernou": - // SCRIPT CAPITAL B + case "bernou": // SCRIPT CAPITAL B return rune(0x212c), true - case "beta": - // GREEK SMALL LETTER BETA + case "beta": // GREEK SMALL LETTER BETA return rune(0x03b2), true - case "beth": - // BET SYMBOL + case "beth": // BET SYMBOL return rune(0x2136), true - case "between": - // BETWEEN + case "between": // BETWEEN return rune(0x226c), true - case "bfr": - // MATHEMATICAL FRAKTUR SMALL B + case "bfr": // MATHEMATICAL FRAKTUR SMALL B return rune(0x01d51f), true - case "bgr": - // GREEK SMALL LETTER BETA + case "bgr": // GREEK SMALL LETTER BETA return rune(0x03b2), true - case "bigcap": - // N-ARY INTERSECTION + case "bigcap": // N-ARY INTERSECTION return rune(0x22c2), true - case "bigcirc": - // LARGE CIRCLE + case "bigcirc": // LARGE CIRCLE return rune(0x25ef), true - case "bigcup": - // N-ARY UNION + case "bigcup": // N-ARY UNION return rune(0x22c3), true - case "bigodot": - // N-ARY CIRCLED DOT OPERATOR + case "bigodot": // N-ARY CIRCLED DOT OPERATOR return rune(0x2a00), true - case "bigoplus": - // N-ARY CIRCLED PLUS OPERATOR + case "bigoplus": // N-ARY CIRCLED PLUS OPERATOR return rune(0x2a01), true - case "bigotimes": - // N-ARY CIRCLED TIMES OPERATOR + case "bigotimes": // N-ARY CIRCLED TIMES OPERATOR return rune(0x2a02), true - case "bigsqcup": - // N-ARY SQUARE UNION OPERATOR + case "bigsqcup": // N-ARY SQUARE UNION OPERATOR return rune(0x2a06), true - case "bigstar": - // BLACK STAR + case "bigstar": // BLACK STAR return rune(0x2605), true - case "bigtriangledown": - // WHITE DOWN-POINTING TRIANGLE + case "bigtriangledown": // WHITE DOWN-POINTING TRIANGLE return rune(0x25bd), true - case "bigtriangleup": - // WHITE UP-POINTING TRIANGLE + case "bigtriangleup": // WHITE UP-POINTING TRIANGLE return rune(0x25b3), true - case "biguplus": - // N-ARY UNION OPERATOR WITH PLUS + case "biguplus": // N-ARY UNION OPERATOR WITH PLUS return rune(0x2a04), true - case "bigvee": - // N-ARY LOGICAL OR + case "bigvee": // N-ARY LOGICAL OR return rune(0x22c1), true - case "bigwedge": - // N-ARY LOGICAL AND + case "bigwedge": // N-ARY LOGICAL AND return rune(0x22c0), true - case "bkarow": - // RIGHTWARDS DOUBLE DASH ARROW + case "bkarow": // RIGHTWARDS DOUBLE DASH ARROW return rune(0x290d), true - case "blacklozenge": - // BLACK LOZENGE + case "blacklozenge": // BLACK LOZENGE return rune(0x29eb), true - case "blacksquare": - // BLACK SMALL SQUARE + case "blacksquare": // BLACK SMALL SQUARE return rune(0x25aa), true - case "blacktriangledown": - // BLACK DOWN-POINTING SMALL TRIANGLE - return rune(0x25be), true - case "blacktriangleleft": - // BLACK LEFT-POINTING SMALL TRIANGLE - return rune(0x25c2), true - case "blacktriangleright": - // BLACK RIGHT-POINTING SMALL TRIANGLE - return rune(0x25b8), true - case "blacktriangle": - // BLACK UP-POINTING SMALL TRIANGLE + case "blacktriangle": // BLACK UP-POINTING SMALL TRIANGLE return rune(0x25b4), true - case "blank": - // BLANK SYMBOL + case "blacktriangledown": // BLACK DOWN-POINTING SMALL TRIANGLE + return rune(0x25be), true + case "blacktriangleleft": // BLACK LEFT-POINTING SMALL TRIANGLE + return rune(0x25c2), true + case "blacktriangleright": // BLACK RIGHT-POINTING SMALL TRIANGLE + return rune(0x25b8), true + case "blank": // BLANK SYMBOL return rune(0x2422), true - case "bldhar": - // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR + case "bldhar": // LEFTWARDS HARPOON WITH BARB DOWN FROM BAR return rune(0x295e), true - case "blk12": - // MEDIUM SHADE + case "blk12": // MEDIUM SHADE return rune(0x2592), true - case "blk14": - // LIGHT SHADE + case "blk14": // LIGHT SHADE return rune(0x2591), true - case "blk34": - // DARK SHADE + case "blk34": // DARK SHADE return rune(0x2593), true - case "block": - // FULL BLOCK + case "block": // FULL BLOCK return rune(0x2588), true - case "bluhar": - // LEFTWARDS HARPOON WITH BARB UP FROM BAR + case "bluhar": // LEFTWARDS HARPOON WITH BARB UP FROM BAR return rune(0x295a), true - case "bnequiv": - // IDENTICAL TO with reverse slash - return rune(0x2261), true - case "bne": - // EQUALS SIGN with reverse slash + case "bne": // EQUALS SIGN with reverse slash return rune(0x3d), true - case "bnot": - // REVERSED NOT SIGN + case "bnequiv": // IDENTICAL TO with reverse slash + return rune(0x2261), true + case "bnot": // REVERSED NOT SIGN return rune(0x2310), true - case "bopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL B + case "bopf": // MATHEMATICAL DOUBLE-STRUCK SMALL B return rune(0x01d553), true - case "bot": - // UP TACK + case "bot": // UP TACK return rune(0x22a5), true - case "bottom": - // UP TACK + case "bottom": // UP TACK return rune(0x22a5), true - case "bowtie": - // BOWTIE + case "bowtie": // BOWTIE return rune(0x22c8), true - case "boxDL": - // BOX DRAWINGS DOUBLE DOWN AND LEFT + case "boxDL": // BOX DRAWINGS DOUBLE DOWN AND LEFT return rune(0x2557), true - case "boxDR": - // BOX DRAWINGS DOUBLE DOWN AND RIGHT + case "boxDR": // BOX DRAWINGS DOUBLE DOWN AND RIGHT return rune(0x2554), true - case "boxDl": - // BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE + case "boxDl": // BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE return rune(0x2556), true - case "boxDr": - // BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE + case "boxDr": // BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE return rune(0x2553), true - case "boxHD": - // BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL - return rune(0x2566), true - case "boxHU": - // BOX DRAWINGS DOUBLE UP AND HORIZONTAL - return rune(0x2569), true - case "boxHd": - // BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE - return rune(0x2564), true - case "boxHu": - // BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE - return rune(0x2567), true - case "boxH": - // BOX DRAWINGS DOUBLE HORIZONTAL + case "boxH": // BOX DRAWINGS DOUBLE HORIZONTAL return rune(0x2550), true - case "boxUL": - // BOX DRAWINGS DOUBLE UP AND LEFT + case "boxHD": // BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL + return rune(0x2566), true + case "boxHU": // BOX DRAWINGS DOUBLE UP AND HORIZONTAL + return rune(0x2569), true + case "boxHd": // BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE + return rune(0x2564), true + case "boxHu": // BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE + return rune(0x2567), true + case "boxUL": // BOX DRAWINGS DOUBLE UP AND LEFT return rune(0x255d), true - case "boxUR": - // BOX DRAWINGS DOUBLE UP AND RIGHT + case "boxUR": // BOX DRAWINGS DOUBLE UP AND RIGHT return rune(0x255a), true - case "boxUl": - // BOX DRAWINGS UP DOUBLE AND LEFT SINGLE + case "boxUl": // BOX DRAWINGS UP DOUBLE AND LEFT SINGLE return rune(0x255c), true - case "boxUr": - // BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE + case "boxUr": // BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE return rune(0x2559), true - case "boxVH": - // BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL - return rune(0x256c), true - case "boxVL": - // BOX DRAWINGS DOUBLE VERTICAL AND LEFT - return rune(0x2563), true - case "boxVR": - // BOX DRAWINGS DOUBLE VERTICAL AND RIGHT - return rune(0x2560), true - case "boxVh": - // BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE - return rune(0x256b), true - case "boxVl": - // BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE - return rune(0x2562), true - case "boxVr": - // BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE - return rune(0x255f), true - case "boxV": - // BOX DRAWINGS DOUBLE VERTICAL + case "boxV": // BOX DRAWINGS DOUBLE VERTICAL return rune(0x2551), true - case "boxbox": - // TWO JOINED SQUARES + case "boxVH": // BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL + return rune(0x256c), true + case "boxVL": // BOX DRAWINGS DOUBLE VERTICAL AND LEFT + return rune(0x2563), true + case "boxVR": // BOX DRAWINGS DOUBLE VERTICAL AND RIGHT + return rune(0x2560), true + case "boxVh": // BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE + return rune(0x256b), true + case "boxVl": // BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE + return rune(0x2562), true + case "boxVr": // BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE + return rune(0x255f), true + case "boxbox": // TWO JOINED SQUARES return rune(0x29c9), true - case "boxdL": - // BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE + case "boxdL": // BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE return rune(0x2555), true - case "boxdR": - // BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE + case "boxdR": // BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE return rune(0x2552), true - case "boxdl": - // BOX DRAWINGS LIGHT DOWN AND LEFT + case "boxdl": // BOX DRAWINGS LIGHT DOWN AND LEFT return rune(0x2510), true - case "boxdr": - // BOX DRAWINGS LIGHT DOWN AND RIGHT + case "boxdr": // BOX DRAWINGS LIGHT DOWN AND RIGHT return rune(0x250c), true - case "boxhU": - // BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE - return rune(0x2568), true - case "boxh": - // BOX DRAWINGS LIGHT HORIZONTAL + case "boxh": // BOX DRAWINGS LIGHT HORIZONTAL return rune(0x2500), true - case "boxhD": - // BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE + case "boxhD": // BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE return rune(0x2565), true - case "boxhd": - // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL + case "boxhU": // BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE + return rune(0x2568), true + case "boxhd": // BOX DRAWINGS LIGHT DOWN AND HORIZONTAL return rune(0x252c), true - case "boxhu": - // BOX DRAWINGS LIGHT UP AND HORIZONTAL + case "boxhu": // BOX DRAWINGS LIGHT UP AND HORIZONTAL return rune(0x2534), true - case "boxminus": - // SQUARED MINUS + case "boxminus": // SQUARED MINUS return rune(0x229f), true - case "boxplus": - // SQUARED PLUS + case "boxplus": // SQUARED PLUS return rune(0x229e), true - case "boxtimes": - // SQUARED TIMES + case "boxtimes": // SQUARED TIMES return rune(0x22a0), true - case "boxuL": - // BOX DRAWINGS UP SINGLE AND LEFT DOUBLE + case "boxuL": // BOX DRAWINGS UP SINGLE AND LEFT DOUBLE return rune(0x255b), true - case "boxuR": - // BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE + case "boxuR": // BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE return rune(0x2558), true - case "boxul": - // BOX DRAWINGS LIGHT UP AND LEFT + case "boxul": // BOX DRAWINGS LIGHT UP AND LEFT return rune(0x2518), true - case "boxur": - // BOX DRAWINGS LIGHT UP AND RIGHT + case "boxur": // BOX DRAWINGS LIGHT UP AND RIGHT return rune(0x2514), true - case "boxvL": - // BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE - return rune(0x2561), true - case "boxvR": - // BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE - return rune(0x255e), true - case "boxvl": - // BOX DRAWINGS LIGHT VERTICAL AND LEFT - return rune(0x2524), true - case "boxvr": - // BOX DRAWINGS LIGHT VERTICAL AND RIGHT - return rune(0x251c), true - case "boxv": - // BOX DRAWINGS LIGHT VERTICAL + case "boxv": // BOX DRAWINGS LIGHT VERTICAL return rune(0x2502), true - case "boxvH": - // BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE + case "boxvH": // BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE return rune(0x256a), true - case "boxvh": - // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + case "boxvL": // BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE + return rune(0x2561), true + case "boxvR": // BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE + return rune(0x255e), true + case "boxvh": // BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL return rune(0x253c), true - case "bprime": - // REVERSED PRIME + case "boxvl": // BOX DRAWINGS LIGHT VERTICAL AND LEFT + return rune(0x2524), true + case "boxvr": // BOX DRAWINGS LIGHT VERTICAL AND RIGHT + return rune(0x251c), true + case "bprime": // REVERSED PRIME return rune(0x2035), true - case "brdhar": - // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR + case "brdhar": // RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR return rune(0x295f), true - case "breve": - // BREVE + case "breve": // BREVE return rune(0x02d8), true - case "bruhar": - // RIGHTWARDS HARPOON WITH BARB UP FROM BAR + case "bruhar": // RIGHTWARDS HARPOON WITH BARB UP FROM BAR return rune(0x295b), true - case "brvbar": - // BROKEN BAR + case "brvbar": // BROKEN BAR return rune(0xa6), true - case "bscr": - // MATHEMATICAL SCRIPT SMALL B + case "bscr": // MATHEMATICAL SCRIPT SMALL B return rune(0x01d4b7), true - case "bsemi": - // REVERSED SEMICOLON + case "bsemi": // REVERSED SEMICOLON return rune(0x204f), true - case "bsim": - // REVERSED TILDE + case "bsim": // REVERSED TILDE return rune(0x223d), true - case "bsime": - // REVERSED TILDE EQUALS + case "bsime": // REVERSED TILDE EQUALS return rune(0x22cd), true - case "bsolb": - // SQUARED FALLING DIAGONAL SLASH - return rune(0x29c5), true - case "bsolhsub": - // REVERSE SOLIDUS PRECEDING SUBSET - return rune(0x27c8), true - case "bsol": - // REVERSE SOLIDUS + case "bsol": // REVERSE SOLIDUS return rune(0x5c), true - case "btimes": - // SEMIDIRECT PRODUCT WITH BOTTOM CLOSED + case "bsolb": // SQUARED FALLING DIAGONAL SLASH + return rune(0x29c5), true + case "bsolhsub": // REVERSE SOLIDUS PRECEDING SUBSET + return rune(0x27c8), true + case "btimes": // SEMIDIRECT PRODUCT WITH BOTTOM CLOSED return rune(0x2a32), true - case "bulhar": - // UPWARDS HARPOON WITH BARB LEFT FROM BAR + case "bulhar": // UPWARDS HARPOON WITH BARB LEFT FROM BAR return rune(0x2960), true - case "bullet": - // BULLET + case "bull": // BULLET return rune(0x2022), true - case "bull": - // BULLET + case "bullet": // BULLET return rune(0x2022), true - case "bump": - // GEOMETRICALLY EQUIVALENT TO + case "bump": // GEOMETRICALLY EQUIVALENT TO return rune(0x224e), true - case "bumpE": - // EQUALS SIGN WITH BUMPY ABOVE + case "bumpE": // EQUALS SIGN WITH BUMPY ABOVE return rune(0x2aae), true - case "bumpe": - // DIFFERENCE BETWEEN + case "bumpe": // DIFFERENCE BETWEEN return rune(0x224f), true - case "bumpeq": - // DIFFERENCE BETWEEN + case "bumpeq": // DIFFERENCE BETWEEN return rune(0x224f), true - case "burhar": - // UPWARDS HARPOON WITH BARB RIGHT FROM BAR + case "burhar": // UPWARDS HARPOON WITH BARB RIGHT FROM BAR return rune(0x295c), true } case 'c': switch name { - case "cacute": - // LATIN SMALL LETTER C WITH ACUTE + case "cacute": // LATIN SMALL LETTER C WITH ACUTE return rune(0x0107), true - case "cap": - // INTERSECTION + case "cap": // INTERSECTION return rune(0x2229), true - case "capand": - // INTERSECTION WITH LOGICAL AND + case "capand": // INTERSECTION WITH LOGICAL AND return rune(0x2a44), true - case "capbrcup": - // INTERSECTION ABOVE BAR ABOVE UNION + case "capbrcup": // INTERSECTION ABOVE BAR ABOVE UNION return rune(0x2a49), true - case "capcap": - // INTERSECTION BESIDE AND JOINED WITH INTERSECTION + case "capcap": // INTERSECTION BESIDE AND JOINED WITH INTERSECTION return rune(0x2a4b), true - case "capcup": - // INTERSECTION ABOVE UNION + case "capcup": // INTERSECTION ABOVE UNION return rune(0x2a47), true - case "capdot": - // INTERSECTION WITH DOT + case "capdot": // INTERSECTION WITH DOT return rune(0x2a40), true - case "capint": - // INTEGRAL WITH INTERSECTION + case "capint": // INTEGRAL WITH INTERSECTION return rune(0x2a19), true - case "caps": - // INTERSECTION with serifs + case "caps": // INTERSECTION with serifs return rune(0x2229), true - case "caret": - // CARET INSERTION POINT + case "caret": // CARET INSERTION POINT return rune(0x2041), true - case "caron": - // CARON + case "caron": // CARON return rune(0x02c7), true - case "ccaps": - // CLOSED INTERSECTION WITH SERIFS + case "ccaps": // CLOSED INTERSECTION WITH SERIFS return rune(0x2a4d), true - case "ccaron": - // LATIN SMALL LETTER C WITH CARON + case "ccaron": // LATIN SMALL LETTER C WITH CARON return rune(0x010d), true - case "ccedil": - // LATIN SMALL LETTER C WITH CEDILLA + case "ccedil": // LATIN SMALL LETTER C WITH CEDILLA return rune(0xe7), true - case "ccirc": - // LATIN SMALL LETTER C WITH CIRCUMFLEX + case "ccirc": // LATIN SMALL LETTER C WITH CIRCUMFLEX return rune(0x0109), true - case "ccups": - // CLOSED UNION WITH SERIFS + case "ccups": // CLOSED UNION WITH SERIFS return rune(0x2a4c), true - case "ccupssm": - // CLOSED UNION WITH SERIFS AND SMASH PRODUCT + case "ccupssm": // CLOSED UNION WITH SERIFS AND SMASH PRODUCT return rune(0x2a50), true - case "cdot": - // LATIN SMALL LETTER C WITH DOT ABOVE + case "cdot": // LATIN SMALL LETTER C WITH DOT ABOVE return rune(0x010b), true - case "cedil": - // CEDILLA + case "cedil": // CEDILLA return rune(0xb8), true - case "cemptyv": - // EMPTY SET WITH SMALL CIRCLE ABOVE + case "cemptyv": // EMPTY SET WITH SMALL CIRCLE ABOVE return rune(0x29b2), true - case "centerdot": - // MIDDLE DOT - return rune(0xb7), true - case "cent": - // CENT SIGN + case "cent": // CENT SIGN return rune(0xa2), true - case "cfr": - // MATHEMATICAL FRAKTUR SMALL C + case "centerdot": // MIDDLE DOT + return rune(0xb7), true + case "cfr": // MATHEMATICAL FRAKTUR SMALL C return rune(0x01d520), true - case "chcy": - // CYRILLIC SMALL LETTER CHE + case "chcy": // CYRILLIC SMALL LETTER CHE return rune(0x0447), true - case "check": - // CHECK MARK + case "check": // CHECK MARK return rune(0x2713), true - case "checkmark": - // CHECK MARK + case "checkmark": // CHECK MARK return rune(0x2713), true - case "chi": - // GREEK SMALL LETTER CHI + case "chi": // GREEK SMALL LETTER CHI return rune(0x03c7), true - case "circeq": - // RING EQUAL TO - return rune(0x2257), true - case "circlearrowleft": - // ANTICLOCKWISE OPEN CIRCLE ARROW - return rune(0x21ba), true - case "circlearrowright": - // CLOCKWISE OPEN CIRCLE ARROW - return rune(0x21bb), true - case "circledS": - // CIRCLED LATIN CAPITAL LETTER S - return rune(0x24c8), true - case "circledast": - // CIRCLED ASTERISK OPERATOR - return rune(0x229b), true - case "circledcirc": - // CIRCLED RING OPERATOR - return rune(0x229a), true - case "circleddash": - // CIRCLED DASH - return rune(0x229d), true - case "cire": - // RING EQUAL TO - return rune(0x2257), true - case "cir": - // WHITE CIRCLE + case "cir": // WHITE CIRCLE return rune(0x25cb), true - case "cirE": - // CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT + case "cirE": // CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT return rune(0x29c3), true - case "cirb": - // SQUARED SMALL CIRCLE + case "cirb": // SQUARED SMALL CIRCLE return rune(0x29c7), true - case "circ": - // MODIFIER LETTER CIRCUMFLEX ACCENT + case "circ": // MODIFIER LETTER CIRCUMFLEX ACCENT return rune(0x02c6), true - case "circledR": - // REGISTERED SIGN + case "circeq": // RING EQUAL TO + return rune(0x2257), true + case "circlearrowleft": // ANTICLOCKWISE OPEN CIRCLE ARROW + return rune(0x21ba), true + case "circlearrowright": // CLOCKWISE OPEN CIRCLE ARROW + return rune(0x21bb), true + case "circledR": // REGISTERED SIGN return rune(0xae), true - case "cirdarr": - // WHITE CIRCLE WITH DOWN ARROW + case "circledS": // CIRCLED LATIN CAPITAL LETTER S + return rune(0x24c8), true + case "circledast": // CIRCLED ASTERISK OPERATOR + return rune(0x229b), true + case "circledcirc": // CIRCLED RING OPERATOR + return rune(0x229a), true + case "circleddash": // CIRCLED DASH + return rune(0x229d), true + case "cirdarr": // WHITE CIRCLE WITH DOWN ARROW return rune(0x29ec), true - case "cirerr": - // ERROR-BARRED WHITE CIRCLE + case "cire": // RING EQUAL TO + return rune(0x2257), true + case "cirerr": // ERROR-BARRED WHITE CIRCLE return rune(0x29f2), true - case "cirfdarr": - // BLACK CIRCLE WITH DOWN ARROW + case "cirfdarr": // BLACK CIRCLE WITH DOWN ARROW return rune(0x29ed), true - case "cirferr": - // ERROR-BARRED BLACK CIRCLE + case "cirferr": // ERROR-BARRED BLACK CIRCLE return rune(0x29f3), true - case "cirfnint": - // CIRCULATION FUNCTION + case "cirfnint": // CIRCULATION FUNCTION return rune(0x2a10), true - case "cirmid": - // VERTICAL LINE WITH CIRCLE ABOVE + case "cirmid": // VERTICAL LINE WITH CIRCLE ABOVE return rune(0x2aef), true - case "cirscir": - // CIRCLE WITH SMALL CIRCLE TO THE RIGHT + case "cirscir": // CIRCLE WITH SMALL CIRCLE TO THE RIGHT return rune(0x29c2), true - case "closur": - // CLOSE UP + case "closur": // CLOSE UP return rune(0x2050), true - case "clubs": - // BLACK CLUB SUIT + case "clubs": // BLACK CLUB SUIT return rune(0x2663), true - case "clubsuit": - // BLACK CLUB SUIT + case "clubsuit": // BLACK CLUB SUIT return rune(0x2663), true - case "colone": - // COLON EQUALS - return rune(0x2254), true - case "coloneq": - // COLON EQUALS - return rune(0x2254), true - case "colon": - // COLON + case "colon": // COLON return rune(0x3a), true - case "commat": - // COMMERCIAL AT - return rune(0x40), true - case "comma": - // COMMA + case "colone": // COLON EQUALS + return rune(0x2254), true + case "coloneq": // COLON EQUALS + return rune(0x2254), true + case "comma": // COMMA return rune(0x2c), true - case "comp": - // COMPLEMENT + case "commat": // COMMERCIAL AT + return rune(0x40), true + case "comp": // COMPLEMENT return rune(0x2201), true - case "compfn": - // RING OPERATOR + case "compfn": // RING OPERATOR return rune(0x2218), true - case "complement": - // COMPLEMENT + case "complement": // COMPLEMENT return rune(0x2201), true - case "complexes": - // DOUBLE-STRUCK CAPITAL C + case "complexes": // DOUBLE-STRUCK CAPITAL C return rune(0x2102), true - case "cong": - // APPROXIMATELY EQUAL TO + case "cong": // APPROXIMATELY EQUAL TO return rune(0x2245), true - case "congdot": - // CONGRUENT WITH DOT ABOVE + case "congdot": // CONGRUENT WITH DOT ABOVE return rune(0x2a6d), true - case "conint": - // CONTOUR INTEGRAL + case "conint": // CONTOUR INTEGRAL return rune(0x222e), true - case "copf": - // MATHEMATICAL DOUBLE-STRUCK SMALL C + case "copf": // MATHEMATICAL DOUBLE-STRUCK SMALL C return rune(0x01d554), true - case "coprod": - // N-ARY COPRODUCT + case "coprod": // N-ARY COPRODUCT return rune(0x2210), true - case "copysr": - // SOUND RECORDING COPYRIGHT - return rune(0x2117), true - case "copy": - // COPYRIGHT SIGN + case "copy": // COPYRIGHT SIGN return rune(0xa9), true - case "crarr": - // DOWNWARDS ARROW WITH CORNER LEFTWARDS + case "copysr": // SOUND RECORDING COPYRIGHT + return rune(0x2117), true + case "crarr": // DOWNWARDS ARROW WITH CORNER LEFTWARDS return rune(0x21b5), true - case "cross": - // BALLOT X + case "cross": // BALLOT X return rune(0x2717), true - case "cscr": - // MATHEMATICAL SCRIPT SMALL C + case "cscr": // MATHEMATICAL SCRIPT SMALL C return rune(0x01d4b8), true - case "csub": - // CLOSED SUBSET + case "csub": // CLOSED SUBSET return rune(0x2acf), true - case "csube": - // CLOSED SUBSET OR EQUAL TO + case "csube": // CLOSED SUBSET OR EQUAL TO return rune(0x2ad1), true - case "csup": - // CLOSED SUPERSET + case "csup": // CLOSED SUPERSET return rune(0x2ad0), true - case "csupe": - // CLOSED SUPERSET OR EQUAL TO + case "csupe": // CLOSED SUPERSET OR EQUAL TO return rune(0x2ad2), true - case "ctdot": - // MIDLINE HORIZONTAL ELLIPSIS + case "ctdot": // MIDLINE HORIZONTAL ELLIPSIS return rune(0x22ef), true - case "cudarrl": - // RIGHT-SIDE ARC CLOCKWISE ARROW + case "cudarrl": // RIGHT-SIDE ARC CLOCKWISE ARROW return rune(0x2938), true - case "cudarrr": - // ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS + case "cudarrr": // ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS return rune(0x2935), true - case "cuepr": - // EQUAL TO OR PRECEDES + case "cuepr": // EQUAL TO OR PRECEDES return rune(0x22de), true - case "cuesc": - // EQUAL TO OR SUCCEEDS + case "cuesc": // EQUAL TO OR SUCCEEDS return rune(0x22df), true - case "cularr": - // ANTICLOCKWISE TOP SEMICIRCLE ARROW + case "cularr": // ANTICLOCKWISE TOP SEMICIRCLE ARROW return rune(0x21b6), true - case "cularrp": - // TOP ARC ANTICLOCKWISE ARROW WITH PLUS + case "cularrp": // TOP ARC ANTICLOCKWISE ARROW WITH PLUS return rune(0x293d), true - case "cup": - // UNION + case "cup": // UNION return rune(0x222a), true - case "cupbrcap": - // UNION ABOVE BAR ABOVE INTERSECTION + case "cupbrcap": // UNION ABOVE BAR ABOVE INTERSECTION return rune(0x2a48), true - case "cupcap": - // UNION ABOVE INTERSECTION + case "cupcap": // UNION ABOVE INTERSECTION return rune(0x2a46), true - case "cupcup": - // UNION BESIDE AND JOINED WITH UNION + case "cupcup": // UNION BESIDE AND JOINED WITH UNION return rune(0x2a4a), true - case "cupdot": - // MULTISET MULTIPLICATION + case "cupdot": // MULTISET MULTIPLICATION return rune(0x228d), true - case "cupint": - // INTEGRAL WITH UNION + case "cupint": // INTEGRAL WITH UNION return rune(0x2a1a), true - case "cupor": - // UNION WITH LOGICAL OR + case "cupor": // UNION WITH LOGICAL OR return rune(0x2a45), true - case "cupre": - // PRECEDES OR EQUAL TO + case "cupre": // PRECEDES OR EQUAL TO return rune(0x227c), true - case "cups": - // UNION with serifs + case "cups": // UNION with serifs return rune(0x222a), true - case "curarr": - // CLOCKWISE TOP SEMICIRCLE ARROW + case "curarr": // CLOCKWISE TOP SEMICIRCLE ARROW return rune(0x21b7), true - case "curarrm": - // TOP ARC CLOCKWISE ARROW WITH MINUS + case "curarrm": // TOP ARC CLOCKWISE ARROW WITH MINUS return rune(0x293c), true - case "curlyeqprec": - // EQUAL TO OR PRECEDES + case "curlyeqprec": // EQUAL TO OR PRECEDES return rune(0x22de), true - case "curlyeqsucc": - // EQUAL TO OR SUCCEEDS + case "curlyeqsucc": // EQUAL TO OR SUCCEEDS return rune(0x22df), true - case "curlyvee": - // CURLY LOGICAL OR + case "curlyvee": // CURLY LOGICAL OR return rune(0x22ce), true - case "curlywedge": - // CURLY LOGICAL AND + case "curlywedge": // CURLY LOGICAL AND return rune(0x22cf), true - case "curren": - // CURRENCY SIGN + case "curren": // CURRENCY SIGN return rune(0xa4), true - case "curvearrowleft": - // ANTICLOCKWISE TOP SEMICIRCLE ARROW + case "curvearrowleft": // ANTICLOCKWISE TOP SEMICIRCLE ARROW return rune(0x21b6), true - case "curvearrowright": - // CLOCKWISE TOP SEMICIRCLE ARROW + case "curvearrowright": // CLOCKWISE TOP SEMICIRCLE ARROW return rune(0x21b7), true - case "cuvee": - // CURLY LOGICAL OR + case "cuvee": // CURLY LOGICAL OR return rune(0x22ce), true - case "cuwed": - // CURLY LOGICAL AND + case "cuwed": // CURLY LOGICAL AND return rune(0x22cf), true - case "cwconint": - // CLOCKWISE CONTOUR INTEGRAL + case "cwconint": // CLOCKWISE CONTOUR INTEGRAL return rune(0x2232), true - case "cwint": - // CLOCKWISE INTEGRAL + case "cwint": // CLOCKWISE INTEGRAL return rune(0x2231), true - case "cylcty": - // CYLINDRICITY + case "cylcty": // CYLINDRICITY return rune(0x232d), true } case 'd': switch name { - case "dAarr": - // DOWNWARDS TRIPLE ARROW + case "dAarr": // DOWNWARDS TRIPLE ARROW return rune(0x290b), true - case "dArr": - // DOWNWARDS DOUBLE ARROW + case "dArr": // DOWNWARDS DOUBLE ARROW return rune(0x21d3), true - case "dHar": - // DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT + case "dHar": // DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT return rune(0x2965), true - case "dagger": - // DAGGER + case "dagger": // DAGGER return rune(0x2020), true - case "dalembrt": - // SQUARE WITH CONTOURED OUTLINE + case "dalembrt": // SQUARE WITH CONTOURED OUTLINE return rune(0x29e0), true - case "daleth": - // DALET SYMBOL + case "daleth": // DALET SYMBOL return rune(0x2138), true - case "darr2": - // DOWNWARDS PAIRED ARROWS - return rune(0x21ca), true - case "darr": - // DOWNWARDS ARROW + case "darr": // DOWNWARDS ARROW return rune(0x2193), true - case "darrb": - // DOWNWARDS ARROW TO BAR + case "darr2": // DOWNWARDS PAIRED ARROWS + return rune(0x21ca), true + case "darrb": // DOWNWARDS ARROW TO BAR return rune(0x2913), true - case "darrln": - // DOWNWARDS ARROW WITH HORIZONTAL STROKE + case "darrln": // DOWNWARDS ARROW WITH HORIZONTAL STROKE return rune(0x2908), true - case "dashv": - // LEFT TACK - return rune(0x22a3), true - case "dash": - // HYPHEN + case "dash": // HYPHEN return rune(0x2010), true - case "dashV": - // DOUBLE VERTICAL BAR LEFT TURNSTILE + case "dashV": // DOUBLE VERTICAL BAR LEFT TURNSTILE return rune(0x2ae3), true - case "dbkarow": - // RIGHTWARDS TRIPLE DASH ARROW + case "dashv": // LEFT TACK + return rune(0x22a3), true + case "dbkarow": // RIGHTWARDS TRIPLE DASH ARROW return rune(0x290f), true - case "dblac": - // DOUBLE ACUTE ACCENT + case "dblac": // DOUBLE ACUTE ACCENT return rune(0x02dd), true - case "dcaron": - // LATIN SMALL LETTER D WITH CARON + case "dcaron": // LATIN SMALL LETTER D WITH CARON return rune(0x010f), true - case "dcy": - // CYRILLIC SMALL LETTER DE + case "dcy": // CYRILLIC SMALL LETTER DE return rune(0x0434), true - case "ddarr": - // DOWNWARDS PAIRED ARROWS - return rune(0x21ca), true - case "dd": - // DOUBLE-STRUCK ITALIC SMALL D + case "dd": // DOUBLE-STRUCK ITALIC SMALL D return rune(0x2146), true - case "ddagger": - // DOUBLE DAGGER + case "ddagger": // DOUBLE DAGGER return rune(0x2021), true - case "ddotseq": - // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW - return rune(0x2a77), true - case "deg": - // DEGREE SIGN - return rune(0xb0), true - case "delta": - // GREEK SMALL LETTER DELTA - return rune(0x03b4), true - case "demptyv": - // EMPTY SET WITH OVERBAR - return rune(0x29b1), true - case "dfisht": - // DOWN FISH TAIL - return rune(0x297f), true - case "dfr": - // MATHEMATICAL FRAKTUR SMALL D - return rune(0x01d521), true - case "dgr": - // GREEK SMALL LETTER DELTA - return rune(0x03b4), true - case "dharl": - // DOWNWARDS HARPOON WITH BARB LEFTWARDS - return rune(0x21c3), true - case "dharr": - // DOWNWARDS HARPOON WITH BARB RIGHTWARDS - return rune(0x21c2), true - case "diam": - // DIAMOND OPERATOR - return rune(0x22c4), true - case "diamdarr": - // BLACK DIAMOND WITH DOWN ARROW - return rune(0x29ea), true - case "diamerr": - // ERROR-BARRED WHITE DIAMOND - return rune(0x29f0), true - case "diamerrf": - // ERROR-BARRED BLACK DIAMOND - return rune(0x29f1), true - case "diamond": - // DIAMOND OPERATOR - return rune(0x22c4), true - case "diamondsuit": - // BLACK DIAMOND SUIT - return rune(0x2666), true - case "diams": - // BLACK DIAMOND SUIT - return rune(0x2666), true - case "die": - // DIAERESIS - return rune(0xa8), true - case "digamma": - // GREEK SMALL LETTER DIGAMMA - return rune(0x03dd), true - case "disin": - // ELEMENT OF WITH LONG HORIZONTAL STROKE - return rune(0x22f2), true - case "divideontimes": - // DIVISION TIMES - return rune(0x22c7), true - case "divonx": - // DIVISION TIMES - return rune(0x22c7), true - case "div": - // DIVISION SIGN - return rune(0xf7), true - case "divide": - // DIVISION SIGN - return rune(0xf7), true - case "djcy": - // CYRILLIC SMALL LETTER DJE - return rune(0x0452), true - case "dlarr": - // SOUTH WEST ARROW - return rune(0x2199), true - case "dlcorn": - // BOTTOM LEFT CORNER - return rune(0x231e), true - case "dlcrop": - // BOTTOM LEFT CROP - return rune(0x230d), true - case "dlharb": - // DOWNWARDS HARPOON WITH BARB LEFT TO BAR - return rune(0x2959), true - case "dollar": - // DOLLAR SIGN - return rune(0x24), true - case "dopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL D - return rune(0x01d555), true - case "doteq": - // APPROACHES THE LIMIT - return rune(0x2250), true - case "doteqdot": - // GEOMETRICALLY EQUAL TO - return rune(0x2251), true - case "dotminus": - // DOT MINUS - return rune(0x2238), true - case "dotplus": - // DOT PLUS - return rune(0x2214), true - case "dotsquare": - // SQUARED DOT OPERATOR - return rune(0x22a1), true - case "dot": - // DOT ABOVE - return rune(0x02d9), true - case "doublebarwedge": - // PERSPECTIVE - return rune(0x2306), true - case "downarrow": - // DOWNWARDS ARROW - return rune(0x2193), true - case "downdownarrows": - // DOWNWARDS PAIRED ARROWS + case "ddarr": // DOWNWARDS PAIRED ARROWS return rune(0x21ca), true - case "downharpoonleft": - // DOWNWARDS HARPOON WITH BARB LEFTWARDS + case "ddotseq": // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW + return rune(0x2a77), true + case "deg": // DEGREE SIGN + return rune(0xb0), true + case "delta": // GREEK SMALL LETTER DELTA + return rune(0x03b4), true + case "demptyv": // EMPTY SET WITH OVERBAR + return rune(0x29b1), true + case "dfisht": // DOWN FISH TAIL + return rune(0x297f), true + case "dfr": // MATHEMATICAL FRAKTUR SMALL D + return rune(0x01d521), true + case "dgr": // GREEK SMALL LETTER DELTA + return rune(0x03b4), true + case "dharl": // DOWNWARDS HARPOON WITH BARB LEFTWARDS return rune(0x21c3), true - case "downharpoonright": - // DOWNWARDS HARPOON WITH BARB RIGHTWARDS + case "dharr": // DOWNWARDS HARPOON WITH BARB RIGHTWARDS return rune(0x21c2), true - case "drarr": - // SOUTH EAST ARROW + case "diam": // DIAMOND OPERATOR + return rune(0x22c4), true + case "diamdarr": // BLACK DIAMOND WITH DOWN ARROW + return rune(0x29ea), true + case "diamerr": // ERROR-BARRED WHITE DIAMOND + return rune(0x29f0), true + case "diamerrf": // ERROR-BARRED BLACK DIAMOND + return rune(0x29f1), true + case "diamond": // DIAMOND OPERATOR + return rune(0x22c4), true + case "diamondsuit": // BLACK DIAMOND SUIT + return rune(0x2666), true + case "diams": // BLACK DIAMOND SUIT + return rune(0x2666), true + case "die": // DIAERESIS + return rune(0xa8), true + case "digamma": // GREEK SMALL LETTER DIGAMMA + return rune(0x03dd), true + case "disin": // ELEMENT OF WITH LONG HORIZONTAL STROKE + return rune(0x22f2), true + case "div": // DIVISION SIGN + return rune(0xf7), true + case "divide": // DIVISION SIGN + return rune(0xf7), true + case "divideontimes": // DIVISION TIMES + return rune(0x22c7), true + case "divonx": // DIVISION TIMES + return rune(0x22c7), true + case "djcy": // CYRILLIC SMALL LETTER DJE + return rune(0x0452), true + case "dlarr": // SOUTH WEST ARROW + return rune(0x2199), true + case "dlcorn": // BOTTOM LEFT CORNER + return rune(0x231e), true + case "dlcrop": // BOTTOM LEFT CROP + return rune(0x230d), true + case "dlharb": // DOWNWARDS HARPOON WITH BARB LEFT TO BAR + return rune(0x2959), true + case "dollar": // DOLLAR SIGN + return rune(0x24), true + case "dopf": // MATHEMATICAL DOUBLE-STRUCK SMALL D + return rune(0x01d555), true + case "dot": // DOT ABOVE + return rune(0x02d9), true + case "doteq": // APPROACHES THE LIMIT + return rune(0x2250), true + case "doteqdot": // GEOMETRICALLY EQUAL TO + return rune(0x2251), true + case "dotminus": // DOT MINUS + return rune(0x2238), true + case "dotplus": // DOT PLUS + return rune(0x2214), true + case "dotsquare": // SQUARED DOT OPERATOR + return rune(0x22a1), true + case "doublebarwedge": // PERSPECTIVE + return rune(0x2306), true + case "downarrow": // DOWNWARDS ARROW + return rune(0x2193), true + case "downdownarrows": // DOWNWARDS PAIRED ARROWS + return rune(0x21ca), true + case "downharpoonleft": // DOWNWARDS HARPOON WITH BARB LEFTWARDS + return rune(0x21c3), true + case "downharpoonright": // DOWNWARDS HARPOON WITH BARB RIGHTWARDS + return rune(0x21c2), true + case "drarr": // SOUTH EAST ARROW return rune(0x2198), true - case "drbkarow": - // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW + case "drbkarow": // RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW return rune(0x2910), true - case "drcorn": - // BOTTOM RIGHT CORNER + case "drcorn": // BOTTOM RIGHT CORNER return rune(0x231f), true - case "drcrop": - // BOTTOM RIGHT CROP + case "drcrop": // BOTTOM RIGHT CROP return rune(0x230c), true - case "drharb": - // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR + case "drharb": // DOWNWARDS HARPOON WITH BARB RIGHT TO BAR return rune(0x2955), true - case "dscr": - // MATHEMATICAL SCRIPT SMALL D + case "dscr": // MATHEMATICAL SCRIPT SMALL D return rune(0x01d4b9), true - case "dscy": - // CYRILLIC SMALL LETTER DZE + case "dscy": // CYRILLIC SMALL LETTER DZE return rune(0x0455), true - case "dsol": - // SOLIDUS WITH OVERBAR + case "dsol": // SOLIDUS WITH OVERBAR return rune(0x29f6), true - case "dstrok": - // LATIN SMALL LETTER D WITH STROKE + case "dstrok": // LATIN SMALL LETTER D WITH STROKE return rune(0x0111), true - case "dtdot": - // DOWN RIGHT DIAGONAL ELLIPSIS + case "dtdot": // DOWN RIGHT DIAGONAL ELLIPSIS return rune(0x22f1), true - case "dtrif": - // BLACK DOWN-POINTING SMALL TRIANGLE - return rune(0x25be), true - case "dtri": - // WHITE DOWN-POINTING SMALL TRIANGLE + case "dtri": // WHITE DOWN-POINTING SMALL TRIANGLE return rune(0x25bf), true - case "dtrilf": - // DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK + case "dtrif": // BLACK DOWN-POINTING SMALL TRIANGLE + return rune(0x25be), true + case "dtrilf": // DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK return rune(0x29e8), true - case "dtrirf": - // DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK + case "dtrirf": // DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK return rune(0x29e9), true - case "duarr": - // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW + case "duarr": // DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW return rune(0x21f5), true - case "duhar": - // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT + case "duhar": // DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT return rune(0x296f), true - case "dumap": - // DOUBLE-ENDED MULTIMAP + case "dumap": // DOUBLE-ENDED MULTIMAP return rune(0x29df), true - case "dwangle": - // OBLIQUE ANGLE OPENING UP + case "dwangle": // OBLIQUE ANGLE OPENING UP return rune(0x29a6), true - case "dzcy": - // CYRILLIC SMALL LETTER DZHE + case "dzcy": // CYRILLIC SMALL LETTER DZHE return rune(0x045f), true - case "dzigrarr": - // LONG RIGHTWARDS SQUIGGLE ARROW + case "dzigrarr": // LONG RIGHTWARDS SQUIGGLE ARROW return rune(0x27ff), true } case 'e': switch name { - case "eDDot": - // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW + case "eDDot": // EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW return rune(0x2a77), true - case "eDot": - // GEOMETRICALLY EQUAL TO + case "eDot": // GEOMETRICALLY EQUAL TO return rune(0x2251), true - case "eacgr": - // GREEK SMALL LETTER EPSILON WITH TONOS + case "eacgr": // GREEK SMALL LETTER EPSILON WITH TONOS return rune(0x03ad), true - case "eacute": - // LATIN SMALL LETTER E WITH ACUTE + case "eacute": // LATIN SMALL LETTER E WITH ACUTE return rune(0xe9), true - case "easter": - // EQUALS WITH ASTERISK + case "easter": // EQUALS WITH ASTERISK return rune(0x2a6e), true - case "ecaron": - // LATIN SMALL LETTER E WITH CARON + case "ecaron": // LATIN SMALL LETTER E WITH CARON return rune(0x011b), true - case "ecir": - // RING IN EQUAL TO + case "ecir": // RING IN EQUAL TO return rune(0x2256), true - case "ecirc": - // LATIN SMALL LETTER E WITH CIRCUMFLEX + case "ecirc": // LATIN SMALL LETTER E WITH CIRCUMFLEX return rune(0xea), true - case "ecolon": - // EQUALS COLON + case "ecolon": // EQUALS COLON return rune(0x2255), true - case "ecy": - // CYRILLIC SMALL LETTER E + case "ecy": // CYRILLIC SMALL LETTER E return rune(0x044d), true - case "edot": - // LATIN SMALL LETTER E WITH DOT ABOVE + case "edot": // LATIN SMALL LETTER E WITH DOT ABOVE return rune(0x0117), true - case "ee": - // DOUBLE-STRUCK ITALIC SMALL E + case "ee": // DOUBLE-STRUCK ITALIC SMALL E return rune(0x2147), true - case "eeacgr": - // GREEK SMALL LETTER ETA WITH TONOS + case "eeacgr": // GREEK SMALL LETTER ETA WITH TONOS return rune(0x03ae), true - case "eegr": - // GREEK SMALL LETTER ETA + case "eegr": // GREEK SMALL LETTER ETA return rune(0x03b7), true - case "efDot": - // APPROXIMATELY EQUAL TO OR THE IMAGE OF + case "efDot": // APPROXIMATELY EQUAL TO OR THE IMAGE OF return rune(0x2252), true - case "efr": - // MATHEMATICAL FRAKTUR SMALL E + case "efr": // MATHEMATICAL FRAKTUR SMALL E return rune(0x01d522), true - case "egr": - // GREEK SMALL LETTER EPSILON - return rune(0x03b5), true - case "egs": - // SLANTED EQUAL TO OR GREATER-THAN - return rune(0x2a96), true - case "egsdot": - // SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE - return rune(0x2a98), true - case "eg": - // DOUBLE-LINE EQUAL TO OR GREATER-THAN + case "eg": // DOUBLE-LINE EQUAL TO OR GREATER-THAN return rune(0x2a9a), true - case "egrave": - // LATIN SMALL LETTER E WITH GRAVE + case "egr": // GREEK SMALL LETTER EPSILON + return rune(0x03b5), true + case "egrave": // LATIN SMALL LETTER E WITH GRAVE return rune(0xe8), true - case "elinters": - // ELECTRICAL INTERSECTION - return rune(0x23e7), true - case "ell": - // SCRIPT SMALL L - return rune(0x2113), true - case "els": - // SLANTED EQUAL TO OR LESS-THAN - return rune(0x2a95), true - case "elsdot": - // SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE - return rune(0x2a97), true - case "el": - // DOUBLE-LINE EQUAL TO OR LESS-THAN - return rune(0x2a99), true - case "emacr": - // LATIN SMALL LETTER E WITH MACRON - return rune(0x0113), true - case "empty": - // EMPTY SET - return rune(0x2205), true - case "emptyset": - // EMPTY SET - return rune(0x2205), true - case "emptyv": - // EMPTY SET - return rune(0x2205), true - case "emsp13": - // THREE-PER-EM SPACE - return rune(0x2004), true - case "emsp14": - // FOUR-PER-EM SPACE - return rune(0x2005), true - case "emsp": - // EM SPACE - return rune(0x2003), true - case "eng": - // LATIN SMALL LETTER ENG - return rune(0x014b), true - case "ensp": - // EN SPACE - return rune(0x2002), true - case "eogon": - // LATIN SMALL LETTER E WITH OGONEK - return rune(0x0119), true - case "eopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL E - return rune(0x01d556), true - case "epar": - // EQUAL AND PARALLEL TO - return rune(0x22d5), true - case "eparsl": - // EQUALS SIGN AND SLANTED PARALLEL - return rune(0x29e3), true - case "eplus": - // EQUALS SIGN ABOVE PLUS SIGN - return rune(0x2a71), true - case "epsilon": - // GREEK SMALL LETTER EPSILON - return rune(0x03b5), true - case "epsis": - // GREEK LUNATE EPSILON SYMBOL - return rune(0x03f5), true - case "epsiv": - // GREEK LUNATE EPSILON SYMBOL - return rune(0x03f5), true - case "epsi": - // GREEK SMALL LETTER EPSILON - return rune(0x03b5), true - case "eqcirc": - // RING IN EQUAL TO - return rune(0x2256), true - case "eqcolon": - // EQUALS COLON - return rune(0x2255), true - case "eqeq": - // TWO CONSECUTIVE EQUALS SIGNS - return rune(0x2a75), true - case "eqsim": - // MINUS TILDE - return rune(0x2242), true - case "eqslantgtr": - // SLANTED EQUAL TO OR GREATER-THAN + case "egs": // SLANTED EQUAL TO OR GREATER-THAN return rune(0x2a96), true - case "eqslantless": - // SLANTED EQUAL TO OR LESS-THAN + case "egsdot": // SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE + return rune(0x2a98), true + case "el": // DOUBLE-LINE EQUAL TO OR LESS-THAN + return rune(0x2a99), true + case "elinters": // ELECTRICAL INTERSECTION + return rune(0x23e7), true + case "ell": // SCRIPT SMALL L + return rune(0x2113), true + case "els": // SLANTED EQUAL TO OR LESS-THAN return rune(0x2a95), true - case "equals": - // EQUALS SIGN - return rune(0x3d), true - case "equest": - // QUESTIONED EQUAL TO - return rune(0x225f), true - case "equiv": - // IDENTICAL TO - return rune(0x2261), true - case "equivDD": - // EQUIVALENT WITH FOUR DOTS ABOVE - return rune(0x2a78), true - case "eqvparsl": - // IDENTICAL TO AND SLANTED PARALLEL - return rune(0x29e5), true - case "erDot": - // IMAGE OF OR APPROXIMATELY EQUAL TO - return rune(0x2253), true - case "erarr": - // EQUALS SIGN ABOVE RIGHTWARDS ARROW - return rune(0x2971), true - case "escr": - // SCRIPT SMALL E - return rune(0x212f), true - case "esdot": - // APPROACHES THE LIMIT - return rune(0x2250), true - case "esim": - // MINUS TILDE + case "elsdot": // SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE + return rune(0x2a97), true + case "emacr": // LATIN SMALL LETTER E WITH MACRON + return rune(0x0113), true + case "empty": // EMPTY SET + return rune(0x2205), true + case "emptyset": // EMPTY SET + return rune(0x2205), true + case "emptyv": // EMPTY SET + return rune(0x2205), true + case "emsp": // EM SPACE + return rune(0x2003), true + case "emsp13": // THREE-PER-EM SPACE + return rune(0x2004), true + case "emsp14": // FOUR-PER-EM SPACE + return rune(0x2005), true + case "eng": // LATIN SMALL LETTER ENG + return rune(0x014b), true + case "ensp": // EN SPACE + return rune(0x2002), true + case "eogon": // LATIN SMALL LETTER E WITH OGONEK + return rune(0x0119), true + case "eopf": // MATHEMATICAL DOUBLE-STRUCK SMALL E + return rune(0x01d556), true + case "epar": // EQUAL AND PARALLEL TO + return rune(0x22d5), true + case "eparsl": // EQUALS SIGN AND SLANTED PARALLEL + return rune(0x29e3), true + case "eplus": // EQUALS SIGN ABOVE PLUS SIGN + return rune(0x2a71), true + case "epsi": // GREEK SMALL LETTER EPSILON + return rune(0x03b5), true + case "epsilon": // GREEK SMALL LETTER EPSILON + return rune(0x03b5), true + case "epsis": // GREEK LUNATE EPSILON SYMBOL + return rune(0x03f5), true + case "epsiv": // GREEK LUNATE EPSILON SYMBOL + return rune(0x03f5), true + case "eqcirc": // RING IN EQUAL TO + return rune(0x2256), true + case "eqcolon": // EQUALS COLON + return rune(0x2255), true + case "eqeq": // TWO CONSECUTIVE EQUALS SIGNS + return rune(0x2a75), true + case "eqsim": // MINUS TILDE return rune(0x2242), true - case "eta": - // GREEK SMALL LETTER ETA + case "eqslantgtr": // SLANTED EQUAL TO OR GREATER-THAN + return rune(0x2a96), true + case "eqslantless": // SLANTED EQUAL TO OR LESS-THAN + return rune(0x2a95), true + case "equals": // EQUALS SIGN + return rune(0x3d), true + case "equest": // QUESTIONED EQUAL TO + return rune(0x225f), true + case "equiv": // IDENTICAL TO + return rune(0x2261), true + case "equivDD": // EQUIVALENT WITH FOUR DOTS ABOVE + return rune(0x2a78), true + case "eqvparsl": // IDENTICAL TO AND SLANTED PARALLEL + return rune(0x29e5), true + case "erDot": // IMAGE OF OR APPROXIMATELY EQUAL TO + return rune(0x2253), true + case "erarr": // EQUALS SIGN ABOVE RIGHTWARDS ARROW + return rune(0x2971), true + case "escr": // SCRIPT SMALL E + return rune(0x212f), true + case "esdot": // APPROACHES THE LIMIT + return rune(0x2250), true + case "esim": // MINUS TILDE + return rune(0x2242), true + case "eta": // GREEK SMALL LETTER ETA return rune(0x03b7), true - case "eth": - // LATIN SMALL LETTER ETH + case "eth": // LATIN SMALL LETTER ETH return rune(0xf0), true - case "euml": - // LATIN SMALL LETTER E WITH DIAERESIS + case "euml": // LATIN SMALL LETTER E WITH DIAERESIS return rune(0xeb), true - case "euro": - // EURO SIGN + case "euro": // EURO SIGN return rune(0x20ac), true - case "excl": - // EXCLAMATION MARK + case "excl": // EXCLAMATION MARK return rune(0x21), true - case "exist": - // THERE EXISTS + case "exist": // THERE EXISTS return rune(0x2203), true - case "expectation": - // SCRIPT CAPITAL E + case "expectation": // SCRIPT CAPITAL E return rune(0x2130), true - case "exponentiale": - // DOUBLE-STRUCK ITALIC SMALL E + case "exponentiale": // DOUBLE-STRUCK ITALIC SMALL E return rune(0x2147), true } case 'f': switch name { - case "fallingdotseq": - // APPROXIMATELY EQUAL TO OR THE IMAGE OF + case "fallingdotseq": // APPROXIMATELY EQUAL TO OR THE IMAGE OF return rune(0x2252), true - case "fbowtie": - // BLACK BOWTIE + case "fbowtie": // BLACK BOWTIE return rune(0x29d3), true - case "fcy": - // CYRILLIC SMALL LETTER EF + case "fcy": // CYRILLIC SMALL LETTER EF return rune(0x0444), true - case "fdiag": - // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + case "fdiag": // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT return rune(0x2572), true - case "fdiordi": - // FALLING DIAGONAL CROSSING RISING DIAGONAL + case "fdiordi": // FALLING DIAGONAL CROSSING RISING DIAGONAL return rune(0x292c), true - case "fdonearr": - // FALLING DIAGONAL CROSSING NORTH EAST ARROW + case "fdonearr": // FALLING DIAGONAL CROSSING NORTH EAST ARROW return rune(0x292f), true - case "female": - // FEMALE SIGN + case "female": // FEMALE SIGN return rune(0x2640), true - case "ffilig": - // LATIN SMALL LIGATURE FFI + case "ffilig": // LATIN SMALL LIGATURE FFI return rune(0xfb03), true - case "fflig": - // LATIN SMALL LIGATURE FF + case "fflig": // LATIN SMALL LIGATURE FF return rune(0xfb00), true - case "ffllig": - // LATIN SMALL LIGATURE FFL + case "ffllig": // LATIN SMALL LIGATURE FFL return rune(0xfb04), true - case "ffr": - // MATHEMATICAL FRAKTUR SMALL F + case "ffr": // MATHEMATICAL FRAKTUR SMALL F return rune(0x01d523), true - case "fhrglass": - // BLACK HOURGLASS + case "fhrglass": // BLACK HOURGLASS return rune(0x29d7), true - case "filig": - // LATIN SMALL LIGATURE FI + case "filig": // LATIN SMALL LIGATURE FI return rune(0xfb01), true - case "fjlig": - // fj ligature + case "fjlig": // fj ligature return rune(0x66), true - case "flat": - // MUSIC FLAT SIGN + case "flat": // MUSIC FLAT SIGN return rune(0x266d), true - case "fllig": - // LATIN SMALL LIGATURE FL + case "fllig": // LATIN SMALL LIGATURE FL return rune(0xfb02), true - case "fltns": - // WHITE PARALLELOGRAM + case "fltns": // WHITE PARALLELOGRAM return rune(0x25b1), true - case "fnof": - // LATIN SMALL LETTER F WITH HOOK + case "fnof": // LATIN SMALL LETTER F WITH HOOK return rune(0x0192), true - case "fopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL F + case "fopf": // MATHEMATICAL DOUBLE-STRUCK SMALL F return rune(0x01d557), true - case "forall": - // FOR ALL + case "forall": // FOR ALL return rune(0x2200), true - case "fork": - // PITCHFORK + case "fork": // PITCHFORK return rune(0x22d4), true - case "forkv": - // ELEMENT OF OPENING DOWNWARDS + case "forkv": // ELEMENT OF OPENING DOWNWARDS return rune(0x2ad9), true - case "fpartint": - // FINITE PART INTEGRAL + case "fpartint": // FINITE PART INTEGRAL return rune(0x2a0d), true - case "frac12": - // VULGAR FRACTION ONE HALF + case "frac12": // VULGAR FRACTION ONE HALF return rune(0xbd), true - case "frac13": - // VULGAR FRACTION ONE THIRD + case "frac13": // VULGAR FRACTION ONE THIRD return rune(0x2153), true - case "frac14": - // VULGAR FRACTION ONE QUARTER + case "frac14": // VULGAR FRACTION ONE QUARTER return rune(0xbc), true - case "frac15": - // VULGAR FRACTION ONE FIFTH + case "frac15": // VULGAR FRACTION ONE FIFTH return rune(0x2155), true - case "frac16": - // VULGAR FRACTION ONE SIXTH + case "frac16": // VULGAR FRACTION ONE SIXTH return rune(0x2159), true - case "frac18": - // VULGAR FRACTION ONE EIGHTH + case "frac18": // VULGAR FRACTION ONE EIGHTH return rune(0x215b), true - case "frac23": - // VULGAR FRACTION TWO THIRDS + case "frac23": // VULGAR FRACTION TWO THIRDS return rune(0x2154), true - case "frac25": - // VULGAR FRACTION TWO FIFTHS + case "frac25": // VULGAR FRACTION TWO FIFTHS return rune(0x2156), true - case "frac34": - // VULGAR FRACTION THREE QUARTERS + case "frac34": // VULGAR FRACTION THREE QUARTERS return rune(0xbe), true - case "frac35": - // VULGAR FRACTION THREE FIFTHS + case "frac35": // VULGAR FRACTION THREE FIFTHS return rune(0x2157), true - case "frac38": - // VULGAR FRACTION THREE EIGHTHS + case "frac38": // VULGAR FRACTION THREE EIGHTHS return rune(0x215c), true - case "frac45": - // VULGAR FRACTION FOUR FIFTHS + case "frac45": // VULGAR FRACTION FOUR FIFTHS return rune(0x2158), true - case "frac56": - // VULGAR FRACTION FIVE SIXTHS + case "frac56": // VULGAR FRACTION FIVE SIXTHS return rune(0x215a), true - case "frac58": - // VULGAR FRACTION FIVE EIGHTHS + case "frac58": // VULGAR FRACTION FIVE EIGHTHS return rune(0x215d), true - case "frac78": - // VULGAR FRACTION SEVEN EIGHTHS + case "frac78": // VULGAR FRACTION SEVEN EIGHTHS return rune(0x215e), true - case "frasl": - // FRACTION SLASH + case "frasl": // FRACTION SLASH return rune(0x2044), true - case "frown": - // FROWN + case "frown": // FROWN return rune(0x2322), true - case "fscr": - // MATHEMATICAL SCRIPT SMALL F + case "fscr": // MATHEMATICAL SCRIPT SMALL F return rune(0x01d4bb), true } case 'g': switch name { - case "gE": - // GREATER-THAN OVER EQUAL TO + case "gE": // GREATER-THAN OVER EQUAL TO return rune(0x2267), true - case "gEl": - // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN + case "gEl": // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN return rune(0x2a8c), true - case "gacute": - // LATIN SMALL LETTER G WITH ACUTE + case "gacute": // LATIN SMALL LETTER G WITH ACUTE return rune(0x01f5), true - case "gammad": - // GREEK SMALL LETTER DIGAMMA + case "gamma": // GREEK SMALL LETTER GAMMA + return rune(0x03b3), true + case "gammad": // GREEK SMALL LETTER DIGAMMA return rune(0x03dd), true - case "gamma": - // GREEK SMALL LETTER GAMMA - return rune(0x03b3), true - case "gap": - // GREATER-THAN OR APPROXIMATE + case "gap": // GREATER-THAN OR APPROXIMATE return rune(0x2a86), true - case "gbreve": - // LATIN SMALL LETTER G WITH BREVE + case "gbreve": // LATIN SMALL LETTER G WITH BREVE return rune(0x011f), true - case "gcedil": - // LATIN SMALL LETTER G WITH CEDILLA + case "gcedil": // LATIN SMALL LETTER G WITH CEDILLA return rune(0x0123), true - case "gcirc": - // LATIN SMALL LETTER G WITH CIRCUMFLEX + case "gcirc": // LATIN SMALL LETTER G WITH CIRCUMFLEX return rune(0x011d), true - case "gcy": - // CYRILLIC SMALL LETTER GHE + case "gcy": // CYRILLIC SMALL LETTER GHE return rune(0x0433), true - case "gdot": - // LATIN SMALL LETTER G WITH DOT ABOVE + case "gdot": // LATIN SMALL LETTER G WITH DOT ABOVE return rune(0x0121), true - case "ge": - // GREATER-THAN OR EQUAL TO + case "ge": // GREATER-THAN OR EQUAL TO return rune(0x2265), true - case "gel": - // GREATER-THAN EQUAL TO OR LESS-THAN + case "gel": // GREATER-THAN EQUAL TO OR LESS-THAN return rune(0x22db), true - case "geq": - // GREATER-THAN OR EQUAL TO + case "geq": // GREATER-THAN OR EQUAL TO return rune(0x2265), true - case "geqq": - // GREATER-THAN OVER EQUAL TO + case "geqq": // GREATER-THAN OVER EQUAL TO return rune(0x2267), true - case "geqslant": - // GREATER-THAN OR SLANTED EQUAL TO + case "geqslant": // GREATER-THAN OR SLANTED EQUAL TO return rune(0x2a7e), true - case "gesl": - // GREATER-THAN slanted EQUAL TO OR LESS-THAN - return rune(0x22db), true - case "ges": - // GREATER-THAN OR SLANTED EQUAL TO + case "ges": // GREATER-THAN OR SLANTED EQUAL TO return rune(0x2a7e), true - case "gescc": - // GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL + case "gescc": // GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL return rune(0x2aa9), true - case "gesdot": - // GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE + case "gesdot": // GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE return rune(0x2a80), true - case "gesdoto": - // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE + case "gesdoto": // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE return rune(0x2a82), true - case "gesdotol": - // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT + case "gesdotol": // GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT return rune(0x2a84), true - case "gesles": - // GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL - return rune(0x2a94), true - case "gfr": - // MATHEMATICAL FRAKTUR SMALL G - return rune(0x01d524), true - case "gg": - // MUCH GREATER-THAN - return rune(0x226b), true - case "ggg": - // VERY MUCH GREATER-THAN - return rune(0x22d9), true - case "ggr": - // GREEK SMALL LETTER GAMMA - return rune(0x03b3), true - case "gimel": - // GIMEL SYMBOL - return rune(0x2137), true - case "gjcy": - // CYRILLIC SMALL LETTER GJE - return rune(0x0453), true - case "gl": - // GREATER-THAN OR LESS-THAN - return rune(0x2277), true - case "glE": - // GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL - return rune(0x2a92), true - case "gla": - // GREATER-THAN BESIDE LESS-THAN - return rune(0x2aa5), true - case "glj": - // GREATER-THAN OVERLAPPING LESS-THAN - return rune(0x2aa4), true - case "gnE": - // GREATER-THAN BUT NOT EQUAL TO - return rune(0x2269), true - case "gnap": - // GREATER-THAN AND NOT APPROXIMATE - return rune(0x2a8a), true - case "gnapprox": - // GREATER-THAN AND NOT APPROXIMATE - return rune(0x2a8a), true - case "gneqq": - // GREATER-THAN BUT NOT EQUAL TO - return rune(0x2269), true - case "gne": - // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO - return rune(0x2a88), true - case "gneq": - // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO - return rune(0x2a88), true - case "gnsim": - // GREATER-THAN BUT NOT EQUIVALENT TO - return rune(0x22e7), true - case "gopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL G - return rune(0x01d558), true - case "grave": - // GRAVE ACCENT - return rune(0x60), true - case "gscr": - // SCRIPT SMALL G - return rune(0x210a), true - case "gsdot": - // GREATER-THAN WITH DOT - return rune(0x22d7), true - case "gsim": - // GREATER-THAN OR EQUIVALENT TO - return rune(0x2273), true - case "gsime": - // GREATER-THAN ABOVE SIMILAR OR EQUAL - return rune(0x2a8e), true - case "gsiml": - // GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN - return rune(0x2a90), true - case "gtcc": - // GREATER-THAN CLOSED BY CURVE - return rune(0x2aa7), true - case "gtcir": - // GREATER-THAN WITH CIRCLE INSIDE - return rune(0x2a7a), true - case "gtdot": - // GREATER-THAN WITH DOT - return rune(0x22d7), true - case "gtlPar": - // DOUBLE LEFT ARC GREATER-THAN BRACKET - return rune(0x2995), true - case "gtquest": - // GREATER-THAN WITH QUESTION MARK ABOVE - return rune(0x2a7c), true - case "gtrapprox": - // GREATER-THAN OR APPROXIMATE - return rune(0x2a86), true - case "gtrarr": - // GREATER-THAN ABOVE RIGHTWARDS ARROW - return rune(0x2978), true - case "gtrdot": - // GREATER-THAN WITH DOT - return rune(0x22d7), true - case "gtreqless": - // GREATER-THAN EQUAL TO OR LESS-THAN + case "gesl": // GREATER-THAN slanted EQUAL TO OR LESS-THAN return rune(0x22db), true - case "gtreqqless": - // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN - return rune(0x2a8c), true - case "gtrless": - // GREATER-THAN OR LESS-THAN + case "gesles": // GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL + return rune(0x2a94), true + case "gfr": // MATHEMATICAL FRAKTUR SMALL G + return rune(0x01d524), true + case "gg": // MUCH GREATER-THAN + return rune(0x226b), true + case "ggg": // VERY MUCH GREATER-THAN + return rune(0x22d9), true + case "ggr": // GREEK SMALL LETTER GAMMA + return rune(0x03b3), true + case "gimel": // GIMEL SYMBOL + return rune(0x2137), true + case "gjcy": // CYRILLIC SMALL LETTER GJE + return rune(0x0453), true + case "gl": // GREATER-THAN OR LESS-THAN return rune(0x2277), true - case "gtrpar": - // SPHERICAL ANGLE OPENING LEFT - return rune(0x29a0), true - case "gtrsim": - // GREATER-THAN OR EQUIVALENT TO - return rune(0x2273), true - case "gt": - // GREATER-THAN SIGN - return rune(0x3e), true - case "gvertneqq": - // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke + case "glE": // GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL + return rune(0x2a92), true + case "gla": // GREATER-THAN BESIDE LESS-THAN + return rune(0x2aa5), true + case "glj": // GREATER-THAN OVERLAPPING LESS-THAN + return rune(0x2aa4), true + case "gnE": // GREATER-THAN BUT NOT EQUAL TO return rune(0x2269), true - case "gvnE": - // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke + case "gnap": // GREATER-THAN AND NOT APPROXIMATE + return rune(0x2a8a), true + case "gnapprox": // GREATER-THAN AND NOT APPROXIMATE + return rune(0x2a8a), true + case "gne": // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO + return rune(0x2a88), true + case "gneq": // GREATER-THAN AND SINGLE-LINE NOT EQUAL TO + return rune(0x2a88), true + case "gneqq": // GREATER-THAN BUT NOT EQUAL TO + return rune(0x2269), true + case "gnsim": // GREATER-THAN BUT NOT EQUIVALENT TO + return rune(0x22e7), true + case "gopf": // MATHEMATICAL DOUBLE-STRUCK SMALL G + return rune(0x01d558), true + case "grave": // GRAVE ACCENT + return rune(0x60), true + case "gscr": // SCRIPT SMALL G + return rune(0x210a), true + case "gsdot": // GREATER-THAN WITH DOT + return rune(0x22d7), true + case "gsim": // GREATER-THAN OR EQUIVALENT TO + return rune(0x2273), true + case "gsime": // GREATER-THAN ABOVE SIMILAR OR EQUAL + return rune(0x2a8e), true + case "gsiml": // GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN + return rune(0x2a90), true + case "gt": // GREATER-THAN SIGN + return rune(0x3e), true + case "gtcc": // GREATER-THAN CLOSED BY CURVE + return rune(0x2aa7), true + case "gtcir": // GREATER-THAN WITH CIRCLE INSIDE + return rune(0x2a7a), true + case "gtdot": // GREATER-THAN WITH DOT + return rune(0x22d7), true + case "gtlPar": // DOUBLE LEFT ARC GREATER-THAN BRACKET + return rune(0x2995), true + case "gtquest": // GREATER-THAN WITH QUESTION MARK ABOVE + return rune(0x2a7c), true + case "gtrapprox": // GREATER-THAN OR APPROXIMATE + return rune(0x2a86), true + case "gtrarr": // GREATER-THAN ABOVE RIGHTWARDS ARROW + return rune(0x2978), true + case "gtrdot": // GREATER-THAN WITH DOT + return rune(0x22d7), true + case "gtreqless": // GREATER-THAN EQUAL TO OR LESS-THAN + return rune(0x22db), true + case "gtreqqless": // GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN + return rune(0x2a8c), true + case "gtrless": // GREATER-THAN OR LESS-THAN + return rune(0x2277), true + case "gtrpar": // SPHERICAL ANGLE OPENING LEFT + return rune(0x29a0), true + case "gtrsim": // GREATER-THAN OR EQUIVALENT TO + return rune(0x2273), true + case "gvertneqq": // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke + return rune(0x2269), true + case "gvnE": // GREATER-THAN BUT NOT EQUAL TO - with vertical stroke return rune(0x2269), true } case 'h': switch name { - case "hArr": - // LEFT RIGHT DOUBLE ARROW + case "hArr": // LEFT RIGHT DOUBLE ARROW return rune(0x21d4), true - case "hairsp": - // HAIR SPACE + case "hairsp": // HAIR SPACE return rune(0x200a), true - case "half": - // VULGAR FRACTION ONE HALF + case "half": // VULGAR FRACTION ONE HALF return rune(0xbd), true - case "hamilt": - // SCRIPT CAPITAL H + case "hamilt": // SCRIPT CAPITAL H return rune(0x210b), true - case "hardcy": - // CYRILLIC SMALL LETTER HARD SIGN + case "hardcy": // CYRILLIC SMALL LETTER HARD SIGN return rune(0x044a), true - case "harrw": - // LEFT RIGHT WAVE ARROW - return rune(0x21ad), true - case "harr": - // LEFT RIGHT ARROW + case "harr": // LEFT RIGHT ARROW return rune(0x2194), true - case "harrcir": - // LEFT RIGHT ARROW THROUGH SMALL CIRCLE + case "harrcir": // LEFT RIGHT ARROW THROUGH SMALL CIRCLE return rune(0x2948), true - case "hbar": - // PLANCK CONSTANT OVER TWO PI + case "harrw": // LEFT RIGHT WAVE ARROW + return rune(0x21ad), true + case "hbar": // PLANCK CONSTANT OVER TWO PI return rune(0x210f), true - case "hcirc": - // LATIN SMALL LETTER H WITH CIRCUMFLEX + case "hcirc": // LATIN SMALL LETTER H WITH CIRCUMFLEX return rune(0x0125), true - case "hearts": - // BLACK HEART SUIT + case "hearts": // BLACK HEART SUIT return rune(0x2665), true - case "heartsuit": - // BLACK HEART SUIT + case "heartsuit": // BLACK HEART SUIT return rune(0x2665), true - case "hellip": - // HORIZONTAL ELLIPSIS + case "hellip": // HORIZONTAL ELLIPSIS return rune(0x2026), true - case "hercon": - // HERMITIAN CONJUGATE MATRIX + case "hercon": // HERMITIAN CONJUGATE MATRIX return rune(0x22b9), true - case "hfr": - // MATHEMATICAL FRAKTUR SMALL H + case "hfr": // MATHEMATICAL FRAKTUR SMALL H return rune(0x01d525), true - case "hksearow": - // SOUTH EAST ARROW WITH HOOK + case "hksearow": // SOUTH EAST ARROW WITH HOOK return rune(0x2925), true - case "hkswarow": - // SOUTH WEST ARROW WITH HOOK + case "hkswarow": // SOUTH WEST ARROW WITH HOOK return rune(0x2926), true - case "hoarr": - // LEFT RIGHT OPEN-HEADED ARROW + case "hoarr": // LEFT RIGHT OPEN-HEADED ARROW return rune(0x21ff), true - case "homtht": - // HOMOTHETIC + case "homtht": // HOMOTHETIC return rune(0x223b), true - case "hookleftarrow": - // LEFTWARDS ARROW WITH HOOK + case "hookleftarrow": // LEFTWARDS ARROW WITH HOOK return rune(0x21a9), true - case "hookrightarrow": - // RIGHTWARDS ARROW WITH HOOK + case "hookrightarrow": // RIGHTWARDS ARROW WITH HOOK return rune(0x21aa), true - case "hopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL H + case "hopf": // MATHEMATICAL DOUBLE-STRUCK SMALL H return rune(0x01d559), true - case "horbar": - // HORIZONTAL BAR + case "horbar": // HORIZONTAL BAR return rune(0x2015), true - case "hrglass": - // WHITE HOURGLASS + case "hrglass": // WHITE HOURGLASS return rune(0x29d6), true - case "hscr": - // MATHEMATICAL SCRIPT SMALL H + case "hscr": // MATHEMATICAL SCRIPT SMALL H return rune(0x01d4bd), true - case "hslash": - // PLANCK CONSTANT OVER TWO PI + case "hslash": // PLANCK CONSTANT OVER TWO PI return rune(0x210f), true - case "hstrok": - // LATIN SMALL LETTER H WITH STROKE + case "hstrok": // LATIN SMALL LETTER H WITH STROKE return rune(0x0127), true - case "htimes": - // VECTOR OR CROSS PRODUCT + case "htimes": // VECTOR OR CROSS PRODUCT return rune(0x2a2f), true - case "hybull": - // HYPHEN BULLET + case "hybull": // HYPHEN BULLET return rune(0x2043), true - case "hyphen": - // HYPHEN + case "hyphen": // HYPHEN return rune(0x2010), true } case 'i': switch name { - case "iacgr": - // GREEK SMALL LETTER IOTA WITH TONOS + case "iacgr": // GREEK SMALL LETTER IOTA WITH TONOS return rune(0x03af), true - case "iacute": - // LATIN SMALL LETTER I WITH ACUTE + case "iacute": // LATIN SMALL LETTER I WITH ACUTE return rune(0xed), true - case "ic": - // INVISIBLE SEPARATOR + case "ic": // INVISIBLE SEPARATOR return rune(0x2063), true - case "icirc": - // LATIN SMALL LETTER I WITH CIRCUMFLEX + case "icirc": // LATIN SMALL LETTER I WITH CIRCUMFLEX return rune(0xee), true - case "icy": - // CYRILLIC SMALL LETTER I + case "icy": // CYRILLIC SMALL LETTER I return rune(0x0438), true - case "idiagr": - // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS + case "idiagr": // GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS return rune(0x0390), true - case "idigr": - // GREEK SMALL LETTER IOTA WITH DIALYTIKA + case "idigr": // GREEK SMALL LETTER IOTA WITH DIALYTIKA return rune(0x03ca), true - case "iecy": - // CYRILLIC SMALL LETTER IE + case "iecy": // CYRILLIC SMALL LETTER IE return rune(0x0435), true - case "iexcl": - // INVERTED EXCLAMATION MARK + case "iexcl": // INVERTED EXCLAMATION MARK return rune(0xa1), true - case "iff": - // LEFT RIGHT DOUBLE ARROW + case "iff": // LEFT RIGHT DOUBLE ARROW return rune(0x21d4), true - case "ifr": - // MATHEMATICAL FRAKTUR SMALL I + case "ifr": // MATHEMATICAL FRAKTUR SMALL I return rune(0x01d526), true - case "igr": - // GREEK SMALL LETTER IOTA + case "igr": // GREEK SMALL LETTER IOTA return rune(0x03b9), true - case "igrave": - // LATIN SMALL LETTER I WITH GRAVE + case "igrave": // LATIN SMALL LETTER I WITH GRAVE return rune(0xec), true - case "iiint": - // TRIPLE INTEGRAL - return rune(0x222d), true - case "ii": - // DOUBLE-STRUCK ITALIC SMALL I + case "ii": // DOUBLE-STRUCK ITALIC SMALL I return rune(0x2148), true - case "iiiint": - // QUADRUPLE INTEGRAL OPERATOR + case "iiiint": // QUADRUPLE INTEGRAL OPERATOR return rune(0x2a0c), true - case "iinfin": - // INCOMPLETE INFINITY + case "iiint": // TRIPLE INTEGRAL + return rune(0x222d), true + case "iinfin": // INCOMPLETE INFINITY return rune(0x29dc), true - case "iiota": - // TURNED GREEK SMALL LETTER IOTA + case "iiota": // TURNED GREEK SMALL LETTER IOTA return rune(0x2129), true - case "ijlig": - // LATIN SMALL LIGATURE IJ + case "ijlig": // LATIN SMALL LIGATURE IJ return rune(0x0133), true - case "imacr": - // LATIN SMALL LETTER I WITH MACRON + case "imacr": // LATIN SMALL LETTER I WITH MACRON return rune(0x012b), true - case "image": - // BLACK-LETTER CAPITAL I + case "image": // BLACK-LETTER CAPITAL I return rune(0x2111), true - case "imagline": - // SCRIPT CAPITAL I + case "imagline": // SCRIPT CAPITAL I return rune(0x2110), true - case "imagpart": - // BLACK-LETTER CAPITAL I + case "imagpart": // BLACK-LETTER CAPITAL I return rune(0x2111), true - case "imath": - // LATIN SMALL LETTER DOTLESS I + case "imath": // LATIN SMALL LETTER DOTLESS I return rune(0x0131), true - case "imof": - // IMAGE OF + case "imof": // IMAGE OF return rune(0x22b7), true - case "imped": - // LATIN CAPITAL LETTER Z WITH STROKE + case "imped": // LATIN CAPITAL LETTER Z WITH STROKE return rune(0x01b5), true - case "in": - // ELEMENT OF + case "in": // ELEMENT OF return rune(0x2208), true - case "incare": - // CARE OF + case "incare": // CARE OF return rune(0x2105), true - case "infin": - // INFINITY + case "infin": // INFINITY return rune(0x221e), true - case "infintie": - // TIE OVER INFINITY + case "infintie": // TIE OVER INFINITY return rune(0x29dd), true - case "inodot": - // LATIN SMALL LETTER DOTLESS I + case "inodot": // LATIN SMALL LETTER DOTLESS I return rune(0x0131), true - case "int": - // INTEGRAL + case "int": // INTEGRAL return rune(0x222b), true - case "intcal": - // INTERCALATE + case "intcal": // INTERCALATE return rune(0x22ba), true - case "integers": - // DOUBLE-STRUCK CAPITAL Z + case "integers": // DOUBLE-STRUCK CAPITAL Z return rune(0x2124), true - case "intercal": - // INTERCALATE + case "intercal": // INTERCALATE return rune(0x22ba), true - case "intlarhk": - // INTEGRAL WITH LEFTWARDS ARROW WITH HOOK + case "intlarhk": // INTEGRAL WITH LEFTWARDS ARROW WITH HOOK return rune(0x2a17), true - case "intprod": - // INTERIOR PRODUCT + case "intprod": // INTERIOR PRODUCT return rune(0x2a3c), true - case "iocy": - // CYRILLIC SMALL LETTER IO + case "iocy": // CYRILLIC SMALL LETTER IO return rune(0x0451), true - case "iogon": - // LATIN SMALL LETTER I WITH OGONEK + case "iogon": // LATIN SMALL LETTER I WITH OGONEK return rune(0x012f), true - case "iopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL I + case "iopf": // MATHEMATICAL DOUBLE-STRUCK SMALL I return rune(0x01d55a), true - case "iota": - // GREEK SMALL LETTER IOTA + case "iota": // GREEK SMALL LETTER IOTA return rune(0x03b9), true - case "iprod": - // INTERIOR PRODUCT + case "iprod": // INTERIOR PRODUCT return rune(0x2a3c), true - case "iprodr": - // RIGHTHAND INTERIOR PRODUCT + case "iprodr": // RIGHTHAND INTERIOR PRODUCT return rune(0x2a3d), true - case "iquest": - // INVERTED QUESTION MARK + case "iquest": // INVERTED QUESTION MARK return rune(0xbf), true - case "iscr": - // MATHEMATICAL SCRIPT SMALL I + case "iscr": // MATHEMATICAL SCRIPT SMALL I return rune(0x01d4be), true - case "isin": - // ELEMENT OF + case "isin": // ELEMENT OF return rune(0x2208), true - case "isinE": - // ELEMENT OF WITH TWO HORIZONTAL STROKES + case "isinE": // ELEMENT OF WITH TWO HORIZONTAL STROKES return rune(0x22f9), true - case "isindot": - // ELEMENT OF WITH DOT ABOVE + case "isindot": // ELEMENT OF WITH DOT ABOVE return rune(0x22f5), true - case "isinsv": - // ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE - return rune(0x22f3), true - case "isins": - // SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + case "isins": // SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE return rune(0x22f4), true - case "isinv": - // ELEMENT OF + case "isinsv": // ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + return rune(0x22f3), true + case "isinv": // ELEMENT OF return rune(0x2208), true - case "isinvb": - // ELEMENT OF WITH UNDERBAR + case "isinvb": // ELEMENT OF WITH UNDERBAR return rune(0x22f8), true - case "it": - // INVISIBLE TIMES + case "it": // INVISIBLE TIMES return rune(0x2062), true - case "itilde": - // LATIN SMALL LETTER I WITH TILDE + case "itilde": // LATIN SMALL LETTER I WITH TILDE return rune(0x0129), true - case "iukcy": - // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I + case "iukcy": // CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I return rune(0x0456), true - case "iuml": - // LATIN SMALL LETTER I WITH DIAERESIS + case "iuml": // LATIN SMALL LETTER I WITH DIAERESIS return rune(0xef), true } case 'j': switch name { - case "jcirc": - // LATIN SMALL LETTER J WITH CIRCUMFLEX + case "jcirc": // LATIN SMALL LETTER J WITH CIRCUMFLEX return rune(0x0135), true - case "jcy": - // CYRILLIC SMALL LETTER SHORT I + case "jcy": // CYRILLIC SMALL LETTER SHORT I return rune(0x0439), true - case "jfr": - // MATHEMATICAL FRAKTUR SMALL J + case "jfr": // MATHEMATICAL FRAKTUR SMALL J return rune(0x01d527), true - case "jmath": - // LATIN SMALL LETTER DOTLESS J + case "jmath": // LATIN SMALL LETTER DOTLESS J return rune(0x0237), true - case "jnodot": - // LATIN SMALL LETTER DOTLESS J + case "jnodot": // LATIN SMALL LETTER DOTLESS J return rune(0x0237), true - case "jopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL J + case "jopf": // MATHEMATICAL DOUBLE-STRUCK SMALL J return rune(0x01d55b), true - case "jscr": - // MATHEMATICAL SCRIPT SMALL J + case "jscr": // MATHEMATICAL SCRIPT SMALL J return rune(0x01d4bf), true - case "jsercy": - // CYRILLIC SMALL LETTER JE + case "jsercy": // CYRILLIC SMALL LETTER JE return rune(0x0458), true - case "jukcy": - // CYRILLIC SMALL LETTER UKRAINIAN IE + case "jukcy": // CYRILLIC SMALL LETTER UKRAINIAN IE return rune(0x0454), true } case 'k': switch name { - case "kappav": - // GREEK KAPPA SYMBOL + case "kappa": // GREEK SMALL LETTER KAPPA + return rune(0x03ba), true + case "kappav": // GREEK KAPPA SYMBOL return rune(0x03f0), true - case "kappa": - // GREEK SMALL LETTER KAPPA - return rune(0x03ba), true - case "kcedil": - // LATIN SMALL LETTER K WITH CEDILLA + case "kcedil": // LATIN SMALL LETTER K WITH CEDILLA return rune(0x0137), true - case "kcy": - // CYRILLIC SMALL LETTER KA + case "kcy": // CYRILLIC SMALL LETTER KA return rune(0x043a), true - case "kfr": - // MATHEMATICAL FRAKTUR SMALL K + case "kfr": // MATHEMATICAL FRAKTUR SMALL K return rune(0x01d528), true - case "kgr": - // GREEK SMALL LETTER KAPPA + case "kgr": // GREEK SMALL LETTER KAPPA return rune(0x03ba), true - case "kgreen": - // LATIN SMALL LETTER KRA + case "kgreen": // LATIN SMALL LETTER KRA return rune(0x0138), true - case "khcy": - // CYRILLIC SMALL LETTER HA + case "khcy": // CYRILLIC SMALL LETTER HA return rune(0x0445), true - case "khgr": - // GREEK SMALL LETTER CHI + case "khgr": // GREEK SMALL LETTER CHI return rune(0x03c7), true - case "kjcy": - // CYRILLIC SMALL LETTER KJE + case "kjcy": // CYRILLIC SMALL LETTER KJE return rune(0x045c), true - case "kopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL K + case "kopf": // MATHEMATICAL DOUBLE-STRUCK SMALL K return rune(0x01d55c), true - case "koppa": - // GREEK LETTER KOPPA + case "koppa": // GREEK LETTER KOPPA return rune(0x03de), true - case "kscr": - // MATHEMATICAL SCRIPT SMALL K + case "kscr": // MATHEMATICAL SCRIPT SMALL K return rune(0x01d4c0), true } case 'l': switch name { - case "lAarr": - // LEFTWARDS TRIPLE ARROW + case "lAarr": // LEFTWARDS TRIPLE ARROW return rune(0x21da), true - case "lArr": - // LEFTWARDS DOUBLE ARROW + case "lArr": // LEFTWARDS DOUBLE ARROW return rune(0x21d0), true - case "lAtail": - // LEFTWARDS DOUBLE ARROW-TAIL + case "lAtail": // LEFTWARDS DOUBLE ARROW-TAIL return rune(0x291b), true - case "lBarr": - // LEFTWARDS TRIPLE DASH ARROW + case "lBarr": // LEFTWARDS TRIPLE DASH ARROW return rune(0x290e), true - case "lE": - // LESS-THAN OVER EQUAL TO + case "lE": // LESS-THAN OVER EQUAL TO return rune(0x2266), true - case "lEg": - // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN + case "lEg": // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN return rune(0x2a8b), true - case "lHar": - // LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN + case "lHar": // LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN return rune(0x2962), true - case "lacute": - // LATIN SMALL LETTER L WITH ACUTE + case "lacute": // LATIN SMALL LETTER L WITH ACUTE return rune(0x013a), true - case "laemptyv": - // EMPTY SET WITH LEFT ARROW ABOVE + case "laemptyv": // EMPTY SET WITH LEFT ARROW ABOVE return rune(0x29b4), true - case "lagran": - // SCRIPT CAPITAL L + case "lagran": // SCRIPT CAPITAL L return rune(0x2112), true - case "lambda": - // GREEK SMALL LETTER LAMDA + case "lambda": // GREEK SMALL LETTER LAMDA return rune(0x03bb), true - case "lang": - // MATHEMATICAL LEFT ANGLE BRACKET + case "lang": // MATHEMATICAL LEFT ANGLE BRACKET return rune(0x27e8), true - case "langd": - // LEFT ANGLE BRACKET WITH DOT + case "langd": // LEFT ANGLE BRACKET WITH DOT return rune(0x2991), true - case "langle": - // MATHEMATICAL LEFT ANGLE BRACKET + case "langle": // MATHEMATICAL LEFT ANGLE BRACKET return rune(0x27e8), true - case "lap": - // LESS-THAN OR APPROXIMATE + case "lap": // LESS-THAN OR APPROXIMATE return rune(0x2a85), true - case "laquo": - // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + case "laquo": // LEFT-POINTING DOUBLE ANGLE QUOTATION MARK return rune(0xab), true - case "larr2": - // LEFTWARDS PAIRED ARROWS + case "larr": // LEFTWARDS ARROW + return rune(0x2190), true + case "larr2": // LEFTWARDS PAIRED ARROWS return rune(0x21c7), true - case "larrb": - // LEFTWARDS ARROW TO BAR + case "larrb": // LEFTWARDS ARROW TO BAR return rune(0x21e4), true - case "larrhk": - // LEFTWARDS ARROW WITH HOOK - return rune(0x21a9), true - case "larrlp": - // LEFTWARDS ARROW WITH LOOP - return rune(0x21ab), true - case "larrtl": - // LEFTWARDS ARROW WITH TAIL - return rune(0x21a2), true - case "larr": - // LEFTWARDS ARROW - return rune(0x2190), true - case "larrbfs": - // LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND + case "larrbfs": // LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND return rune(0x291f), true - case "larrfs": - // LEFTWARDS ARROW TO BLACK DIAMOND + case "larrfs": // LEFTWARDS ARROW TO BLACK DIAMOND return rune(0x291d), true - case "larrpl": - // LEFT-SIDE ARC ANTICLOCKWISE ARROW - return rune(0x2939), true - case "larrsim": - // LEFTWARDS ARROW ABOVE TILDE OPERATOR - return rune(0x2973), true - case "latail": - // LEFTWARDS ARROW-TAIL - return rune(0x2919), true - case "lat": - // LARGER THAN - return rune(0x2aab), true - case "late": - // LARGER THAN OR EQUAL TO - return rune(0x2aad), true - case "lates": - // LARGER THAN OR slanted EQUAL - return rune(0x2aad), true - case "lbarr": - // LEFTWARDS DOUBLE DASH ARROW - return rune(0x290c), true - case "lbbrk": - // LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT - return rune(0x2772), true - case "lbrace": - // LEFT CURLY BRACKET - return rune(0x7b), true - case "lbrack": - // LEFT SQUARE BRACKET - return rune(0x5b), true - case "lbrke": - // LEFT SQUARE BRACKET WITH UNDERBAR - return rune(0x298b), true - case "lbrksld": - // LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - return rune(0x298f), true - case "lbrkslu": - // LEFT SQUARE BRACKET WITH TICK IN TOP CORNER - return rune(0x298d), true - case "lcaron": - // LATIN SMALL LETTER L WITH CARON - return rune(0x013e), true - case "lcedil": - // LATIN SMALL LETTER L WITH CEDILLA - return rune(0x013c), true - case "lceil": - // LEFT CEILING - return rune(0x2308), true - case "lcub": - // LEFT CURLY BRACKET - return rune(0x7b), true - case "lcy": - // CYRILLIC SMALL LETTER EL - return rune(0x043b), true - case "ldca": - // ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS - return rune(0x2936), true - case "ldharb": - // LEFTWARDS HARPOON WITH BARB DOWN TO BAR - return rune(0x2956), true - case "ldot": - // LESS-THAN WITH DOT - return rune(0x22d6), true - case "ldquor": - // DOUBLE LOW-9 QUOTATION MARK - return rune(0x201e), true - case "ldquo": - // LEFT DOUBLE QUOTATION MARK - return rune(0x201c), true - case "ldrdhar": - // LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN - return rune(0x2967), true - case "ldrdshar": - // LEFT BARB DOWN RIGHT BARB DOWN HARPOON - return rune(0x2950), true - case "ldrushar": - // LEFT BARB DOWN RIGHT BARB UP HARPOON - return rune(0x294b), true - case "ldsh": - // DOWNWARDS ARROW WITH TIP LEFTWARDS - return rune(0x21b2), true - case "leftarrowtail": - // LEFTWARDS ARROW WITH TAIL - return rune(0x21a2), true - case "leftarrow": - // LEFTWARDS ARROW - return rune(0x2190), true - case "leftharpoondown": - // LEFTWARDS HARPOON WITH BARB DOWNWARDS - return rune(0x21bd), true - case "leftharpoonup": - // LEFTWARDS HARPOON WITH BARB UPWARDS - return rune(0x21bc), true - case "leftleftarrows": - // LEFTWARDS PAIRED ARROWS - return rune(0x21c7), true - case "leftrightarrows": - // LEFTWARDS ARROW OVER RIGHTWARDS ARROW - return rune(0x21c6), true - case "leftrightarrow": - // LEFT RIGHT ARROW - return rune(0x2194), true - case "leftrightharpoons": - // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - return rune(0x21cb), true - case "leftrightsquigarrow": - // LEFT RIGHT WAVE ARROW - return rune(0x21ad), true - case "le": - // LESS-THAN OR EQUAL TO - return rune(0x2264), true - case "leftthreetimes": - // LEFT SEMIDIRECT PRODUCT - return rune(0x22cb), true - case "leg": - // LESS-THAN EQUAL TO OR GREATER-THAN - return rune(0x22da), true - case "leq": - // LESS-THAN OR EQUAL TO - return rune(0x2264), true - case "leqq": - // LESS-THAN OVER EQUAL TO - return rune(0x2266), true - case "leqslant": - // LESS-THAN OR SLANTED EQUAL TO - return rune(0x2a7d), true - case "lesg": - // LESS-THAN slanted EQUAL TO OR GREATER-THAN - return rune(0x22da), true - case "lessdot": - // LESS-THAN WITH DOT - return rune(0x22d6), true - case "lesseqgtr": - // LESS-THAN EQUAL TO OR GREATER-THAN - return rune(0x22da), true - case "lessgtr": - // LESS-THAN OR GREATER-THAN - return rune(0x2276), true - case "lesssim": - // LESS-THAN OR EQUIVALENT TO - return rune(0x2272), true - case "les": - // LESS-THAN OR SLANTED EQUAL TO - return rune(0x2a7d), true - case "lescc": - // LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL - return rune(0x2aa8), true - case "lesdot": - // LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE - return rune(0x2a7f), true - case "lesdoto": - // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE - return rune(0x2a81), true - case "lesdotor": - // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT - return rune(0x2a83), true - case "lesges": - // LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL - return rune(0x2a93), true - case "lessapprox": - // LESS-THAN OR APPROXIMATE - return rune(0x2a85), true - case "lesseqqgtr": - // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN - return rune(0x2a8b), true - case "lfbowtie": - // BOWTIE WITH LEFT HALF BLACK - return rune(0x29d1), true - case "lfisht": - // LEFT FISH TAIL - return rune(0x297c), true - case "lfloor": - // LEFT FLOOR - return rune(0x230a), true - case "lfr": - // MATHEMATICAL FRAKTUR SMALL L - return rune(0x01d529), true - case "lftimes": - // TIMES WITH LEFT HALF BLACK - return rune(0x29d4), true - case "lg": - // LESS-THAN OR GREATER-THAN - return rune(0x2276), true - case "lgE": - // LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL - return rune(0x2a91), true - case "lgr": - // GREEK SMALL LETTER LAMDA - return rune(0x03bb), true - case "lhard": - // LEFTWARDS HARPOON WITH BARB DOWNWARDS - return rune(0x21bd), true - case "lharu": - // LEFTWARDS HARPOON WITH BARB UPWARDS - return rune(0x21bc), true - case "lharul": - // LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH - return rune(0x296a), true - case "lhblk": - // LOWER HALF BLOCK - return rune(0x2584), true - case "ljcy": - // CYRILLIC SMALL LETTER LJE - return rune(0x0459), true - case "llarr": - // LEFTWARDS PAIRED ARROWS - return rune(0x21c7), true - case "ll": - // MUCH LESS-THAN - return rune(0x226a), true - case "llcorner": - // BOTTOM LEFT CORNER - return rune(0x231e), true - case "llhard": - // LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH - return rune(0x296b), true - case "lltrif": - // BLACK LOWER LEFT TRIANGLE - return rune(0x25e3), true - case "lltri": - // LOWER LEFT TRIANGLE - return rune(0x25fa), true - case "lmidot": - // LATIN SMALL LETTER L WITH MIDDLE DOT - return rune(0x0140), true - case "lmoust": - // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION - return rune(0x23b0), true - case "lmoustache": - // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION - return rune(0x23b0), true - case "lnE": - // LESS-THAN BUT NOT EQUAL TO - return rune(0x2268), true - case "lnap": - // LESS-THAN AND NOT APPROXIMATE - return rune(0x2a89), true - case "lnapprox": - // LESS-THAN AND NOT APPROXIMATE - return rune(0x2a89), true - case "lneqq": - // LESS-THAN BUT NOT EQUAL TO - return rune(0x2268), true - case "lne": - // LESS-THAN AND SINGLE-LINE NOT EQUAL TO - return rune(0x2a87), true - case "lneq": - // LESS-THAN AND SINGLE-LINE NOT EQUAL TO - return rune(0x2a87), true - case "lnsim": - // LESS-THAN BUT NOT EQUIVALENT TO - return rune(0x22e6), true - case "loang": - // MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET - return rune(0x27ec), true - case "loarr": - // LEFTWARDS OPEN-HEADED ARROW - return rune(0x21fd), true - case "lobrk": - // MATHEMATICAL LEFT WHITE SQUARE BRACKET - return rune(0x27e6), true - case "locub": - // LEFT WHITE CURLY BRACKET - return rune(0x2983), true - case "longleftarrow": - // LONG LEFTWARDS ARROW - return rune(0x27f5), true - case "longleftrightarrow": - // LONG LEFT RIGHT ARROW - return rune(0x27f7), true - case "longmapsto": - // LONG RIGHTWARDS ARROW FROM BAR - return rune(0x27fc), true - case "longrightarrow": - // LONG RIGHTWARDS ARROW - return rune(0x27f6), true - case "looparrowleft": - // LEFTWARDS ARROW WITH LOOP + case "larrhk": // LEFTWARDS ARROW WITH HOOK + return rune(0x21a9), true + case "larrlp": // LEFTWARDS ARROW WITH LOOP return rune(0x21ab), true - case "looparrowright": - // RIGHTWARDS ARROW WITH LOOP - return rune(0x21ac), true - case "lopar": - // LEFT WHITE PARENTHESIS - return rune(0x2985), true - case "lopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL L - return rune(0x01d55d), true - case "loplus": - // PLUS SIGN IN LEFT HALF CIRCLE - return rune(0x2a2d), true - case "lotimes": - // MULTIPLICATION SIGN IN LEFT HALF CIRCLE - return rune(0x2a34), true - case "lowast": - // LOW ASTERISK - return rune(0x204e), true - case "lowbar": - // LOW LINE - return rune(0x5f), true - case "lowint": - // INTEGRAL WITH UNDERBAR - return rune(0x2a1c), true - case "loz": - // LOZENGE - return rune(0x25ca), true - case "lozenge": - // LOZENGE - return rune(0x25ca), true - case "lozf": - // BLACK LOZENGE - return rune(0x29eb), true - case "lpargt": - // SPHERICAL ANGLE OPENING LEFT - return rune(0x29a0), true - case "lparlt": - // LEFT ARC LESS-THAN BRACKET - return rune(0x2993), true - case "lpar": - // LEFT PARENTHESIS - return rune(0x28), true - case "lrarr2": - // LEFTWARDS ARROW OVER RIGHTWARDS ARROW - return rune(0x21c6), true - case "lrarr": - // LEFTWARDS ARROW OVER RIGHTWARDS ARROW - return rune(0x21c6), true - case "lrcorner": - // BOTTOM RIGHT CORNER - return rune(0x231f), true - case "lrhar": - // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - return rune(0x21cb), true - case "lrhar2": - // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON - return rune(0x21cb), true - case "lrhard": - // RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH - return rune(0x296d), true - case "lrm": - // LEFT-TO-RIGHT MARK - return rune(0x200e), true - case "lrtri": - // RIGHT TRIANGLE - return rune(0x22bf), true - case "lsaquo": - // SINGLE LEFT-POINTING ANGLE QUOTATION MARK - return rune(0x2039), true - case "lscr": - // MATHEMATICAL SCRIPT SMALL L - return rune(0x01d4c1), true - case "lsh": - // UPWARDS ARROW WITH TIP LEFTWARDS - return rune(0x21b0), true - case "lsim": - // LESS-THAN OR EQUIVALENT TO - return rune(0x2272), true - case "lsime": - // LESS-THAN ABOVE SIMILAR OR EQUAL - return rune(0x2a8d), true - case "lsimg": - // LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN - return rune(0x2a8f), true - case "lsqb": - // LEFT SQUARE BRACKET + case "larrpl": // LEFT-SIDE ARC ANTICLOCKWISE ARROW + return rune(0x2939), true + case "larrsim": // LEFTWARDS ARROW ABOVE TILDE OPERATOR + return rune(0x2973), true + case "larrtl": // LEFTWARDS ARROW WITH TAIL + return rune(0x21a2), true + case "lat": // LARGER THAN + return rune(0x2aab), true + case "latail": // LEFTWARDS ARROW-TAIL + return rune(0x2919), true + case "late": // LARGER THAN OR EQUAL TO + return rune(0x2aad), true + case "lates": // LARGER THAN OR slanted EQUAL + return rune(0x2aad), true + case "lbarr": // LEFTWARDS DOUBLE DASH ARROW + return rune(0x290c), true + case "lbbrk": // LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT + return rune(0x2772), true + case "lbrace": // LEFT CURLY BRACKET + return rune(0x7b), true + case "lbrack": // LEFT SQUARE BRACKET return rune(0x5b), true - case "lsquor": - // SINGLE LOW-9 QUOTATION MARK - return rune(0x201a), true - case "lsquo": - // LEFT SINGLE QUOTATION MARK - return rune(0x2018), true - case "lstrok": - // LATIN SMALL LETTER L WITH STROKE - return rune(0x0142), true - case "ltcc": - // LESS-THAN CLOSED BY CURVE - return rune(0x2aa6), true - case "ltcir": - // LESS-THAN WITH CIRCLE INSIDE - return rune(0x2a79), true - case "ltdot": - // LESS-THAN WITH DOT + case "lbrke": // LEFT SQUARE BRACKET WITH UNDERBAR + return rune(0x298b), true + case "lbrksld": // LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER + return rune(0x298f), true + case "lbrkslu": // LEFT SQUARE BRACKET WITH TICK IN TOP CORNER + return rune(0x298d), true + case "lcaron": // LATIN SMALL LETTER L WITH CARON + return rune(0x013e), true + case "lcedil": // LATIN SMALL LETTER L WITH CEDILLA + return rune(0x013c), true + case "lceil": // LEFT CEILING + return rune(0x2308), true + case "lcub": // LEFT CURLY BRACKET + return rune(0x7b), true + case "lcy": // CYRILLIC SMALL LETTER EL + return rune(0x043b), true + case "ldca": // ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS + return rune(0x2936), true + case "ldharb": // LEFTWARDS HARPOON WITH BARB DOWN TO BAR + return rune(0x2956), true + case "ldot": // LESS-THAN WITH DOT return rune(0x22d6), true - case "lthree": - // LEFT SEMIDIRECT PRODUCT + case "ldquo": // LEFT DOUBLE QUOTATION MARK + return rune(0x201c), true + case "ldquor": // DOUBLE LOW-9 QUOTATION MARK + return rune(0x201e), true + case "ldrdhar": // LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN + return rune(0x2967), true + case "ldrdshar": // LEFT BARB DOWN RIGHT BARB DOWN HARPOON + return rune(0x2950), true + case "ldrushar": // LEFT BARB DOWN RIGHT BARB UP HARPOON + return rune(0x294b), true + case "ldsh": // DOWNWARDS ARROW WITH TIP LEFTWARDS + return rune(0x21b2), true + case "le": // LESS-THAN OR EQUAL TO + return rune(0x2264), true + case "leftarrow": // LEFTWARDS ARROW + return rune(0x2190), true + case "leftarrowtail": // LEFTWARDS ARROW WITH TAIL + return rune(0x21a2), true + case "leftharpoondown": // LEFTWARDS HARPOON WITH BARB DOWNWARDS + return rune(0x21bd), true + case "leftharpoonup": // LEFTWARDS HARPOON WITH BARB UPWARDS + return rune(0x21bc), true + case "leftleftarrows": // LEFTWARDS PAIRED ARROWS + return rune(0x21c7), true + case "leftrightarrow": // LEFT RIGHT ARROW + return rune(0x2194), true + case "leftrightarrows": // LEFTWARDS ARROW OVER RIGHTWARDS ARROW + return rune(0x21c6), true + case "leftrightharpoons": // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + return rune(0x21cb), true + case "leftrightsquigarrow": // LEFT RIGHT WAVE ARROW + return rune(0x21ad), true + case "leftthreetimes": // LEFT SEMIDIRECT PRODUCT return rune(0x22cb), true - case "ltimes": - // LEFT NORMAL FACTOR SEMIDIRECT PRODUCT - return rune(0x22c9), true - case "ltlarr": - // LESS-THAN ABOVE LEFTWARDS ARROW - return rune(0x2976), true - case "ltquest": - // LESS-THAN WITH QUESTION MARK ABOVE - return rune(0x2a7b), true - case "ltrPar": - // DOUBLE RIGHT ARC LESS-THAN BRACKET - return rune(0x2996), true - case "ltrie": - // NORMAL SUBGROUP OF OR EQUAL TO - return rune(0x22b4), true - case "ltrif": - // BLACK LEFT-POINTING SMALL TRIANGLE - return rune(0x25c2), true - case "ltri": - // WHITE LEFT-POINTING SMALL TRIANGLE - return rune(0x25c3), true - case "ltrivb": - // LEFT TRIANGLE BESIDE VERTICAL BAR - return rune(0x29cf), true - case "lt": - // LESS-THAN SIGN - return rune(0x3c), true - case "luharb": - // LEFTWARDS HARPOON WITH BARB UP TO BAR - return rune(0x2952), true - case "lurdshar": - // LEFT BARB UP RIGHT BARB DOWN HARPOON - return rune(0x294a), true - case "luruhar": - // LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP - return rune(0x2966), true - case "lurushar": - // LEFT BARB UP RIGHT BARB UP HARPOON - return rune(0x294e), true - case "lvertneqq": - // LESS-THAN BUT NOT EQUAL TO - with vertical stroke + case "leg": // LESS-THAN EQUAL TO OR GREATER-THAN + return rune(0x22da), true + case "leq": // LESS-THAN OR EQUAL TO + return rune(0x2264), true + case "leqq": // LESS-THAN OVER EQUAL TO + return rune(0x2266), true + case "leqslant": // LESS-THAN OR SLANTED EQUAL TO + return rune(0x2a7d), true + case "les": // LESS-THAN OR SLANTED EQUAL TO + return rune(0x2a7d), true + case "lescc": // LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL + return rune(0x2aa8), true + case "lesdot": // LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE + return rune(0x2a7f), true + case "lesdoto": // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE + return rune(0x2a81), true + case "lesdotor": // LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT + return rune(0x2a83), true + case "lesg": // LESS-THAN slanted EQUAL TO OR GREATER-THAN + return rune(0x22da), true + case "lesges": // LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL + return rune(0x2a93), true + case "lessapprox": // LESS-THAN OR APPROXIMATE + return rune(0x2a85), true + case "lessdot": // LESS-THAN WITH DOT + return rune(0x22d6), true + case "lesseqgtr": // LESS-THAN EQUAL TO OR GREATER-THAN + return rune(0x22da), true + case "lesseqqgtr": // LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN + return rune(0x2a8b), true + case "lessgtr": // LESS-THAN OR GREATER-THAN + return rune(0x2276), true + case "lesssim": // LESS-THAN OR EQUIVALENT TO + return rune(0x2272), true + case "lfbowtie": // BOWTIE WITH LEFT HALF BLACK + return rune(0x29d1), true + case "lfisht": // LEFT FISH TAIL + return rune(0x297c), true + case "lfloor": // LEFT FLOOR + return rune(0x230a), true + case "lfr": // MATHEMATICAL FRAKTUR SMALL L + return rune(0x01d529), true + case "lftimes": // TIMES WITH LEFT HALF BLACK + return rune(0x29d4), true + case "lg": // LESS-THAN OR GREATER-THAN + return rune(0x2276), true + case "lgE": // LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL + return rune(0x2a91), true + case "lgr": // GREEK SMALL LETTER LAMDA + return rune(0x03bb), true + case "lhard": // LEFTWARDS HARPOON WITH BARB DOWNWARDS + return rune(0x21bd), true + case "lharu": // LEFTWARDS HARPOON WITH BARB UPWARDS + return rune(0x21bc), true + case "lharul": // LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH + return rune(0x296a), true + case "lhblk": // LOWER HALF BLOCK + return rune(0x2584), true + case "ljcy": // CYRILLIC SMALL LETTER LJE + return rune(0x0459), true + case "ll": // MUCH LESS-THAN + return rune(0x226a), true + case "llarr": // LEFTWARDS PAIRED ARROWS + return rune(0x21c7), true + case "llcorner": // BOTTOM LEFT CORNER + return rune(0x231e), true + case "llhard": // LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH + return rune(0x296b), true + case "lltri": // LOWER LEFT TRIANGLE + return rune(0x25fa), true + case "lltrif": // BLACK LOWER LEFT TRIANGLE + return rune(0x25e3), true + case "lmidot": // LATIN SMALL LETTER L WITH MIDDLE DOT + return rune(0x0140), true + case "lmoust": // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION + return rune(0x23b0), true + case "lmoustache": // UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION + return rune(0x23b0), true + case "lnE": // LESS-THAN BUT NOT EQUAL TO return rune(0x2268), true - case "lvnE": - // LESS-THAN BUT NOT EQUAL TO - with vertical stroke + case "lnap": // LESS-THAN AND NOT APPROXIMATE + return rune(0x2a89), true + case "lnapprox": // LESS-THAN AND NOT APPROXIMATE + return rune(0x2a89), true + case "lne": // LESS-THAN AND SINGLE-LINE NOT EQUAL TO + return rune(0x2a87), true + case "lneq": // LESS-THAN AND SINGLE-LINE NOT EQUAL TO + return rune(0x2a87), true + case "lneqq": // LESS-THAN BUT NOT EQUAL TO + return rune(0x2268), true + case "lnsim": // LESS-THAN BUT NOT EQUIVALENT TO + return rune(0x22e6), true + case "loang": // MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET + return rune(0x27ec), true + case "loarr": // LEFTWARDS OPEN-HEADED ARROW + return rune(0x21fd), true + case "lobrk": // MATHEMATICAL LEFT WHITE SQUARE BRACKET + return rune(0x27e6), true + case "locub": // LEFT WHITE CURLY BRACKET + return rune(0x2983), true + case "longleftarrow": // LONG LEFTWARDS ARROW + return rune(0x27f5), true + case "longleftrightarrow": // LONG LEFT RIGHT ARROW + return rune(0x27f7), true + case "longmapsto": // LONG RIGHTWARDS ARROW FROM BAR + return rune(0x27fc), true + case "longrightarrow": // LONG RIGHTWARDS ARROW + return rune(0x27f6), true + case "looparrowleft": // LEFTWARDS ARROW WITH LOOP + return rune(0x21ab), true + case "looparrowright": // RIGHTWARDS ARROW WITH LOOP + return rune(0x21ac), true + case "lopar": // LEFT WHITE PARENTHESIS + return rune(0x2985), true + case "lopf": // MATHEMATICAL DOUBLE-STRUCK SMALL L + return rune(0x01d55d), true + case "loplus": // PLUS SIGN IN LEFT HALF CIRCLE + return rune(0x2a2d), true + case "lotimes": // MULTIPLICATION SIGN IN LEFT HALF CIRCLE + return rune(0x2a34), true + case "lowast": // LOW ASTERISK + return rune(0x204e), true + case "lowbar": // LOW LINE + return rune(0x5f), true + case "lowint": // INTEGRAL WITH UNDERBAR + return rune(0x2a1c), true + case "loz": // LOZENGE + return rune(0x25ca), true + case "lozenge": // LOZENGE + return rune(0x25ca), true + case "lozf": // BLACK LOZENGE + return rune(0x29eb), true + case "lpar": // LEFT PARENTHESIS + return rune(0x28), true + case "lpargt": // SPHERICAL ANGLE OPENING LEFT + return rune(0x29a0), true + case "lparlt": // LEFT ARC LESS-THAN BRACKET + return rune(0x2993), true + case "lrarr": // LEFTWARDS ARROW OVER RIGHTWARDS ARROW + return rune(0x21c6), true + case "lrarr2": // LEFTWARDS ARROW OVER RIGHTWARDS ARROW + return rune(0x21c6), true + case "lrcorner": // BOTTOM RIGHT CORNER + return rune(0x231f), true + case "lrhar": // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + return rune(0x21cb), true + case "lrhar2": // LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON + return rune(0x21cb), true + case "lrhard": // RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH + return rune(0x296d), true + case "lrm": // LEFT-TO-RIGHT MARK + return rune(0x200e), true + case "lrtri": // RIGHT TRIANGLE + return rune(0x22bf), true + case "lsaquo": // SINGLE LEFT-POINTING ANGLE QUOTATION MARK + return rune(0x2039), true + case "lscr": // MATHEMATICAL SCRIPT SMALL L + return rune(0x01d4c1), true + case "lsh": // UPWARDS ARROW WITH TIP LEFTWARDS + return rune(0x21b0), true + case "lsim": // LESS-THAN OR EQUIVALENT TO + return rune(0x2272), true + case "lsime": // LESS-THAN ABOVE SIMILAR OR EQUAL + return rune(0x2a8d), true + case "lsimg": // LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN + return rune(0x2a8f), true + case "lsqb": // LEFT SQUARE BRACKET + return rune(0x5b), true + case "lsquo": // LEFT SINGLE QUOTATION MARK + return rune(0x2018), true + case "lsquor": // SINGLE LOW-9 QUOTATION MARK + return rune(0x201a), true + case "lstrok": // LATIN SMALL LETTER L WITH STROKE + return rune(0x0142), true + case "lt": // LESS-THAN SIGN + return rune(0x3c), true + case "ltcc": // LESS-THAN CLOSED BY CURVE + return rune(0x2aa6), true + case "ltcir": // LESS-THAN WITH CIRCLE INSIDE + return rune(0x2a79), true + case "ltdot": // LESS-THAN WITH DOT + return rune(0x22d6), true + case "lthree": // LEFT SEMIDIRECT PRODUCT + return rune(0x22cb), true + case "ltimes": // LEFT NORMAL FACTOR SEMIDIRECT PRODUCT + return rune(0x22c9), true + case "ltlarr": // LESS-THAN ABOVE LEFTWARDS ARROW + return rune(0x2976), true + case "ltquest": // LESS-THAN WITH QUESTION MARK ABOVE + return rune(0x2a7b), true + case "ltrPar": // DOUBLE RIGHT ARC LESS-THAN BRACKET + return rune(0x2996), true + case "ltri": // WHITE LEFT-POINTING SMALL TRIANGLE + return rune(0x25c3), true + case "ltrie": // NORMAL SUBGROUP OF OR EQUAL TO + return rune(0x22b4), true + case "ltrif": // BLACK LEFT-POINTING SMALL TRIANGLE + return rune(0x25c2), true + case "ltrivb": // LEFT TRIANGLE BESIDE VERTICAL BAR + return rune(0x29cf), true + case "luharb": // LEFTWARDS HARPOON WITH BARB UP TO BAR + return rune(0x2952), true + case "lurdshar": // LEFT BARB UP RIGHT BARB DOWN HARPOON + return rune(0x294a), true + case "luruhar": // LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP + return rune(0x2966), true + case "lurushar": // LEFT BARB UP RIGHT BARB UP HARPOON + return rune(0x294e), true + case "lvertneqq": // LESS-THAN BUT NOT EQUAL TO - with vertical stroke + return rune(0x2268), true + case "lvnE": // LESS-THAN BUT NOT EQUAL TO - with vertical stroke return rune(0x2268), true } case 'm': switch name { - case "mDDot": - // GEOMETRIC PROPORTION + case "mDDot": // GEOMETRIC PROPORTION return rune(0x223a), true - case "macr": - // MACRON + case "macr": // MACRON return rune(0xaf), true - case "male": - // MALE SIGN + case "male": // MALE SIGN return rune(0x2642), true - case "malt": - // MALTESE CROSS + case "malt": // MALTESE CROSS return rune(0x2720), true - case "maltese": - // MALTESE CROSS + case "maltese": // MALTESE CROSS return rune(0x2720), true - case "mapstodown": - // DOWNWARDS ARROW FROM BAR + case "map": // RIGHTWARDS ARROW FROM BAR + return rune(0x21a6), true + case "mapsto": // RIGHTWARDS ARROW FROM BAR + return rune(0x21a6), true + case "mapstodown": // DOWNWARDS ARROW FROM BAR return rune(0x21a7), true - case "mapsto": - // RIGHTWARDS ARROW FROM BAR - return rune(0x21a6), true - case "map": - // RIGHTWARDS ARROW FROM BAR - return rune(0x21a6), true - case "mapstoleft": - // LEFTWARDS ARROW FROM BAR + case "mapstoleft": // LEFTWARDS ARROW FROM BAR return rune(0x21a4), true - case "mapstoup": - // UPWARDS ARROW FROM BAR + case "mapstoup": // UPWARDS ARROW FROM BAR return rune(0x21a5), true - case "marker": - // BLACK VERTICAL RECTANGLE + case "marker": // BLACK VERTICAL RECTANGLE return rune(0x25ae), true - case "mcomma": - // MINUS SIGN WITH COMMA ABOVE + case "mcomma": // MINUS SIGN WITH COMMA ABOVE return rune(0x2a29), true - case "mcy": - // CYRILLIC SMALL LETTER EM + case "mcy": // CYRILLIC SMALL LETTER EM return rune(0x043c), true - case "mdash": - // EM DASH + case "mdash": // EM DASH return rune(0x2014), true - case "measuredangle": - // MEASURED ANGLE + case "measuredangle": // MEASURED ANGLE return rune(0x2221), true - case "mfr": - // MATHEMATICAL FRAKTUR SMALL M + case "mfr": // MATHEMATICAL FRAKTUR SMALL M return rune(0x01d52a), true - case "mgr": - // GREEK SMALL LETTER MU + case "mgr": // GREEK SMALL LETTER MU return rune(0x03bc), true - case "mho": - // INVERTED OHM SIGN + case "mho": // INVERTED OHM SIGN return rune(0x2127), true - case "micro": - // MICRO SIGN + case "micro": // MICRO SIGN return rune(0xb5), true - case "mid": - // DIVIDES + case "mid": // DIVIDES return rune(0x2223), true - case "midast": - // ASTERISK + case "midast": // ASTERISK return rune(0x2a), true - case "midcir": - // VERTICAL LINE WITH CIRCLE BELOW + case "midcir": // VERTICAL LINE WITH CIRCLE BELOW return rune(0x2af0), true - case "middot": - // MIDDLE DOT + case "middot": // MIDDLE DOT return rune(0xb7), true - case "minus": - // MINUS SIGN + case "minus": // MINUS SIGN return rune(0x2212), true - case "minusb": - // SQUARED MINUS + case "minusb": // SQUARED MINUS return rune(0x229f), true - case "minusd": - // DOT MINUS + case "minusd": // DOT MINUS return rune(0x2238), true - case "minusdu": - // MINUS SIGN WITH DOT BELOW + case "minusdu": // MINUS SIGN WITH DOT BELOW return rune(0x2a2a), true - case "mlcp": - // TRANSVERSAL INTERSECTION + case "mlcp": // TRANSVERSAL INTERSECTION return rune(0x2adb), true - case "mldr": - // HORIZONTAL ELLIPSIS + case "mldr": // HORIZONTAL ELLIPSIS return rune(0x2026), true - case "mnplus": - // MINUS-OR-PLUS SIGN + case "mnplus": // MINUS-OR-PLUS SIGN return rune(0x2213), true - case "models": - // MODELS + case "models": // MODELS return rune(0x22a7), true - case "mopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL M + case "mopf": // MATHEMATICAL DOUBLE-STRUCK SMALL M return rune(0x01d55e), true - case "mp": - // MINUS-OR-PLUS SIGN + case "mp": // MINUS-OR-PLUS SIGN return rune(0x2213), true - case "mscr": - // MATHEMATICAL SCRIPT SMALL M + case "mscr": // MATHEMATICAL SCRIPT SMALL M return rune(0x01d4c2), true - case "mstpos": - // INVERTED LAZY S + case "mstpos": // INVERTED LAZY S return rune(0x223e), true - case "multimap": - // MULTIMAP - return rune(0x22b8), true - case "mumap": - // MULTIMAP - return rune(0x22b8), true - case "mu": - // GREEK SMALL LETTER MU + case "mu": // GREEK SMALL LETTER MU return rune(0x03bc), true + case "multimap": // MULTIMAP + return rune(0x22b8), true + case "mumap": // MULTIMAP + return rune(0x22b8), true } case 'n': switch name { - case "nGg": - // VERY MUCH GREATER-THAN with slash + case "nGg": // VERY MUCH GREATER-THAN with slash return rune(0x22d9), true - case "nGtv": - // MUCH GREATER THAN with slash + case "nGt": // MUCH GREATER THAN with vertical line return rune(0x226b), true - case "nGt": - // MUCH GREATER THAN with vertical line + case "nGtv": // MUCH GREATER THAN with slash return rune(0x226b), true - case "nLeftarrow": - // LEFTWARDS DOUBLE ARROW WITH STROKE + case "nLeftarrow": // LEFTWARDS DOUBLE ARROW WITH STROKE return rune(0x21cd), true - case "nLeftrightarrow": - // LEFT RIGHT DOUBLE ARROW WITH STROKE + case "nLeftrightarrow": // LEFT RIGHT DOUBLE ARROW WITH STROKE return rune(0x21ce), true - case "nLl": - // VERY MUCH LESS-THAN with slash + case "nLl": // VERY MUCH LESS-THAN with slash return rune(0x22d8), true - case "nLtv": - // MUCH LESS THAN with slash + case "nLt": // MUCH LESS THAN with vertical line return rune(0x226a), true - case "nLt": - // MUCH LESS THAN with vertical line + case "nLtv": // MUCH LESS THAN with slash return rune(0x226a), true - case "nRightarrow": - // RIGHTWARDS DOUBLE ARROW WITH STROKE + case "nRightarrow": // RIGHTWARDS DOUBLE ARROW WITH STROKE return rune(0x21cf), true - case "nVDash": - // NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE + case "nVDash": // NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE return rune(0x22af), true - case "nVdash": - // DOES NOT FORCE + case "nVdash": // DOES NOT FORCE return rune(0x22ae), true - case "nabla": - // NABLA + case "nabla": // NABLA return rune(0x2207), true - case "nacute": - // LATIN SMALL LETTER N WITH ACUTE + case "nacute": // LATIN SMALL LETTER N WITH ACUTE return rune(0x0144), true - case "nang": - // ANGLE with vertical line + case "nang": // ANGLE with vertical line return rune(0x2220), true - case "nap": - // NOT ALMOST EQUAL TO + case "nap": // NOT ALMOST EQUAL TO return rune(0x2249), true - case "napE": - // APPROXIMATELY EQUAL OR EQUAL TO with slash + case "napE": // APPROXIMATELY EQUAL OR EQUAL TO with slash return rune(0x2a70), true - case "napid": - // TRIPLE TILDE with slash + case "napid": // TRIPLE TILDE with slash return rune(0x224b), true - case "napos": - // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + case "napos": // LATIN SMALL LETTER N PRECEDED BY APOSTROPHE return rune(0x0149), true - case "napprox": - // NOT ALMOST EQUAL TO + case "napprox": // NOT ALMOST EQUAL TO return rune(0x2249), true - case "naturals": - // DOUBLE-STRUCK CAPITAL N + case "natur": // MUSIC NATURAL SIGN + return rune(0x266e), true + case "natural": // MUSIC NATURAL SIGN + return rune(0x266e), true + case "naturals": // DOUBLE-STRUCK CAPITAL N return rune(0x2115), true - case "natur": - // MUSIC NATURAL SIGN - return rune(0x266e), true - case "natural": - // MUSIC NATURAL SIGN - return rune(0x266e), true - case "nbsp": - // NO-BREAK SPACE + case "nbsp": // NO-BREAK SPACE return rune(0xa0), true - case "nbump": - // GEOMETRICALLY EQUIVALENT TO with slash + case "nbump": // GEOMETRICALLY EQUIVALENT TO with slash return rune(0x224e), true - case "nbumpe": - // DIFFERENCE BETWEEN with slash + case "nbumpe": // DIFFERENCE BETWEEN with slash return rune(0x224f), true - case "ncap": - // INTERSECTION WITH OVERBAR + case "ncap": // INTERSECTION WITH OVERBAR return rune(0x2a43), true - case "ncaron": - // LATIN SMALL LETTER N WITH CARON + case "ncaron": // LATIN SMALL LETTER N WITH CARON return rune(0x0148), true - case "ncedil": - // LATIN SMALL LETTER N WITH CEDILLA + case "ncedil": // LATIN SMALL LETTER N WITH CEDILLA return rune(0x0146), true - case "ncong": - // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO + case "ncong": // NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO return rune(0x2247), true - case "ncongdot": - // CONGRUENT WITH DOT ABOVE with slash + case "ncongdot": // CONGRUENT WITH DOT ABOVE with slash return rune(0x2a6d), true - case "ncup": - // UNION WITH OVERBAR + case "ncup": // UNION WITH OVERBAR return rune(0x2a42), true - case "ncy": - // CYRILLIC SMALL LETTER EN + case "ncy": // CYRILLIC SMALL LETTER EN return rune(0x043d), true - case "ndash": - // EN DASH + case "ndash": // EN DASH return rune(0x2013), true - case "neArr": - // NORTH EAST DOUBLE ARROW - return rune(0x21d7), true - case "nearrow": - // NORTH EAST ARROW - return rune(0x2197), true - case "nearr": - // NORTH EAST ARROW - return rune(0x2197), true - case "nedot": - // APPROACHES THE LIMIT with slash - return rune(0x2250), true - case "nesim": - // MINUS TILDE with slash - return rune(0x2242), true - case "nexist": - // THERE DOES NOT EXIST - return rune(0x2204), true - case "nexists": - // THERE DOES NOT EXIST - return rune(0x2204), true - case "ne": - // NOT EQUAL TO + case "ne": // NOT EQUAL TO return rune(0x2260), true - case "nearhk": - // NORTH EAST ARROW WITH HOOK + case "neArr": // NORTH EAST DOUBLE ARROW + return rune(0x21d7), true + case "nearhk": // NORTH EAST ARROW WITH HOOK return rune(0x2924), true - case "neonwarr": - // NORTH EAST ARROW CROSSING NORTH WEST ARROW + case "nearr": // NORTH EAST ARROW + return rune(0x2197), true + case "nearrow": // NORTH EAST ARROW + return rune(0x2197), true + case "nedot": // APPROACHES THE LIMIT with slash + return rune(0x2250), true + case "neonwarr": // NORTH EAST ARROW CROSSING NORTH WEST ARROW return rune(0x2931), true - case "neosearr": - // NORTH EAST ARROW CROSSING SOUTH EAST ARROW + case "neosearr": // NORTH EAST ARROW CROSSING SOUTH EAST ARROW return rune(0x292e), true - case "nequiv": - // NOT IDENTICAL TO + case "nequiv": // NOT IDENTICAL TO return rune(0x2262), true - case "nesear": - // NORTH EAST ARROW AND SOUTH EAST ARROW + case "nesear": // NORTH EAST ARROW AND SOUTH EAST ARROW return rune(0x2928), true - case "neswsarr": - // NORTH EAST AND SOUTH WEST ARROW + case "nesim": // MINUS TILDE with slash + return rune(0x2242), true + case "neswsarr": // NORTH EAST AND SOUTH WEST ARROW return rune(0x2922), true - case "nfr": - // MATHEMATICAL FRAKTUR SMALL N + case "nexist": // THERE DOES NOT EXIST + return rune(0x2204), true + case "nexists": // THERE DOES NOT EXIST + return rune(0x2204), true + case "nfr": // MATHEMATICAL FRAKTUR SMALL N return rune(0x01d52b), true - case "ngE": - // GREATER-THAN OVER EQUAL TO with slash + case "ngE": // GREATER-THAN OVER EQUAL TO with slash return rune(0x2267), true - case "ngeqq": - // GREATER-THAN OVER EQUAL TO with slash + case "nge": // NEITHER GREATER-THAN NOR EQUAL TO + return rune(0x2271), true + case "ngeq": // NEITHER GREATER-THAN NOR EQUAL TO + return rune(0x2271), true + case "ngeqq": // GREATER-THAN OVER EQUAL TO with slash return rune(0x2267), true - case "nge": - // NEITHER GREATER-THAN NOR EQUAL TO - return rune(0x2271), true - case "ngeq": - // NEITHER GREATER-THAN NOR EQUAL TO - return rune(0x2271), true - case "ngeqslant": - // GREATER-THAN OR SLANTED EQUAL TO with slash + case "ngeqslant": // GREATER-THAN OR SLANTED EQUAL TO with slash return rune(0x2a7e), true - case "nges": - // GREATER-THAN OR SLANTED EQUAL TO with slash + case "nges": // GREATER-THAN OR SLANTED EQUAL TO with slash return rune(0x2a7e), true - case "ngr": - // GREEK SMALL LETTER NU + case "ngr": // GREEK SMALL LETTER NU return rune(0x03bd), true - case "ngsim": - // NEITHER GREATER-THAN NOR EQUIVALENT TO + case "ngsim": // NEITHER GREATER-THAN NOR EQUIVALENT TO return rune(0x2275), true - case "ngt": - // NOT GREATER-THAN + case "ngt": // NOT GREATER-THAN return rune(0x226f), true - case "ngtr": - // NOT GREATER-THAN + case "ngtr": // NOT GREATER-THAN return rune(0x226f), true - case "nhArr": - // LEFT RIGHT DOUBLE ARROW WITH STROKE + case "nhArr": // LEFT RIGHT DOUBLE ARROW WITH STROKE return rune(0x21ce), true - case "nharr": - // LEFT RIGHT ARROW WITH STROKE + case "nharr": // LEFT RIGHT ARROW WITH STROKE return rune(0x21ae), true - case "nhpar": - // PARALLEL WITH HORIZONTAL STROKE + case "nhpar": // PARALLEL WITH HORIZONTAL STROKE return rune(0x2af2), true - case "niv": - // CONTAINS AS MEMBER + case "ni": // CONTAINS AS MEMBER return rune(0x220b), true - case "ni": - // CONTAINS AS MEMBER - return rune(0x220b), true - case "nisd": - // CONTAINS WITH LONG HORIZONTAL STROKE - return rune(0x22fa), true - case "nis": - // SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + case "nis": // SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE return rune(0x22fc), true - case "njcy": - // CYRILLIC SMALL LETTER NJE + case "nisd": // CONTAINS WITH LONG HORIZONTAL STROKE + return rune(0x22fa), true + case "niv": // CONTAINS AS MEMBER + return rune(0x220b), true + case "njcy": // CYRILLIC SMALL LETTER NJE return rune(0x045a), true - case "nlArr": - // LEFTWARDS DOUBLE ARROW WITH STROKE + case "nlArr": // LEFTWARDS DOUBLE ARROW WITH STROKE return rune(0x21cd), true - case "nlE": - // LESS-THAN OVER EQUAL TO with slash + case "nlE": // LESS-THAN OVER EQUAL TO with slash return rune(0x2266), true - case "nlarr": - // LEFTWARDS ARROW WITH STROKE + case "nlarr": // LEFTWARDS ARROW WITH STROKE return rune(0x219a), true - case "nldr": - // TWO DOT LEADER + case "nldr": // TWO DOT LEADER return rune(0x2025), true - case "nleftarrow": - // LEFTWARDS ARROW WITH STROKE + case "nle": // NEITHER LESS-THAN NOR EQUAL TO + return rune(0x2270), true + case "nleftarrow": // LEFTWARDS ARROW WITH STROKE return rune(0x219a), true - case "nleftrightarrow": - // LEFT RIGHT ARROW WITH STROKE + case "nleftrightarrow": // LEFT RIGHT ARROW WITH STROKE return rune(0x21ae), true - case "nleqq": - // LESS-THAN OVER EQUAL TO with slash + case "nleq": // NEITHER LESS-THAN NOR EQUAL TO + return rune(0x2270), true + case "nleqq": // LESS-THAN OVER EQUAL TO with slash return rune(0x2266), true - case "nless": - // NOT LESS-THAN + case "nleqslant": // LESS-THAN OR SLANTED EQUAL TO with slash + return rune(0x2a7d), true + case "nles": // LESS-THAN OR SLANTED EQUAL TO with slash + return rune(0x2a7d), true + case "nless": // NOT LESS-THAN return rune(0x226e), true - case "nle": - // NEITHER LESS-THAN NOR EQUAL TO - return rune(0x2270), true - case "nleq": - // NEITHER LESS-THAN NOR EQUAL TO - return rune(0x2270), true - case "nleqslant": - // LESS-THAN OR SLANTED EQUAL TO with slash - return rune(0x2a7d), true - case "nles": - // LESS-THAN OR SLANTED EQUAL TO with slash - return rune(0x2a7d), true - case "nlsim": - // NEITHER LESS-THAN NOR EQUIVALENT TO + case "nlsim": // NEITHER LESS-THAN NOR EQUIVALENT TO return rune(0x2274), true - case "nlt": - // NOT LESS-THAN + case "nlt": // NOT LESS-THAN return rune(0x226e), true - case "nltri": - // NOT NORMAL SUBGROUP OF + case "nltri": // NOT NORMAL SUBGROUP OF return rune(0x22ea), true - case "nltrie": - // NOT NORMAL SUBGROUP OF OR EQUAL TO + case "nltrie": // NOT NORMAL SUBGROUP OF OR EQUAL TO return rune(0x22ec), true - case "nltrivb": - // LEFT TRIANGLE BESIDE VERTICAL BAR with slash + case "nltrivb": // LEFT TRIANGLE BESIDE VERTICAL BAR with slash return rune(0x29cf), true - case "nmid": - // DOES NOT DIVIDE + case "nmid": // DOES NOT DIVIDE return rune(0x2224), true - case "nopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL N + case "nopf": // MATHEMATICAL DOUBLE-STRUCK SMALL N return rune(0x01d55f), true - case "notin": - // NOT AN ELEMENT OF - return rune(0x2209), true - case "notinE": - // ELEMENT OF WITH TWO HORIZONTAL STROKES with slash - return rune(0x22f9), true - case "notindot": - // ELEMENT OF WITH DOT ABOVE with slash - return rune(0x22f5), true - case "notinva": - // NOT AN ELEMENT OF - return rune(0x2209), true - case "notinvb": - // SMALL ELEMENT OF WITH OVERBAR - return rune(0x22f7), true - case "notinvc": - // ELEMENT OF WITH OVERBAR - return rune(0x22f6), true - case "notni": - // DOES NOT CONTAIN AS MEMBER - return rune(0x220c), true - case "notniva": - // DOES NOT CONTAIN AS MEMBER - return rune(0x220c), true - case "notnivb": - // SMALL CONTAINS WITH OVERBAR - return rune(0x22fe), true - case "notnivc": - // CONTAINS WITH OVERBAR - return rune(0x22fd), true - case "not": - // NOT SIGN + case "not": // NOT SIGN return rune(0xac), true - case "npart": - // PARTIAL DIFFERENTIAL with slash - return rune(0x2202), true - case "npar": - // NOT PARALLEL TO + case "notin": // NOT AN ELEMENT OF + return rune(0x2209), true + case "notinE": // ELEMENT OF WITH TWO HORIZONTAL STROKES with slash + return rune(0x22f9), true + case "notindot": // ELEMENT OF WITH DOT ABOVE with slash + return rune(0x22f5), true + case "notinva": // NOT AN ELEMENT OF + return rune(0x2209), true + case "notinvb": // SMALL ELEMENT OF WITH OVERBAR + return rune(0x22f7), true + case "notinvc": // ELEMENT OF WITH OVERBAR + return rune(0x22f6), true + case "notni": // DOES NOT CONTAIN AS MEMBER + return rune(0x220c), true + case "notniva": // DOES NOT CONTAIN AS MEMBER + return rune(0x220c), true + case "notnivb": // SMALL CONTAINS WITH OVERBAR + return rune(0x22fe), true + case "notnivc": // CONTAINS WITH OVERBAR + return rune(0x22fd), true + case "npar": // NOT PARALLEL TO return rune(0x2226), true - case "nparallel": - // NOT PARALLEL TO + case "nparallel": // NOT PARALLEL TO return rune(0x2226), true - case "nparsl": - // DOUBLE SOLIDUS OPERATOR with reverse slash + case "nparsl": // DOUBLE SOLIDUS OPERATOR with reverse slash return rune(0x2afd), true - case "npolint": - // LINE INTEGRATION NOT INCLUDING THE POLE + case "npart": // PARTIAL DIFFERENTIAL with slash + return rune(0x2202), true + case "npolint": // LINE INTEGRATION NOT INCLUDING THE POLE return rune(0x2a14), true - case "nprsim": - // PRECEDES OR EQUIVALENT TO with slash - return rune(0x227e), true - case "npr": - // DOES NOT PRECEDE + case "npr": // DOES NOT PRECEDE return rune(0x2280), true - case "nprcue": - // DOES NOT PRECEDE OR EQUAL + case "nprcue": // DOES NOT PRECEDE OR EQUAL return rune(0x22e0), true - case "nprec": - // DOES NOT PRECEDE + case "npre": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash + return rune(0x2aaf), true + case "nprec": // DOES NOT PRECEDE return rune(0x2280), true - case "npre": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash + case "npreceq": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash return rune(0x2aaf), true - case "npreceq": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN with slash - return rune(0x2aaf), true - case "nrArr": - // RIGHTWARDS DOUBLE ARROW WITH STROKE + case "nprsim": // PRECEDES OR EQUIVALENT TO with slash + return rune(0x227e), true + case "nrArr": // RIGHTWARDS DOUBLE ARROW WITH STROKE return rune(0x21cf), true - case "nrarrw": - // RIGHTWARDS WAVE ARROW with slash - return rune(0x219d), true - case "nrarr": - // RIGHTWARDS ARROW WITH STROKE + case "nrarr": // RIGHTWARDS ARROW WITH STROKE return rune(0x219b), true - case "nrarrc": - // WAVE ARROW POINTING DIRECTLY RIGHT with slash + case "nrarrc": // WAVE ARROW POINTING DIRECTLY RIGHT with slash return rune(0x2933), true - case "nrightarrow": - // RIGHTWARDS ARROW WITH STROKE + case "nrarrw": // RIGHTWARDS WAVE ARROW with slash + return rune(0x219d), true + case "nrightarrow": // RIGHTWARDS ARROW WITH STROKE return rune(0x219b), true - case "nrtri": - // DOES NOT CONTAIN AS NORMAL SUBGROUP + case "nrtri": // DOES NOT CONTAIN AS NORMAL SUBGROUP return rune(0x22eb), true - case "nrtrie": - // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL + case "nrtrie": // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL return rune(0x22ed), true - case "nsGt": - // DOUBLE NESTED GREATER-THAN with slash + case "nsGt": // DOUBLE NESTED GREATER-THAN with slash return rune(0x2aa2), true - case "nsLt": - // DOUBLE NESTED LESS-THAN with slash + case "nsLt": // DOUBLE NESTED LESS-THAN with slash return rune(0x2aa1), true - case "nscsim": - // SUCCEEDS OR EQUIVALENT TO with slash - return rune(0x227f), true - case "nsc": - // DOES NOT SUCCEED + case "nsc": // DOES NOT SUCCEED return rune(0x2281), true - case "nsccue": - // DOES NOT SUCCEED OR EQUAL + case "nsccue": // DOES NOT SUCCEED OR EQUAL return rune(0x22e1), true - case "nsce": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash + case "nsce": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash return rune(0x2ab0), true - case "nscr": - // MATHEMATICAL SCRIPT SMALL N + case "nscr": // MATHEMATICAL SCRIPT SMALL N return rune(0x01d4c3), true - case "nshortmid": - // DOES NOT DIVIDE + case "nscsim": // SUCCEEDS OR EQUIVALENT TO with slash + return rune(0x227f), true + case "nshortmid": // DOES NOT DIVIDE return rune(0x2224), true - case "nshortparallel": - // NOT PARALLEL TO + case "nshortparallel": // NOT PARALLEL TO return rune(0x2226), true - case "nsim": - // NOT TILDE + case "nsim": // NOT TILDE return rune(0x2241), true - case "nsime": - // NOT ASYMPTOTICALLY EQUAL TO + case "nsime": // NOT ASYMPTOTICALLY EQUAL TO return rune(0x2244), true - case "nsimeq": - // NOT ASYMPTOTICALLY EQUAL TO + case "nsimeq": // NOT ASYMPTOTICALLY EQUAL TO return rune(0x2244), true - case "nsmid": - // DOES NOT DIVIDE + case "nsmid": // DOES NOT DIVIDE return rune(0x2224), true - case "nspar": - // NOT PARALLEL TO + case "nspar": // NOT PARALLEL TO return rune(0x2226), true - case "nsqsub": - // SQUARE IMAGE OF with slash + case "nsqsub": // SQUARE IMAGE OF with slash return rune(0x228f), true - case "nsqsube": - // NOT SQUARE IMAGE OF OR EQUAL TO + case "nsqsube": // NOT SQUARE IMAGE OF OR EQUAL TO return rune(0x22e2), true - case "nsqsup": - // SQUARE ORIGINAL OF with slash + case "nsqsup": // SQUARE ORIGINAL OF with slash return rune(0x2290), true - case "nsqsupe": - // NOT SQUARE ORIGINAL OF OR EQUAL TO + case "nsqsupe": // NOT SQUARE ORIGINAL OF OR EQUAL TO return rune(0x22e3), true - case "nsubset": - // SUBSET OF with vertical line - return rune(0x2282), true - case "nsub": - // NOT A SUBSET OF + case "nsub": // NOT A SUBSET OF return rune(0x2284), true - case "nsubE": - // SUBSET OF ABOVE EQUALS SIGN with slash + case "nsubE": // SUBSET OF ABOVE EQUALS SIGN with slash return rune(0x2ac5), true - case "nsube": - // NEITHER A SUBSET OF NOR EQUAL TO + case "nsube": // NEITHER A SUBSET OF NOR EQUAL TO return rune(0x2288), true - case "nsubseteq": - // NEITHER A SUBSET OF NOR EQUAL TO + case "nsubset": // SUBSET OF with vertical line + return rune(0x2282), true + case "nsubseteq": // NEITHER A SUBSET OF NOR EQUAL TO return rune(0x2288), true - case "nsubseteqq": - // SUBSET OF ABOVE EQUALS SIGN with slash + case "nsubseteqq": // SUBSET OF ABOVE EQUALS SIGN with slash return rune(0x2ac5), true - case "nsucc": - // DOES NOT SUCCEED + case "nsucc": // DOES NOT SUCCEED return rune(0x2281), true - case "nsucceq": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash + case "nsucceq": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN with slash return rune(0x2ab0), true - case "nsupset": - // SUPERSET OF with vertical line - return rune(0x2283), true - case "nsup": - // NOT A SUPERSET OF + case "nsup": // NOT A SUPERSET OF return rune(0x2285), true - case "nsupE": - // SUPERSET OF ABOVE EQUALS SIGN with slash + case "nsupE": // SUPERSET OF ABOVE EQUALS SIGN with slash return rune(0x2ac6), true - case "nsupe": - // NEITHER A SUPERSET OF NOR EQUAL TO + case "nsupe": // NEITHER A SUPERSET OF NOR EQUAL TO return rune(0x2289), true - case "nsupseteq": - // NEITHER A SUPERSET OF NOR EQUAL TO + case "nsupset": // SUPERSET OF with vertical line + return rune(0x2283), true + case "nsupseteq": // NEITHER A SUPERSET OF NOR EQUAL TO return rune(0x2289), true - case "nsupseteqq": - // SUPERSET OF ABOVE EQUALS SIGN with slash + case "nsupseteqq": // SUPERSET OF ABOVE EQUALS SIGN with slash return rune(0x2ac6), true - case "ntgl": - // NEITHER GREATER-THAN NOR LESS-THAN + case "ntgl": // NEITHER GREATER-THAN NOR LESS-THAN return rune(0x2279), true - case "ntilde": - // LATIN SMALL LETTER N WITH TILDE + case "ntilde": // LATIN SMALL LETTER N WITH TILDE return rune(0xf1), true - case "ntlg": - // NEITHER LESS-THAN NOR GREATER-THAN + case "ntlg": // NEITHER LESS-THAN NOR GREATER-THAN return rune(0x2278), true - case "ntriangleleft": - // NOT NORMAL SUBGROUP OF + case "ntriangleleft": // NOT NORMAL SUBGROUP OF return rune(0x22ea), true - case "ntrianglelefteq": - // NOT NORMAL SUBGROUP OF OR EQUAL TO + case "ntrianglelefteq": // NOT NORMAL SUBGROUP OF OR EQUAL TO return rune(0x22ec), true - case "ntriangleright": - // DOES NOT CONTAIN AS NORMAL SUBGROUP + case "ntriangleright": // DOES NOT CONTAIN AS NORMAL SUBGROUP return rune(0x22eb), true - case "ntrianglerighteq": - // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL + case "ntrianglerighteq": // DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL return rune(0x22ed), true - case "numero": - // NUMERO SIGN - return rune(0x2116), true - case "numsp": - // FIGURE SPACE - return rune(0x2007), true - case "nu": - // GREEK SMALL LETTER NU + case "nu": // GREEK SMALL LETTER NU return rune(0x03bd), true - case "num": - // NUMBER SIGN + case "num": // NUMBER SIGN return rune(0x23), true - case "nvDash": - // NOT TRUE + case "numero": // NUMERO SIGN + return rune(0x2116), true + case "numsp": // FIGURE SPACE + return rune(0x2007), true + case "nvDash": // NOT TRUE return rune(0x22ad), true - case "nvHarr": - // LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE + case "nvHarr": // LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE return rune(0x2904), true - case "nvap": - // EQUIVALENT TO with vertical line + case "nvap": // EQUIVALENT TO with vertical line return rune(0x224d), true - case "nvbrtri": - // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash + case "nvbrtri": // VERTICAL BAR BESIDE RIGHT TRIANGLE with slash return rune(0x29d0), true - case "nvdash": - // DOES NOT PROVE + case "nvdash": // DOES NOT PROVE return rune(0x22ac), true - case "nvge": - // GREATER-THAN OR EQUAL TO with vertical line + case "nvge": // GREATER-THAN OR EQUAL TO with vertical line return rune(0x2265), true - case "nvgt": - // GREATER-THAN SIGN with vertical line + case "nvgt": // GREATER-THAN SIGN with vertical line return rune(0x3e), true - case "nvinfin": - // INFINITY NEGATED WITH VERTICAL BAR + case "nvinfin": // INFINITY NEGATED WITH VERTICAL BAR return rune(0x29de), true - case "nvlArr": - // LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE + case "nvlArr": // LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE return rune(0x2902), true - case "nvle": - // LESS-THAN OR EQUAL TO with vertical line + case "nvle": // LESS-THAN OR EQUAL TO with vertical line return rune(0x2264), true - case "nvltrie": - // NORMAL SUBGROUP OF OR EQUAL TO with vertical line - return rune(0x22b4), true - case "nvlt": - // LESS-THAN SIGN with vertical line + case "nvlt": // LESS-THAN SIGN with vertical line return rune(0x3c), true - case "nvrArr": - // RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE + case "nvltrie": // NORMAL SUBGROUP OF OR EQUAL TO with vertical line + return rune(0x22b4), true + case "nvrArr": // RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE return rune(0x2903), true - case "nvrtrie": - // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO with vertical line + case "nvrtrie": // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO with vertical line return rune(0x22b5), true - case "nvsim": - // TILDE OPERATOR with vertical line + case "nvsim": // TILDE OPERATOR with vertical line return rune(0x223c), true - case "nwArr": - // NORTH WEST DOUBLE ARROW + case "nwArr": // NORTH WEST DOUBLE ARROW return rune(0x21d6), true - case "nwarhk": - // NORTH WEST ARROW WITH HOOK + case "nwarhk": // NORTH WEST ARROW WITH HOOK return rune(0x2923), true - case "nwarrow": - // NORTH WEST ARROW + case "nwarr": // NORTH WEST ARROW return rune(0x2196), true - case "nwarr": - // NORTH WEST ARROW + case "nwarrow": // NORTH WEST ARROW return rune(0x2196), true - case "nwnear": - // NORTH WEST ARROW AND NORTH EAST ARROW + case "nwnear": // NORTH WEST ARROW AND NORTH EAST ARROW return rune(0x2927), true - case "nwonearr": - // NORTH WEST ARROW CROSSING NORTH EAST ARROW + case "nwonearr": // NORTH WEST ARROW CROSSING NORTH EAST ARROW return rune(0x2932), true - case "nwsesarr": - // NORTH WEST AND SOUTH EAST ARROW + case "nwsesarr": // NORTH WEST AND SOUTH EAST ARROW return rune(0x2921), true } case 'o': switch name { - case "oS": - // CIRCLED LATIN CAPITAL LETTER S + case "oS": // CIRCLED LATIN CAPITAL LETTER S return rune(0x24c8), true - case "oacgr": - // GREEK SMALL LETTER OMICRON WITH TONOS + case "oacgr": // GREEK SMALL LETTER OMICRON WITH TONOS return rune(0x03cc), true - case "oacute": - // LATIN SMALL LETTER O WITH ACUTE + case "oacute": // LATIN SMALL LETTER O WITH ACUTE return rune(0xf3), true - case "oast": - // CIRCLED ASTERISK OPERATOR + case "oast": // CIRCLED ASTERISK OPERATOR return rune(0x229b), true - case "obsol": - // CIRCLED REVERSE SOLIDUS + case "obsol": // CIRCLED REVERSE SOLIDUS return rune(0x29b8), true - case "ocir": - // CIRCLED RING OPERATOR + case "ocir": // CIRCLED RING OPERATOR return rune(0x229a), true - case "ocirc": - // LATIN SMALL LETTER O WITH CIRCUMFLEX + case "ocirc": // LATIN SMALL LETTER O WITH CIRCUMFLEX return rune(0xf4), true - case "ocy": - // CYRILLIC SMALL LETTER O + case "ocy": // CYRILLIC SMALL LETTER O return rune(0x043e), true - case "odash": - // CIRCLED DASH + case "odash": // CIRCLED DASH return rune(0x229d), true - case "odblac": - // LATIN SMALL LETTER O WITH DOUBLE ACUTE + case "odblac": // LATIN SMALL LETTER O WITH DOUBLE ACUTE return rune(0x0151), true - case "odiv": - // CIRCLED DIVISION SIGN + case "odiv": // CIRCLED DIVISION SIGN return rune(0x2a38), true - case "odot": - // CIRCLED DOT OPERATOR + case "odot": // CIRCLED DOT OPERATOR return rune(0x2299), true - case "odsold": - // CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN + case "odsold": // CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN return rune(0x29bc), true - case "oelig": - // LATIN SMALL LIGATURE OE + case "oelig": // LATIN SMALL LIGATURE OE return rune(0x0153), true - case "ofcir": - // CIRCLED BULLET + case "ofcir": // CIRCLED BULLET return rune(0x29bf), true - case "ofr": - // MATHEMATICAL FRAKTUR SMALL O + case "ofr": // MATHEMATICAL FRAKTUR SMALL O return rune(0x01d52c), true - case "ogon": - // OGONEK + case "ogon": // OGONEK return rune(0x02db), true - case "ogr": - // GREEK SMALL LETTER OMICRON + case "ogr": // GREEK SMALL LETTER OMICRON return rune(0x03bf), true - case "ograve": - // LATIN SMALL LETTER O WITH GRAVE + case "ograve": // LATIN SMALL LETTER O WITH GRAVE return rune(0xf2), true - case "ogt": - // CIRCLED GREATER-THAN + case "ogt": // CIRCLED GREATER-THAN return rune(0x29c1), true - case "ohacgr": - // GREEK SMALL LETTER OMEGA WITH TONOS + case "ohacgr": // GREEK SMALL LETTER OMEGA WITH TONOS return rune(0x03ce), true - case "ohbar": - // CIRCLE WITH HORIZONTAL BAR + case "ohbar": // CIRCLE WITH HORIZONTAL BAR return rune(0x29b5), true - case "ohgr": - // GREEK SMALL LETTER OMEGA + case "ohgr": // GREEK SMALL LETTER OMEGA return rune(0x03c9), true - case "ohm": - // GREEK CAPITAL LETTER OMEGA + case "ohm": // GREEK CAPITAL LETTER OMEGA return rune(0x03a9), true - case "oint": - // CONTOUR INTEGRAL + case "oint": // CONTOUR INTEGRAL return rune(0x222e), true - case "olarr": - // ANTICLOCKWISE OPEN CIRCLE ARROW + case "olarr": // ANTICLOCKWISE OPEN CIRCLE ARROW return rune(0x21ba), true - case "olcir": - // CIRCLED WHITE BULLET + case "olcir": // CIRCLED WHITE BULLET return rune(0x29be), true - case "olcross": - // CIRCLE WITH SUPERIMPOSED X + case "olcross": // CIRCLE WITH SUPERIMPOSED X return rune(0x29bb), true - case "oline": - // OVERLINE + case "oline": // OVERLINE return rune(0x203e), true - case "olt": - // CIRCLED LESS-THAN + case "olt": // CIRCLED LESS-THAN return rune(0x29c0), true - case "omacr": - // LATIN SMALL LETTER O WITH MACRON + case "omacr": // LATIN SMALL LETTER O WITH MACRON return rune(0x014d), true - case "omega": - // GREEK SMALL LETTER OMEGA + case "omega": // GREEK SMALL LETTER OMEGA return rune(0x03c9), true - case "omicron": - // GREEK SMALL LETTER OMICRON + case "omicron": // GREEK SMALL LETTER OMICRON return rune(0x03bf), true - case "omid": - // CIRCLED VERTICAL BAR + case "omid": // CIRCLED VERTICAL BAR return rune(0x29b6), true - case "ominus": - // CIRCLED MINUS + case "ominus": // CIRCLED MINUS return rune(0x2296), true - case "oopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL O + case "oopf": // MATHEMATICAL DOUBLE-STRUCK SMALL O return rune(0x01d560), true - case "opar": - // CIRCLED PARALLEL + case "opar": // CIRCLED PARALLEL return rune(0x29b7), true - case "operp": - // CIRCLED PERPENDICULAR + case "operp": // CIRCLED PERPENDICULAR return rune(0x29b9), true - case "opfgamma": - // DOUBLE-STRUCK SMALL GAMMA + case "opfgamma": // DOUBLE-STRUCK SMALL GAMMA return rune(0x213d), true - case "opfpi": - // DOUBLE-STRUCK CAPITAL PI + case "opfpi": // DOUBLE-STRUCK CAPITAL PI return rune(0x213f), true - case "opfsum": - // DOUBLE-STRUCK N-ARY SUMMATION + case "opfsum": // DOUBLE-STRUCK N-ARY SUMMATION return rune(0x2140), true - case "oplus": - // CIRCLED PLUS + case "oplus": // CIRCLED PLUS return rune(0x2295), true - case "orarr": - // CLOCKWISE OPEN CIRCLE ARROW - return rune(0x21bb), true - case "or": - // LOGICAL OR + case "or": // LOGICAL OR return rune(0x2228), true - case "orderof": - // SCRIPT SMALL O - return rune(0x2134), true - case "order": - // SCRIPT SMALL O - return rune(0x2134), true - case "ord": - // LOGICAL OR WITH HORIZONTAL DASH + case "orarr": // CLOCKWISE OPEN CIRCLE ARROW + return rune(0x21bb), true + case "ord": // LOGICAL OR WITH HORIZONTAL DASH return rune(0x2a5d), true - case "ordf": - // FEMININE ORDINAL INDICATOR - return rune(0xaa), true - case "ordm": - // MASCULINE ORDINAL INDICATOR - return rune(0xba), true - case "origof": - // ORIGINAL OF - return rune(0x22b6), true - case "oror": - // TWO INTERSECTING LOGICAL OR - return rune(0x2a56), true - case "orslope": - // SLOPING LARGE OR - return rune(0x2a57), true - case "orv": - // LOGICAL OR WITH MIDDLE STEM - return rune(0x2a5b), true - case "oscr": - // SCRIPT SMALL O + case "order": // SCRIPT SMALL O return rune(0x2134), true - case "oslash": - // LATIN SMALL LETTER O WITH STROKE + case "orderof": // SCRIPT SMALL O + return rune(0x2134), true + case "ordf": // FEMININE ORDINAL INDICATOR + return rune(0xaa), true + case "ordm": // MASCULINE ORDINAL INDICATOR + return rune(0xba), true + case "origof": // ORIGINAL OF + return rune(0x22b6), true + case "oror": // TWO INTERSECTING LOGICAL OR + return rune(0x2a56), true + case "orslope": // SLOPING LARGE OR + return rune(0x2a57), true + case "orv": // LOGICAL OR WITH MIDDLE STEM + return rune(0x2a5b), true + case "oscr": // SCRIPT SMALL O + return rune(0x2134), true + case "oslash": // LATIN SMALL LETTER O WITH STROKE return rune(0xf8), true - case "osol": - // CIRCLED DIVISION SLASH + case "osol": // CIRCLED DIVISION SLASH return rune(0x2298), true - case "otilde": - // LATIN SMALL LETTER O WITH TILDE + case "otilde": // LATIN SMALL LETTER O WITH TILDE return rune(0xf5), true - case "otimes": - // CIRCLED TIMES + case "otimes": // CIRCLED TIMES return rune(0x2297), true - case "otimesas": - // CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT + case "otimesas": // CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT return rune(0x2a36), true - case "ouml": - // LATIN SMALL LETTER O WITH DIAERESIS + case "ouml": // LATIN SMALL LETTER O WITH DIAERESIS return rune(0xf6), true - case "ovbar": - // APL FUNCTIONAL SYMBOL CIRCLE STILE + case "ovbar": // APL FUNCTIONAL SYMBOL CIRCLE STILE return rune(0x233d), true - case "ovrbrk": - // TOP SQUARE BRACKET + case "ovrbrk": // TOP SQUARE BRACKET return rune(0x23b4), true - case "ovrcub": - // TOP CURLY BRACKET + case "ovrcub": // TOP CURLY BRACKET return rune(0x23de), true - case "ovrpar": - // TOP PARENTHESIS + case "ovrpar": // TOP PARENTHESIS return rune(0x23dc), true - case "oxuarr": - // UP ARROW THROUGH CIRCLE + case "oxuarr": // UP ARROW THROUGH CIRCLE return rune(0x29bd), true } case 'p': switch name { - case "part": - // PARTIAL DIFFERENTIAL - return rune(0x2202), true - case "par": - // PARALLEL TO + case "par": // PARALLEL TO return rune(0x2225), true - case "parallel": - // PARALLEL TO - return rune(0x2225), true - case "para": - // PILCROW SIGN + case "para": // PILCROW SIGN return rune(0xb6), true - case "parsim": - // PARALLEL WITH TILDE OPERATOR + case "parallel": // PARALLEL TO + return rune(0x2225), true + case "parsim": // PARALLEL WITH TILDE OPERATOR return rune(0x2af3), true - case "parsl": - // DOUBLE SOLIDUS OPERATOR + case "parsl": // DOUBLE SOLIDUS OPERATOR return rune(0x2afd), true - case "pcy": - // CYRILLIC SMALL LETTER PE + case "part": // PARTIAL DIFFERENTIAL + return rune(0x2202), true + case "pcy": // CYRILLIC SMALL LETTER PE return rune(0x043f), true - case "percnt": - // PERCENT SIGN + case "percnt": // PERCENT SIGN return rune(0x25), true - case "period": - // FULL STOP + case "period": // FULL STOP return rune(0x2e), true - case "permil": - // PER MILLE SIGN + case "permil": // PER MILLE SIGN return rune(0x2030), true - case "perp": - // UP TACK + case "perp": // UP TACK return rune(0x22a5), true - case "pertenk": - // PER TEN THOUSAND SIGN + case "pertenk": // PER TEN THOUSAND SIGN return rune(0x2031), true - case "pfr": - // MATHEMATICAL FRAKTUR SMALL P + case "pfr": // MATHEMATICAL FRAKTUR SMALL P return rune(0x01d52d), true - case "pgr": - // GREEK SMALL LETTER PI + case "pgr": // GREEK SMALL LETTER PI return rune(0x03c0), true - case "phgr": - // GREEK SMALL LETTER PHI + case "phgr": // GREEK SMALL LETTER PHI return rune(0x03c6), true - case "phis": - // GREEK PHI SYMBOL - return rune(0x03d5), true - case "phiv": - // GREEK PHI SYMBOL - return rune(0x03d5), true - case "phi": - // GREEK SMALL LETTER PHI + case "phi": // GREEK SMALL LETTER PHI return rune(0x03c6), true - case "phmmat": - // SCRIPT CAPITAL M + case "phis": // GREEK PHI SYMBOL + return rune(0x03d5), true + case "phiv": // GREEK PHI SYMBOL + return rune(0x03d5), true + case "phmmat": // SCRIPT CAPITAL M return rune(0x2133), true - case "phone": - // BLACK TELEPHONE + case "phone": // BLACK TELEPHONE return rune(0x260e), true - case "pitchfork": - // PITCHFORK - return rune(0x22d4), true - case "piv": - // GREEK PI SYMBOL - return rune(0x03d6), true - case "pi": - // GREEK SMALL LETTER PI + case "pi": // GREEK SMALL LETTER PI return rune(0x03c0), true - case "planck": - // PLANCK CONSTANT OVER TWO PI + case "pitchfork": // PITCHFORK + return rune(0x22d4), true + case "piv": // GREEK PI SYMBOL + return rune(0x03d6), true + case "planck": // PLANCK CONSTANT OVER TWO PI return rune(0x210f), true - case "planckh": - // PLANCK CONSTANT + case "planckh": // PLANCK CONSTANT return rune(0x210e), true - case "plankv": - // PLANCK CONSTANT OVER TWO PI + case "plankv": // PLANCK CONSTANT OVER TWO PI return rune(0x210f), true - case "plusacir": - // PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE - return rune(0x2a23), true - case "plusb": - // SQUARED PLUS - return rune(0x229e), true - case "pluscir": - // PLUS SIGN WITH SMALL CIRCLE ABOVE - return rune(0x2a22), true - case "plusdo": - // DOT PLUS - return rune(0x2214), true - case "plusdu": - // PLUS SIGN WITH DOT BELOW - return rune(0x2a25), true - case "pluse": - // PLUS SIGN ABOVE EQUALS SIGN - return rune(0x2a72), true - case "plusmn": - // PLUS-MINUS SIGN - return rune(0xb1), true - case "plussim": - // PLUS SIGN WITH TILDE BELOW - return rune(0x2a26), true - case "plustrif": - // PLUS SIGN WITH BLACK TRIANGLE - return rune(0x2a28), true - case "plustwo": - // PLUS SIGN WITH SUBSCRIPT TWO - return rune(0x2a27), true - case "plus": - // PLUS SIGN + case "plus": // PLUS SIGN return rune(0x2b), true - case "pm": - // PLUS-MINUS SIGN + case "plusacir": // PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE + return rune(0x2a23), true + case "plusb": // SQUARED PLUS + return rune(0x229e), true + case "pluscir": // PLUS SIGN WITH SMALL CIRCLE ABOVE + return rune(0x2a22), true + case "plusdo": // DOT PLUS + return rune(0x2214), true + case "plusdu": // PLUS SIGN WITH DOT BELOW + return rune(0x2a25), true + case "pluse": // PLUS SIGN ABOVE EQUALS SIGN + return rune(0x2a72), true + case "plusmn": // PLUS-MINUS SIGN return rune(0xb1), true - case "pointint": - // INTEGRAL AROUND A POINT OPERATOR + case "plussim": // PLUS SIGN WITH TILDE BELOW + return rune(0x2a26), true + case "plustrif": // PLUS SIGN WITH BLACK TRIANGLE + return rune(0x2a28), true + case "plustwo": // PLUS SIGN WITH SUBSCRIPT TWO + return rune(0x2a27), true + case "pm": // PLUS-MINUS SIGN + return rune(0xb1), true + case "pointint": // INTEGRAL AROUND A POINT OPERATOR return rune(0x2a15), true - case "popf": - // MATHEMATICAL DOUBLE-STRUCK SMALL P + case "popf": // MATHEMATICAL DOUBLE-STRUCK SMALL P return rune(0x01d561), true - case "pound": - // POUND SIGN + case "pound": // POUND SIGN return rune(0xa3), true - case "prod": - // N-ARY PRODUCT - return rune(0x220f), true - case "prop": - // PROPORTIONAL TO - return rune(0x221d), true - case "propto": - // PROPORTIONAL TO - return rune(0x221d), true - case "pr": - // PRECEDES + case "pr": // PRECEDES return rune(0x227a), true - case "prE": - // PRECEDES ABOVE EQUALS SIGN + case "prE": // PRECEDES ABOVE EQUALS SIGN return rune(0x2ab3), true - case "prap": - // PRECEDES ABOVE ALMOST EQUAL TO + case "prap": // PRECEDES ABOVE ALMOST EQUAL TO return rune(0x2ab7), true - case "prcue": - // PRECEDES OR EQUAL TO + case "prcue": // PRECEDES OR EQUAL TO return rune(0x227c), true - case "prec": - // PRECEDES + case "pre": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + return rune(0x2aaf), true + case "prec": // PRECEDES return rune(0x227a), true - case "preccurlyeq": - // PRECEDES OR EQUAL TO - return rune(0x227c), true - case "precnsim": - // PRECEDES BUT NOT EQUIVALENT TO - return rune(0x22e8), true - case "precsim": - // PRECEDES OR EQUIVALENT TO - return rune(0x227e), true - case "pre": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN - return rune(0x2aaf), true - case "precapprox": - // PRECEDES ABOVE ALMOST EQUAL TO + case "precapprox": // PRECEDES ABOVE ALMOST EQUAL TO return rune(0x2ab7), true - case "preceq": - // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN + case "preccurlyeq": // PRECEDES OR EQUAL TO + return rune(0x227c), true + case "preceq": // PRECEDES ABOVE SINGLE-LINE EQUALS SIGN return rune(0x2aaf), true - case "precnapprox": - // PRECEDES ABOVE NOT ALMOST EQUAL TO + case "precnapprox": // PRECEDES ABOVE NOT ALMOST EQUAL TO return rune(0x2ab9), true - case "precneqq": - // PRECEDES ABOVE NOT EQUAL TO + case "precneqq": // PRECEDES ABOVE NOT EQUAL TO return rune(0x2ab5), true - case "primes": - // DOUBLE-STRUCK CAPITAL P - return rune(0x2119), true - case "prime": - // PRIME - return rune(0x2032), true - case "prnE": - // PRECEDES ABOVE NOT EQUAL TO - return rune(0x2ab5), true - case "prnap": - // PRECEDES ABOVE NOT ALMOST EQUAL TO - return rune(0x2ab9), true - case "prnsim": - // PRECEDES BUT NOT EQUIVALENT TO + case "precnsim": // PRECEDES BUT NOT EQUIVALENT TO return rune(0x22e8), true - case "profalar": - // ALL AROUND-PROFILE - return rune(0x232e), true - case "profline": - // ARC - return rune(0x2312), true - case "profsurf": - // SEGMENT - return rune(0x2313), true - case "prsim": - // PRECEDES OR EQUIVALENT TO + case "precsim": // PRECEDES OR EQUIVALENT TO return rune(0x227e), true - case "prurel": - // PRECEDES UNDER RELATION + case "prime": // PRIME + return rune(0x2032), true + case "primes": // DOUBLE-STRUCK CAPITAL P + return rune(0x2119), true + case "prnE": // PRECEDES ABOVE NOT EQUAL TO + return rune(0x2ab5), true + case "prnap": // PRECEDES ABOVE NOT ALMOST EQUAL TO + return rune(0x2ab9), true + case "prnsim": // PRECEDES BUT NOT EQUIVALENT TO + return rune(0x22e8), true + case "prod": // N-ARY PRODUCT + return rune(0x220f), true + case "profalar": // ALL AROUND-PROFILE + return rune(0x232e), true + case "profline": // ARC + return rune(0x2312), true + case "profsurf": // SEGMENT + return rune(0x2313), true + case "prop": // PROPORTIONAL TO + return rune(0x221d), true + case "propto": // PROPORTIONAL TO + return rune(0x221d), true + case "prsim": // PRECEDES OR EQUIVALENT TO + return rune(0x227e), true + case "prurel": // PRECEDES UNDER RELATION return rune(0x22b0), true - case "pscr": - // MATHEMATICAL SCRIPT SMALL P + case "pscr": // MATHEMATICAL SCRIPT SMALL P return rune(0x01d4c5), true - case "psgr": - // GREEK SMALL LETTER PSI + case "psgr": // GREEK SMALL LETTER PSI return rune(0x03c8), true - case "psi": - // GREEK SMALL LETTER PSI + case "psi": // GREEK SMALL LETTER PSI return rune(0x03c8), true - case "puncsp": - // PUNCTUATION SPACE + case "puncsp": // PUNCTUATION SPACE return rune(0x2008), true } case 'q': switch name { - case "qfr": - // MATHEMATICAL FRAKTUR SMALL Q + case "qfr": // MATHEMATICAL FRAKTUR SMALL Q return rune(0x01d52e), true - case "qint": - // QUADRUPLE INTEGRAL OPERATOR + case "qint": // QUADRUPLE INTEGRAL OPERATOR return rune(0x2a0c), true - case "qopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL Q + case "qopf": // MATHEMATICAL DOUBLE-STRUCK SMALL Q return rune(0x01d562), true - case "qprime": - // QUADRUPLE PRIME + case "qprime": // QUADRUPLE PRIME return rune(0x2057), true - case "qscr": - // MATHEMATICAL SCRIPT SMALL Q + case "qscr": // MATHEMATICAL SCRIPT SMALL Q return rune(0x01d4c6), true - case "quaternions": - // DOUBLE-STRUCK CAPITAL H + case "quaternions": // DOUBLE-STRUCK CAPITAL H return rune(0x210d), true - case "quatint": - // QUATERNION INTEGRAL OPERATOR + case "quatint": // QUATERNION INTEGRAL OPERATOR return rune(0x2a16), true - case "questeq": - // QUESTIONED EQUAL TO - return rune(0x225f), true - case "quest": - // QUESTION MARK + case "quest": // QUESTION MARK return rune(0x3f), true - case "quot": - // QUOTATION MARK + case "questeq": // QUESTIONED EQUAL TO + return rune(0x225f), true + case "quot": // QUOTATION MARK return rune(0x22), true } case 'r': switch name { - case "rAarr": - // RIGHTWARDS TRIPLE ARROW + case "rAarr": // RIGHTWARDS TRIPLE ARROW return rune(0x21db), true - case "rArr": - // RIGHTWARDS DOUBLE ARROW + case "rArr": // RIGHTWARDS DOUBLE ARROW return rune(0x21d2), true - case "rAtail": - // RIGHTWARDS DOUBLE ARROW-TAIL + case "rAtail": // RIGHTWARDS DOUBLE ARROW-TAIL return rune(0x291c), true - case "rBarr": - // RIGHTWARDS TRIPLE DASH ARROW + case "rBarr": // RIGHTWARDS TRIPLE DASH ARROW return rune(0x290f), true - case "rHar": - // RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN + case "rHar": // RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN return rune(0x2964), true - case "race": - // REVERSED TILDE with underline + case "race": // REVERSED TILDE with underline return rune(0x223d), true - case "racute": - // LATIN SMALL LETTER R WITH ACUTE + case "racute": // LATIN SMALL LETTER R WITH ACUTE return rune(0x0155), true - case "radic": - // SQUARE ROOT + case "radic": // SQUARE ROOT return rune(0x221a), true - case "raemptyv": - // EMPTY SET WITH RIGHT ARROW ABOVE + case "raemptyv": // EMPTY SET WITH RIGHT ARROW ABOVE return rune(0x29b3), true - case "rang": - // MATHEMATICAL RIGHT ANGLE BRACKET + case "rang": // MATHEMATICAL RIGHT ANGLE BRACKET return rune(0x27e9), true - case "rangd": - // RIGHT ANGLE BRACKET WITH DOT + case "rangd": // RIGHT ANGLE BRACKET WITH DOT return rune(0x2992), true - case "range": - // REVERSED ANGLE WITH UNDERBAR + case "range": // REVERSED ANGLE WITH UNDERBAR return rune(0x29a5), true - case "rangle": - // MATHEMATICAL RIGHT ANGLE BRACKET + case "rangle": // MATHEMATICAL RIGHT ANGLE BRACKET return rune(0x27e9), true - case "raquo": - // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + case "raquo": // RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK return rune(0xbb), true - case "rarr2": - // RIGHTWARDS PAIRED ARROWS + case "rarr": // RIGHTWARDS ARROW + return rune(0x2192), true + case "rarr2": // RIGHTWARDS PAIRED ARROWS return rune(0x21c9), true - case "rarr3": - // THREE RIGHTWARDS ARROWS + case "rarr3": // THREE RIGHTWARDS ARROWS return rune(0x21f6), true - case "rarrb": - // RIGHTWARDS ARROW TO BAR - return rune(0x21e5), true - case "rarrhk": - // RIGHTWARDS ARROW WITH HOOK - return rune(0x21aa), true - case "rarrlp": - // RIGHTWARDS ARROW WITH LOOP - return rune(0x21ac), true - case "rarrtl": - // RIGHTWARDS ARROW WITH TAIL - return rune(0x21a3), true - case "rarrw": - // RIGHTWARDS WAVE ARROW - return rune(0x219d), true - case "rarr": - // RIGHTWARDS ARROW - return rune(0x2192), true - case "rarrap": - // RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO + case "rarrap": // RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO return rune(0x2975), true - case "rarrbfs": - // RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND + case "rarrb": // RIGHTWARDS ARROW TO BAR + return rune(0x21e5), true + case "rarrbfs": // RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND return rune(0x2920), true - case "rarrc": - // WAVE ARROW POINTING DIRECTLY RIGHT + case "rarrc": // WAVE ARROW POINTING DIRECTLY RIGHT return rune(0x2933), true - case "rarrfs": - // RIGHTWARDS ARROW TO BLACK DIAMOND + case "rarrfs": // RIGHTWARDS ARROW TO BLACK DIAMOND return rune(0x291e), true - case "rarrpl": - // RIGHTWARDS ARROW WITH PLUS BELOW + case "rarrhk": // RIGHTWARDS ARROW WITH HOOK + return rune(0x21aa), true + case "rarrlp": // RIGHTWARDS ARROW WITH LOOP + return rune(0x21ac), true + case "rarrpl": // RIGHTWARDS ARROW WITH PLUS BELOW return rune(0x2945), true - case "rarrsim": - // RIGHTWARDS ARROW ABOVE TILDE OPERATOR + case "rarrsim": // RIGHTWARDS ARROW ABOVE TILDE OPERATOR return rune(0x2974), true - case "rarrx": - // RIGHTWARDS ARROW THROUGH X - return rune(0x2947), true - case "ratail": - // RIGHTWARDS ARROW-TAIL - return rune(0x291a), true - case "ratio": - // RATIO - return rune(0x2236), true - case "rationals": - // DOUBLE-STRUCK CAPITAL Q - return rune(0x211a), true - case "rbarr": - // RIGHTWARDS DOUBLE DASH ARROW - return rune(0x290d), true - case "rbbrk": - // LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT - return rune(0x2773), true - case "rbrace": - // RIGHT CURLY BRACKET - return rune(0x7d), true - case "rbrack": - // RIGHT SQUARE BRACKET - return rune(0x5d), true - case "rbrke": - // RIGHT SQUARE BRACKET WITH UNDERBAR - return rune(0x298c), true - case "rbrksld": - // RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER - return rune(0x298e), true - case "rbrkslu": - // RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER - return rune(0x2990), true - case "rcaron": - // LATIN SMALL LETTER R WITH CARON - return rune(0x0159), true - case "rcedil": - // LATIN SMALL LETTER R WITH CEDILLA - return rune(0x0157), true - case "rceil": - // RIGHT CEILING - return rune(0x2309), true - case "rcub": - // RIGHT CURLY BRACKET - return rune(0x7d), true - case "rcy": - // CYRILLIC SMALL LETTER ER - return rune(0x0440), true - case "rdca": - // ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS - return rune(0x2937), true - case "rdharb": - // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR - return rune(0x2957), true - case "rdiag": - // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT - return rune(0x2571), true - case "rdiofdi": - // RISING DIAGONAL CROSSING FALLING DIAGONAL - return rune(0x292b), true - case "rdldhar": - // RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN - return rune(0x2969), true - case "rdosearr": - // RISING DIAGONAL CROSSING SOUTH EAST ARROW - return rune(0x2930), true - case "rdquor": - // RIGHT DOUBLE QUOTATION MARK - return rune(0x201d), true - case "rdquo": - // RIGHT DOUBLE QUOTATION MARK - return rune(0x201d), true - case "rdsh": - // DOWNWARDS ARROW WITH TIP RIGHTWARDS - return rune(0x21b3), true - case "realpart": - // BLACK-LETTER CAPITAL R - return rune(0x211c), true - case "reals": - // DOUBLE-STRUCK CAPITAL R - return rune(0x211d), true - case "real": - // BLACK-LETTER CAPITAL R - return rune(0x211c), true - case "realine": - // SCRIPT CAPITAL R - return rune(0x211b), true - case "rect": - // WHITE RECTANGLE - return rune(0x25ad), true - case "reg": - // REGISTERED SIGN - return rune(0xae), true - case "rfbowtie": - // BOWTIE WITH RIGHT HALF BLACK - return rune(0x29d2), true - case "rfisht": - // RIGHT FISH TAIL - return rune(0x297d), true - case "rfloor": - // RIGHT FLOOR - return rune(0x230b), true - case "rfr": - // MATHEMATICAL FRAKTUR SMALL R - return rune(0x01d52f), true - case "rftimes": - // TIMES WITH RIGHT HALF BLACK - return rune(0x29d5), true - case "rgr": - // GREEK SMALL LETTER RHO - return rune(0x03c1), true - case "rhard": - // RIGHTWARDS HARPOON WITH BARB DOWNWARDS - return rune(0x21c1), true - case "rharu": - // RIGHTWARDS HARPOON WITH BARB UPWARDS - return rune(0x21c0), true - case "rharul": - // RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH - return rune(0x296c), true - case "rhov": - // GREEK RHO SYMBOL - return rune(0x03f1), true - case "rho": - // GREEK SMALL LETTER RHO - return rune(0x03c1), true - case "rightarrowtail": - // RIGHTWARDS ARROW WITH TAIL + case "rarrtl": // RIGHTWARDS ARROW WITH TAIL return rune(0x21a3), true - case "rightarrow": - // RIGHTWARDS ARROW - return rune(0x2192), true - case "rightharpoondown": - // RIGHTWARDS HARPOON WITH BARB DOWNWARDS - return rune(0x21c1), true - case "rightharpoonup": - // RIGHTWARDS HARPOON WITH BARB UPWARDS - return rune(0x21c0), true - case "rightleftarrows": - // RIGHTWARDS ARROW OVER LEFTWARDS ARROW - return rune(0x21c4), true - case "rightleftharpoons": - // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - return rune(0x21cc), true - case "rightrightarrows": - // RIGHTWARDS PAIRED ARROWS - return rune(0x21c9), true - case "rightsquigarrow": - // RIGHTWARDS WAVE ARROW + case "rarrw": // RIGHTWARDS WAVE ARROW return rune(0x219d), true - case "rightthreetimes": - // RIGHT SEMIDIRECT PRODUCT - return rune(0x22cc), true - case "rimply": - // RIGHT DOUBLE ARROW WITH ROUNDED HEAD - return rune(0x2970), true - case "ring": - // RING ABOVE - return rune(0x02da), true - case "risingdotseq": - // IMAGE OF OR APPROXIMATELY EQUAL TO - return rune(0x2253), true - case "rlarr2": - // RIGHTWARDS ARROW OVER LEFTWARDS ARROW - return rune(0x21c4), true - case "rlarr": - // RIGHTWARDS ARROW OVER LEFTWARDS ARROW - return rune(0x21c4), true - case "rlhar": - // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - return rune(0x21cc), true - case "rlhar2": - // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON - return rune(0x21cc), true - case "rlm": - // RIGHT-TO-LEFT MARK - return rune(0x200f), true - case "rmoust": - // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION - return rune(0x23b1), true - case "rmoustache": - // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION - return rune(0x23b1), true - case "rnmid": - // DOES NOT DIVIDE WITH REVERSED NEGATION SLASH - return rune(0x2aee), true - case "roang": - // MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET - return rune(0x27ed), true - case "roarr": - // RIGHTWARDS OPEN-HEADED ARROW - return rune(0x21fe), true - case "robrk": - // MATHEMATICAL RIGHT WHITE SQUARE BRACKET - return rune(0x27e7), true - case "rocub": - // RIGHT WHITE CURLY BRACKET - return rune(0x2984), true - case "ropar": - // RIGHT WHITE PARENTHESIS - return rune(0x2986), true - case "ropf": - // MATHEMATICAL DOUBLE-STRUCK SMALL R - return rune(0x01d563), true - case "roplus": - // PLUS SIGN IN RIGHT HALF CIRCLE - return rune(0x2a2e), true - case "rotimes": - // MULTIPLICATION SIGN IN RIGHT HALF CIRCLE - return rune(0x2a35), true - case "rpargt": - // RIGHT ARC GREATER-THAN BRACKET - return rune(0x2994), true - case "rpar": - // RIGHT PARENTHESIS - return rune(0x29), true - case "rppolint": - // LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE - return rune(0x2a12), true - case "rrarr": - // RIGHTWARDS PAIRED ARROWS - return rune(0x21c9), true - case "rsaquo": - // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - return rune(0x203a), true - case "rscr": - // MATHEMATICAL SCRIPT SMALL R - return rune(0x01d4c7), true - case "rsh": - // UPWARDS ARROW WITH TIP RIGHTWARDS - return rune(0x21b1), true - case "rsolbar": - // REVERSE SOLIDUS WITH HORIZONTAL STROKE - return rune(0x29f7), true - case "rsqb": - // RIGHT SQUARE BRACKET + case "rarrx": // RIGHTWARDS ARROW THROUGH X + return rune(0x2947), true + case "ratail": // RIGHTWARDS ARROW-TAIL + return rune(0x291a), true + case "ratio": // RATIO + return rune(0x2236), true + case "rationals": // DOUBLE-STRUCK CAPITAL Q + return rune(0x211a), true + case "rbarr": // RIGHTWARDS DOUBLE DASH ARROW + return rune(0x290d), true + case "rbbrk": // LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT + return rune(0x2773), true + case "rbrace": // RIGHT CURLY BRACKET + return rune(0x7d), true + case "rbrack": // RIGHT SQUARE BRACKET return rune(0x5d), true - case "rsquor": - // RIGHT SINGLE QUOTATION MARK - return rune(0x2019), true - case "rsquo": - // RIGHT SINGLE QUOTATION MARK - return rune(0x2019), true - case "rthree": - // RIGHT SEMIDIRECT PRODUCT + case "rbrke": // RIGHT SQUARE BRACKET WITH UNDERBAR + return rune(0x298c), true + case "rbrksld": // RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER + return rune(0x298e), true + case "rbrkslu": // RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER + return rune(0x2990), true + case "rcaron": // LATIN SMALL LETTER R WITH CARON + return rune(0x0159), true + case "rcedil": // LATIN SMALL LETTER R WITH CEDILLA + return rune(0x0157), true + case "rceil": // RIGHT CEILING + return rune(0x2309), true + case "rcub": // RIGHT CURLY BRACKET + return rune(0x7d), true + case "rcy": // CYRILLIC SMALL LETTER ER + return rune(0x0440), true + case "rdca": // ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS + return rune(0x2937), true + case "rdharb": // RIGHTWARDS HARPOON WITH BARB DOWN TO BAR + return rune(0x2957), true + case "rdiag": // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + return rune(0x2571), true + case "rdiofdi": // RISING DIAGONAL CROSSING FALLING DIAGONAL + return rune(0x292b), true + case "rdldhar": // RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN + return rune(0x2969), true + case "rdosearr": // RISING DIAGONAL CROSSING SOUTH EAST ARROW + return rune(0x2930), true + case "rdquo": // RIGHT DOUBLE QUOTATION MARK + return rune(0x201d), true + case "rdquor": // RIGHT DOUBLE QUOTATION MARK + return rune(0x201d), true + case "rdsh": // DOWNWARDS ARROW WITH TIP RIGHTWARDS + return rune(0x21b3), true + case "real": // BLACK-LETTER CAPITAL R + return rune(0x211c), true + case "realine": // SCRIPT CAPITAL R + return rune(0x211b), true + case "realpart": // BLACK-LETTER CAPITAL R + return rune(0x211c), true + case "reals": // DOUBLE-STRUCK CAPITAL R + return rune(0x211d), true + case "rect": // WHITE RECTANGLE + return rune(0x25ad), true + case "reg": // REGISTERED SIGN + return rune(0xae), true + case "rfbowtie": // BOWTIE WITH RIGHT HALF BLACK + return rune(0x29d2), true + case "rfisht": // RIGHT FISH TAIL + return rune(0x297d), true + case "rfloor": // RIGHT FLOOR + return rune(0x230b), true + case "rfr": // MATHEMATICAL FRAKTUR SMALL R + return rune(0x01d52f), true + case "rftimes": // TIMES WITH RIGHT HALF BLACK + return rune(0x29d5), true + case "rgr": // GREEK SMALL LETTER RHO + return rune(0x03c1), true + case "rhard": // RIGHTWARDS HARPOON WITH BARB DOWNWARDS + return rune(0x21c1), true + case "rharu": // RIGHTWARDS HARPOON WITH BARB UPWARDS + return rune(0x21c0), true + case "rharul": // RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH + return rune(0x296c), true + case "rho": // GREEK SMALL LETTER RHO + return rune(0x03c1), true + case "rhov": // GREEK RHO SYMBOL + return rune(0x03f1), true + case "rightarrow": // RIGHTWARDS ARROW + return rune(0x2192), true + case "rightarrowtail": // RIGHTWARDS ARROW WITH TAIL + return rune(0x21a3), true + case "rightharpoondown": // RIGHTWARDS HARPOON WITH BARB DOWNWARDS + return rune(0x21c1), true + case "rightharpoonup": // RIGHTWARDS HARPOON WITH BARB UPWARDS + return rune(0x21c0), true + case "rightleftarrows": // RIGHTWARDS ARROW OVER LEFTWARDS ARROW + return rune(0x21c4), true + case "rightleftharpoons": // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + return rune(0x21cc), true + case "rightrightarrows": // RIGHTWARDS PAIRED ARROWS + return rune(0x21c9), true + case "rightsquigarrow": // RIGHTWARDS WAVE ARROW + return rune(0x219d), true + case "rightthreetimes": // RIGHT SEMIDIRECT PRODUCT return rune(0x22cc), true - case "rtimes": - // RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT + case "rimply": // RIGHT DOUBLE ARROW WITH ROUNDED HEAD + return rune(0x2970), true + case "ring": // RING ABOVE + return rune(0x02da), true + case "risingdotseq": // IMAGE OF OR APPROXIMATELY EQUAL TO + return rune(0x2253), true + case "rlarr": // RIGHTWARDS ARROW OVER LEFTWARDS ARROW + return rune(0x21c4), true + case "rlarr2": // RIGHTWARDS ARROW OVER LEFTWARDS ARROW + return rune(0x21c4), true + case "rlhar": // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + return rune(0x21cc), true + case "rlhar2": // RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON + return rune(0x21cc), true + case "rlm": // RIGHT-TO-LEFT MARK + return rune(0x200f), true + case "rmoust": // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION + return rune(0x23b1), true + case "rmoustache": // UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION + return rune(0x23b1), true + case "rnmid": // DOES NOT DIVIDE WITH REVERSED NEGATION SLASH + return rune(0x2aee), true + case "roang": // MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET + return rune(0x27ed), true + case "roarr": // RIGHTWARDS OPEN-HEADED ARROW + return rune(0x21fe), true + case "robrk": // MATHEMATICAL RIGHT WHITE SQUARE BRACKET + return rune(0x27e7), true + case "rocub": // RIGHT WHITE CURLY BRACKET + return rune(0x2984), true + case "ropar": // RIGHT WHITE PARENTHESIS + return rune(0x2986), true + case "ropf": // MATHEMATICAL DOUBLE-STRUCK SMALL R + return rune(0x01d563), true + case "roplus": // PLUS SIGN IN RIGHT HALF CIRCLE + return rune(0x2a2e), true + case "rotimes": // MULTIPLICATION SIGN IN RIGHT HALF CIRCLE + return rune(0x2a35), true + case "rpar": // RIGHT PARENTHESIS + return rune(0x29), true + case "rpargt": // RIGHT ARC GREATER-THAN BRACKET + return rune(0x2994), true + case "rppolint": // LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE + return rune(0x2a12), true + case "rrarr": // RIGHTWARDS PAIRED ARROWS + return rune(0x21c9), true + case "rsaquo": // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + return rune(0x203a), true + case "rscr": // MATHEMATICAL SCRIPT SMALL R + return rune(0x01d4c7), true + case "rsh": // UPWARDS ARROW WITH TIP RIGHTWARDS + return rune(0x21b1), true + case "rsolbar": // REVERSE SOLIDUS WITH HORIZONTAL STROKE + return rune(0x29f7), true + case "rsqb": // RIGHT SQUARE BRACKET + return rune(0x5d), true + case "rsquo": // RIGHT SINGLE QUOTATION MARK + return rune(0x2019), true + case "rsquor": // RIGHT SINGLE QUOTATION MARK + return rune(0x2019), true + case "rthree": // RIGHT SEMIDIRECT PRODUCT + return rune(0x22cc), true + case "rtimes": // RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT return rune(0x22ca), true - case "rtrie": - // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO - return rune(0x22b5), true - case "rtrif": - // BLACK RIGHT-POINTING SMALL TRIANGLE - return rune(0x25b8), true - case "rtri": - // WHITE RIGHT-POINTING SMALL TRIANGLE + case "rtri": // WHITE RIGHT-POINTING SMALL TRIANGLE return rune(0x25b9), true - case "rtriltri": - // RIGHT TRIANGLE ABOVE LEFT TRIANGLE + case "rtrie": // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO + return rune(0x22b5), true + case "rtrif": // BLACK RIGHT-POINTING SMALL TRIANGLE + return rune(0x25b8), true + case "rtriltri": // RIGHT TRIANGLE ABOVE LEFT TRIANGLE return rune(0x29ce), true - case "ruharb": - // RIGHTWARDS HARPOON WITH BARB UP TO BAR + case "ruharb": // RIGHTWARDS HARPOON WITH BARB UP TO BAR return rune(0x2953), true - case "ruluhar": - // RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP + case "ruluhar": // RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP return rune(0x2968), true - case "rx": - // PRESCRIPTION TAKE + case "rx": // PRESCRIPTION TAKE return rune(0x211e), true } case 's': switch name { - case "sacute": - // LATIN SMALL LETTER S WITH ACUTE + case "sacute": // LATIN SMALL LETTER S WITH ACUTE return rune(0x015b), true - case "samalg": - // N-ARY COPRODUCT + case "samalg": // N-ARY COPRODUCT return rune(0x2210), true - case "sampi": - // GREEK LETTER SAMPI + case "sampi": // GREEK LETTER SAMPI return rune(0x03e0), true - case "sbquo": - // SINGLE LOW-9 QUOTATION MARK + case "sbquo": // SINGLE LOW-9 QUOTATION MARK return rune(0x201a), true - case "sbsol": - // SMALL REVERSE SOLIDUS + case "sbsol": // SMALL REVERSE SOLIDUS return rune(0xfe68), true - case "sc": - // SUCCEEDS + case "sc": // SUCCEEDS return rune(0x227b), true - case "scE": - // SUCCEEDS ABOVE EQUALS SIGN + case "scE": // SUCCEEDS ABOVE EQUALS SIGN return rune(0x2ab4), true - case "scap": - // SUCCEEDS ABOVE ALMOST EQUAL TO + case "scap": // SUCCEEDS ABOVE ALMOST EQUAL TO return rune(0x2ab8), true - case "scaron": - // LATIN SMALL LETTER S WITH CARON + case "scaron": // LATIN SMALL LETTER S WITH CARON return rune(0x0161), true - case "sccue": - // SUCCEEDS OR EQUAL TO + case "sccue": // SUCCEEDS OR EQUAL TO return rune(0x227d), true - case "scedil": - // LATIN SMALL LETTER S WITH CEDILLA + case "sce": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + return rune(0x2ab0), true + case "scedil": // LATIN SMALL LETTER S WITH CEDILLA return rune(0x015f), true - case "sce": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN - return rune(0x2ab0), true - case "scirc": - // LATIN SMALL LETTER S WITH CIRCUMFLEX + case "scirc": // LATIN SMALL LETTER S WITH CIRCUMFLEX return rune(0x015d), true - case "scnE": - // SUCCEEDS ABOVE NOT EQUAL TO + case "scnE": // SUCCEEDS ABOVE NOT EQUAL TO return rune(0x2ab6), true - case "scnap": - // SUCCEEDS ABOVE NOT ALMOST EQUAL TO + case "scnap": // SUCCEEDS ABOVE NOT ALMOST EQUAL TO return rune(0x2aba), true - case "scnsim": - // SUCCEEDS BUT NOT EQUIVALENT TO + case "scnsim": // SUCCEEDS BUT NOT EQUIVALENT TO return rune(0x22e9), true - case "scpolint": - // LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE + case "scpolint": // LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE return rune(0x2a13), true - case "scsim": - // SUCCEEDS OR EQUIVALENT TO + case "scsim": // SUCCEEDS OR EQUIVALENT TO return rune(0x227f), true - case "scy": - // CYRILLIC SMALL LETTER ES + case "scy": // CYRILLIC SMALL LETTER ES return rune(0x0441), true - case "sdotb": - // SQUARED DOT OPERATOR - return rune(0x22a1), true - case "sdot": - // DOT OPERATOR + case "sdot": // DOT OPERATOR return rune(0x22c5), true - case "sdote": - // EQUALS SIGN WITH DOT BELOW + case "sdotb": // SQUARED DOT OPERATOR + return rune(0x22a1), true + case "sdote": // EQUALS SIGN WITH DOT BELOW return rune(0x2a66), true - case "seArr": - // SOUTH EAST DOUBLE ARROW + case "seArr": // SOUTH EAST DOUBLE ARROW return rune(0x21d8), true - case "searhk": - // SOUTH EAST ARROW WITH HOOK + case "searhk": // SOUTH EAST ARROW WITH HOOK return rune(0x2925), true - case "searrow": - // SOUTH EAST ARROW + case "searr": // SOUTH EAST ARROW return rune(0x2198), true - case "searr": - // SOUTH EAST ARROW + case "searrow": // SOUTH EAST ARROW return rune(0x2198), true - case "sect": - // SECTION SIGN + case "sect": // SECTION SIGN return rune(0xa7), true - case "semi": - // SEMICOLON + case "semi": // SEMICOLON return rune(0x3b), true - case "seonearr": - // SOUTH EAST ARROW CROSSING NORTH EAST ARROW + case "seonearr": // SOUTH EAST ARROW CROSSING NORTH EAST ARROW return rune(0x292d), true - case "seswar": - // SOUTH EAST ARROW AND SOUTH WEST ARROW + case "seswar": // SOUTH EAST ARROW AND SOUTH WEST ARROW return rune(0x2929), true - case "setminus": - // SET MINUS + case "setminus": // SET MINUS return rune(0x2216), true - case "setmn": - // SET MINUS + case "setmn": // SET MINUS return rune(0x2216), true - case "sext": - // SIX POINTED BLACK STAR + case "sext": // SIX POINTED BLACK STAR return rune(0x2736), true - case "sfgr": - // GREEK SMALL LETTER FINAL SIGMA + case "sfgr": // GREEK SMALL LETTER FINAL SIGMA return rune(0x03c2), true - case "sfrown": - // FROWN - return rune(0x2322), true - case "sfr": - // MATHEMATICAL FRAKTUR SMALL S + case "sfr": // MATHEMATICAL FRAKTUR SMALL S return rune(0x01d530), true - case "sgr": - // GREEK SMALL LETTER SIGMA + case "sfrown": // FROWN + return rune(0x2322), true + case "sgr": // GREEK SMALL LETTER SIGMA return rune(0x03c3), true - case "sharp": - // MUSIC SHARP SIGN + case "sharp": // MUSIC SHARP SIGN return rune(0x266f), true - case "shchcy": - // CYRILLIC SMALL LETTER SHCHA + case "shchcy": // CYRILLIC SMALL LETTER SHCHA return rune(0x0449), true - case "shcy": - // CYRILLIC SMALL LETTER SHA + case "shcy": // CYRILLIC SMALL LETTER SHA return rune(0x0448), true - case "shortmid": - // DIVIDES + case "shortmid": // DIVIDES return rune(0x2223), true - case "shortparallel": - // PARALLEL TO + case "shortparallel": // PARALLEL TO return rune(0x2225), true - case "shuffle": - // SHUFFLE PRODUCT + case "shuffle": // SHUFFLE PRODUCT return rune(0x29e2), true - case "shy": - // SOFT HYPHEN + case "shy": // SOFT HYPHEN return rune(0xad), true - case "sigma": - // GREEK SMALL LETTER SIGMA + case "sigma": // GREEK SMALL LETTER SIGMA return rune(0x03c3), true - case "sigmaf": - // GREEK SMALL LETTER FINAL SIGMA + case "sigmaf": // GREEK SMALL LETTER FINAL SIGMA return rune(0x03c2), true - case "sigmav": - // GREEK SMALL LETTER FINAL SIGMA + case "sigmav": // GREEK SMALL LETTER FINAL SIGMA return rune(0x03c2), true - case "sim": - // TILDE OPERATOR + case "sim": // TILDE OPERATOR return rune(0x223c), true - case "simdot": - // TILDE OPERATOR WITH DOT ABOVE + case "simdot": // TILDE OPERATOR WITH DOT ABOVE return rune(0x2a6a), true - case "sime": - // ASYMPTOTICALLY EQUAL TO + case "sime": // ASYMPTOTICALLY EQUAL TO return rune(0x2243), true - case "simeq": - // ASYMPTOTICALLY EQUAL TO + case "simeq": // ASYMPTOTICALLY EQUAL TO return rune(0x2243), true - case "simg": - // SIMILAR OR GREATER-THAN + case "simg": // SIMILAR OR GREATER-THAN return rune(0x2a9e), true - case "simgE": - // SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN + case "simgE": // SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN return rune(0x2aa0), true - case "siml": - // SIMILAR OR LESS-THAN + case "siml": // SIMILAR OR LESS-THAN return rune(0x2a9d), true - case "simlE": - // SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN + case "simlE": // SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN return rune(0x2a9f), true - case "simne": - // APPROXIMATELY BUT NOT ACTUALLY EQUAL TO + case "simne": // APPROXIMATELY BUT NOT ACTUALLY EQUAL TO return rune(0x2246), true - case "simplus": - // PLUS SIGN WITH TILDE ABOVE + case "simplus": // PLUS SIGN WITH TILDE ABOVE return rune(0x2a24), true - case "simrarr": - // TILDE OPERATOR ABOVE RIGHTWARDS ARROW + case "simrarr": // TILDE OPERATOR ABOVE RIGHTWARDS ARROW return rune(0x2972), true - case "slarr": - // LEFTWARDS ARROW + case "slarr": // LEFTWARDS ARROW return rune(0x2190), true - case "slint": - // INTEGRAL AVERAGE WITH SLASH + case "slint": // INTEGRAL AVERAGE WITH SLASH return rune(0x2a0f), true - case "smallsetminus": - // SET MINUS + case "smallsetminus": // SET MINUS return rune(0x2216), true - case "smashp": - // SMASH PRODUCT + case "smashp": // SMASH PRODUCT return rune(0x2a33), true - case "smeparsl": - // EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE + case "smeparsl": // EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE return rune(0x29e4), true - case "smid": - // DIVIDES + case "smid": // DIVIDES return rune(0x2223), true - case "smile": - // SMILE + case "smile": // SMILE return rune(0x2323), true - case "smt": - // SMALLER THAN + case "smt": // SMALLER THAN return rune(0x2aaa), true - case "smte": - // SMALLER THAN OR EQUAL TO + case "smte": // SMALLER THAN OR EQUAL TO return rune(0x2aac), true - case "smtes": - // SMALLER THAN OR slanted EQUAL + case "smtes": // SMALLER THAN OR slanted EQUAL return rune(0x2aac), true - case "softcy": - // CYRILLIC SMALL LETTER SOFT SIGN + case "softcy": // CYRILLIC SMALL LETTER SOFT SIGN return rune(0x044c), true - case "solbar": - // APL FUNCTIONAL SYMBOL SLASH BAR - return rune(0x233f), true - case "solb": - // SQUARED RISING DIAGONAL SLASH - return rune(0x29c4), true - case "sol": - // SOLIDUS + case "sol": // SOLIDUS return rune(0x2f), true - case "sopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL S + case "solb": // SQUARED RISING DIAGONAL SLASH + return rune(0x29c4), true + case "solbar": // APL FUNCTIONAL SYMBOL SLASH BAR + return rune(0x233f), true + case "sopf": // MATHEMATICAL DOUBLE-STRUCK SMALL S return rune(0x01d564), true - case "spades": - // BLACK SPADE SUIT + case "spades": // BLACK SPADE SUIT return rune(0x2660), true - case "spadesuit": - // BLACK SPADE SUIT + case "spadesuit": // BLACK SPADE SUIT return rune(0x2660), true - case "spar": - // PARALLEL TO + case "spar": // PARALLEL TO return rune(0x2225), true - case "sqcap": - // SQUARE CAP + case "sqcap": // SQUARE CAP return rune(0x2293), true - case "sqcaps": - // SQUARE CAP with serifs + case "sqcaps": // SQUARE CAP with serifs return rune(0x2293), true - case "sqcup": - // SQUARE CUP + case "sqcup": // SQUARE CUP return rune(0x2294), true - case "sqcups": - // SQUARE CUP with serifs + case "sqcups": // SQUARE CUP with serifs return rune(0x2294), true - case "sqsub": - // SQUARE IMAGE OF + case "sqsub": // SQUARE IMAGE OF return rune(0x228f), true - case "sqsube": - // SQUARE IMAGE OF OR EQUAL TO + case "sqsube": // SQUARE IMAGE OF OR EQUAL TO return rune(0x2291), true - case "sqsubset": - // SQUARE IMAGE OF + case "sqsubset": // SQUARE IMAGE OF return rune(0x228f), true - case "sqsubseteq": - // SQUARE IMAGE OF OR EQUAL TO + case "sqsubseteq": // SQUARE IMAGE OF OR EQUAL TO return rune(0x2291), true - case "sqsup": - // SQUARE ORIGINAL OF + case "sqsup": // SQUARE ORIGINAL OF return rune(0x2290), true - case "sqsupe": - // SQUARE ORIGINAL OF OR EQUAL TO + case "sqsupe": // SQUARE ORIGINAL OF OR EQUAL TO return rune(0x2292), true - case "sqsupset": - // SQUARE ORIGINAL OF + case "sqsupset": // SQUARE ORIGINAL OF return rune(0x2290), true - case "sqsupseteq": - // SQUARE ORIGINAL OF OR EQUAL TO + case "sqsupseteq": // SQUARE ORIGINAL OF OR EQUAL TO return rune(0x2292), true - case "squ": - // WHITE SQUARE + case "squ": // WHITE SQUARE return rune(0x25a1), true - case "square": - // WHITE SQUARE + case "square": // WHITE SQUARE return rune(0x25a1), true - case "squarf": - // BLACK SMALL SQUARE + case "squarf": // BLACK SMALL SQUARE return rune(0x25aa), true - case "squb": - // SQUARED SQUARE + case "squb": // SQUARED SQUARE return rune(0x29c8), true - case "squerr": - // ERROR-BARRED WHITE SQUARE + case "squerr": // ERROR-BARRED WHITE SQUARE return rune(0x29ee), true - case "squf": - // BLACK SMALL SQUARE + case "squf": // BLACK SMALL SQUARE return rune(0x25aa), true - case "squferr": - // ERROR-BARRED BLACK SQUARE + case "squferr": // ERROR-BARRED BLACK SQUARE return rune(0x29ef), true - case "srarr": - // RIGHTWARDS ARROW + case "srarr": // RIGHTWARDS ARROW return rune(0x2192), true - case "sscr": - // MATHEMATICAL SCRIPT SMALL S + case "sscr": // MATHEMATICAL SCRIPT SMALL S return rune(0x01d4c8), true - case "ssetmn": - // SET MINUS + case "ssetmn": // SET MINUS return rune(0x2216), true - case "ssmile": - // SMILE + case "ssmile": // SMILE return rune(0x2323), true - case "sstarf": - // STAR OPERATOR + case "sstarf": // STAR OPERATOR return rune(0x22c6), true - case "starf": - // BLACK STAR - return rune(0x2605), true - case "star": - // WHITE STAR + case "star": // WHITE STAR return rune(0x2606), true - case "stigma": - // GREEK LETTER STIGMA + case "starf": // BLACK STAR + return rune(0x2605), true + case "stigma": // GREEK LETTER STIGMA return rune(0x03da), true - case "straightepsilon": - // GREEK LUNATE EPSILON SYMBOL + case "straightepsilon": // GREEK LUNATE EPSILON SYMBOL return rune(0x03f5), true - case "straightphi": - // GREEK PHI SYMBOL + case "straightphi": // GREEK PHI SYMBOL return rune(0x03d5), true - case "strns": - // MACRON + case "strns": // MACRON return rune(0xaf), true - case "sub": - // SUBSET OF + case "sub": // SUBSET OF return rune(0x2282), true - case "subE": - // SUBSET OF ABOVE EQUALS SIGN + case "subE": // SUBSET OF ABOVE EQUALS SIGN return rune(0x2ac5), true - case "subdot": - // SUBSET WITH DOT + case "subdot": // SUBSET WITH DOT return rune(0x2abd), true - case "sube": - // SUBSET OF OR EQUAL TO + case "sube": // SUBSET OF OR EQUAL TO return rune(0x2286), true - case "subedot": - // SUBSET OF OR EQUAL TO WITH DOT ABOVE + case "subedot": // SUBSET OF OR EQUAL TO WITH DOT ABOVE return rune(0x2ac3), true - case "submult": - // SUBSET WITH MULTIPLICATION SIGN BELOW + case "submult": // SUBSET WITH MULTIPLICATION SIGN BELOW return rune(0x2ac1), true - case "subnE": - // SUBSET OF ABOVE NOT EQUAL TO + case "subnE": // SUBSET OF ABOVE NOT EQUAL TO return rune(0x2acb), true - case "subne": - // SUBSET OF WITH NOT EQUAL TO + case "subne": // SUBSET OF WITH NOT EQUAL TO return rune(0x228a), true - case "subplus": - // SUBSET WITH PLUS SIGN BELOW + case "subplus": // SUBSET WITH PLUS SIGN BELOW return rune(0x2abf), true - case "subrarr": - // SUBSET ABOVE RIGHTWARDS ARROW + case "subrarr": // SUBSET ABOVE RIGHTWARDS ARROW return rune(0x2979), true - case "subset": - // SUBSET OF + case "subset": // SUBSET OF return rune(0x2282), true - case "subseteq": - // SUBSET OF OR EQUAL TO + case "subseteq": // SUBSET OF OR EQUAL TO return rune(0x2286), true - case "subseteqq": - // SUBSET OF ABOVE EQUALS SIGN + case "subseteqq": // SUBSET OF ABOVE EQUALS SIGN return rune(0x2ac5), true - case "subsetneq": - // SUBSET OF WITH NOT EQUAL TO + case "subsetneq": // SUBSET OF WITH NOT EQUAL TO return rune(0x228a), true - case "subsetneqq": - // SUBSET OF ABOVE NOT EQUAL TO + case "subsetneqq": // SUBSET OF ABOVE NOT EQUAL TO return rune(0x2acb), true - case "subsim": - // SUBSET OF ABOVE TILDE OPERATOR + case "subsim": // SUBSET OF ABOVE TILDE OPERATOR return rune(0x2ac7), true - case "subsub": - // SUBSET ABOVE SUBSET + case "subsub": // SUBSET ABOVE SUBSET return rune(0x2ad5), true - case "subsup": - // SUBSET ABOVE SUPERSET + case "subsup": // SUBSET ABOVE SUPERSET return rune(0x2ad3), true - case "succ": - // SUCCEEDS + case "succ": // SUCCEEDS return rune(0x227b), true - case "succapprox": - // SUCCEEDS ABOVE ALMOST EQUAL TO + case "succapprox": // SUCCEEDS ABOVE ALMOST EQUAL TO return rune(0x2ab8), true - case "succcurlyeq": - // SUCCEEDS OR EQUAL TO + case "succcurlyeq": // SUCCEEDS OR EQUAL TO return rune(0x227d), true - case "succeq": - // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN + case "succeq": // SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN return rune(0x2ab0), true - case "succnapprox": - // SUCCEEDS ABOVE NOT ALMOST EQUAL TO + case "succnapprox": // SUCCEEDS ABOVE NOT ALMOST EQUAL TO return rune(0x2aba), true - case "succneqq": - // SUCCEEDS ABOVE NOT EQUAL TO + case "succneqq": // SUCCEEDS ABOVE NOT EQUAL TO return rune(0x2ab6), true - case "succnsim": - // SUCCEEDS BUT NOT EQUIVALENT TO + case "succnsim": // SUCCEEDS BUT NOT EQUIVALENT TO return rune(0x22e9), true - case "succsim": - // SUCCEEDS OR EQUIVALENT TO + case "succsim": // SUCCEEDS OR EQUIVALENT TO return rune(0x227f), true - case "sum": - // N-ARY SUMMATION + case "sum": // N-ARY SUMMATION return rune(0x2211), true - case "sumint": - // SUMMATION WITH INTEGRAL + case "sumint": // SUMMATION WITH INTEGRAL return rune(0x2a0b), true - case "sung": - // EIGHTH NOTE + case "sung": // EIGHTH NOTE return rune(0x266a), true - case "sup": - // SUPERSET OF + case "sup": // SUPERSET OF return rune(0x2283), true - case "sup1": - // SUPERSCRIPT ONE + case "sup1": // SUPERSCRIPT ONE return rune(0xb9), true - case "sup2": - // SUPERSCRIPT TWO + case "sup2": // SUPERSCRIPT TWO return rune(0xb2), true - case "sup3": - // SUPERSCRIPT THREE + case "sup3": // SUPERSCRIPT THREE return rune(0xb3), true - case "supE": - // SUPERSET OF ABOVE EQUALS SIGN + case "supE": // SUPERSET OF ABOVE EQUALS SIGN return rune(0x2ac6), true - case "supdot": - // SUPERSET WITH DOT + case "supdot": // SUPERSET WITH DOT return rune(0x2abe), true - case "supdsub": - // SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET + case "supdsub": // SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET return rune(0x2ad8), true - case "supe": - // SUPERSET OF OR EQUAL TO + case "supe": // SUPERSET OF OR EQUAL TO return rune(0x2287), true - case "supedot": - // SUPERSET OF OR EQUAL TO WITH DOT ABOVE + case "supedot": // SUPERSET OF OR EQUAL TO WITH DOT ABOVE return rune(0x2ac4), true - case "suphsol": - // SUPERSET PRECEDING SOLIDUS + case "suphsol": // SUPERSET PRECEDING SOLIDUS return rune(0x27c9), true - case "suphsub": - // SUPERSET BESIDE SUBSET + case "suphsub": // SUPERSET BESIDE SUBSET return rune(0x2ad7), true - case "suplarr": - // SUPERSET ABOVE LEFTWARDS ARROW + case "suplarr": // SUPERSET ABOVE LEFTWARDS ARROW return rune(0x297b), true - case "supmult": - // SUPERSET WITH MULTIPLICATION SIGN BELOW + case "supmult": // SUPERSET WITH MULTIPLICATION SIGN BELOW return rune(0x2ac2), true - case "supnE": - // SUPERSET OF ABOVE NOT EQUAL TO + case "supnE": // SUPERSET OF ABOVE NOT EQUAL TO return rune(0x2acc), true - case "supne": - // SUPERSET OF WITH NOT EQUAL TO + case "supne": // SUPERSET OF WITH NOT EQUAL TO return rune(0x228b), true - case "supplus": - // SUPERSET WITH PLUS SIGN BELOW + case "supplus": // SUPERSET WITH PLUS SIGN BELOW return rune(0x2ac0), true - case "supset": - // SUPERSET OF + case "supset": // SUPERSET OF return rune(0x2283), true - case "supseteq": - // SUPERSET OF OR EQUAL TO + case "supseteq": // SUPERSET OF OR EQUAL TO return rune(0x2287), true - case "supseteqq": - // SUPERSET OF ABOVE EQUALS SIGN + case "supseteqq": // SUPERSET OF ABOVE EQUALS SIGN return rune(0x2ac6), true - case "supsetneq": - // SUPERSET OF WITH NOT EQUAL TO + case "supsetneq": // SUPERSET OF WITH NOT EQUAL TO return rune(0x228b), true - case "supsetneqq": - // SUPERSET OF ABOVE NOT EQUAL TO + case "supsetneqq": // SUPERSET OF ABOVE NOT EQUAL TO return rune(0x2acc), true - case "supsim": - // SUPERSET OF ABOVE TILDE OPERATOR + case "supsim": // SUPERSET OF ABOVE TILDE OPERATOR return rune(0x2ac8), true - case "supsub": - // SUPERSET ABOVE SUBSET + case "supsub": // SUPERSET ABOVE SUBSET return rune(0x2ad4), true - case "supsup": - // SUPERSET ABOVE SUPERSET + case "supsup": // SUPERSET ABOVE SUPERSET return rune(0x2ad6), true - case "swArr": - // SOUTH WEST DOUBLE ARROW + case "swArr": // SOUTH WEST DOUBLE ARROW return rune(0x21d9), true - case "swarhk": - // SOUTH WEST ARROW WITH HOOK + case "swarhk": // SOUTH WEST ARROW WITH HOOK return rune(0x2926), true - case "swarrow": - // SOUTH WEST ARROW + case "swarr": // SOUTH WEST ARROW return rune(0x2199), true - case "swarr": - // SOUTH WEST ARROW + case "swarrow": // SOUTH WEST ARROW return rune(0x2199), true - case "swnwar": - // SOUTH WEST ARROW AND NORTH WEST ARROW + case "swnwar": // SOUTH WEST ARROW AND NORTH WEST ARROW return rune(0x292a), true - case "szlig": - // LATIN SMALL LETTER SHARP S + case "szlig": // LATIN SMALL LETTER SHARP S return rune(0xdf), true } case 't': switch name { - case "target": - // POSITION INDICATOR + case "target": // POSITION INDICATOR return rune(0x2316), true - case "tau": - // GREEK SMALL LETTER TAU + case "tau": // GREEK SMALL LETTER TAU return rune(0x03c4), true - case "tbrk": - // TOP SQUARE BRACKET + case "tbrk": // TOP SQUARE BRACKET return rune(0x23b4), true - case "tcaron": - // LATIN SMALL LETTER T WITH CARON + case "tcaron": // LATIN SMALL LETTER T WITH CARON return rune(0x0165), true - case "tcedil": - // LATIN SMALL LETTER T WITH CEDILLA + case "tcedil": // LATIN SMALL LETTER T WITH CEDILLA return rune(0x0163), true - case "tcy": - // CYRILLIC SMALL LETTER TE + case "tcy": // CYRILLIC SMALL LETTER TE return rune(0x0442), true - case "tdot": - // COMBINING THREE DOTS ABOVE + case "tdot": // COMBINING THREE DOTS ABOVE return rune(0x20db), true - case "telrec": - // TELEPHONE RECORDER + case "telrec": // TELEPHONE RECORDER return rune(0x2315), true - case "tfr": - // MATHEMATICAL FRAKTUR SMALL T + case "tfr": // MATHEMATICAL FRAKTUR SMALL T return rune(0x01d531), true - case "tgr": - // GREEK SMALL LETTER TAU + case "tgr": // GREEK SMALL LETTER TAU return rune(0x03c4), true - case "there4": - // THEREFORE + case "there4": // THEREFORE return rune(0x2234), true - case "therefore": - // THEREFORE + case "therefore": // THEREFORE return rune(0x2234), true - case "thermod": - // THERMODYNAMIC + case "thermod": // THERMODYNAMIC return rune(0x29e7), true - case "thetasym": - // GREEK THETA SYMBOL + case "theta": // GREEK SMALL LETTER THETA + return rune(0x03b8), true + case "thetas": // GREEK SMALL LETTER THETA + return rune(0x03b8), true + case "thetasym": // GREEK THETA SYMBOL return rune(0x03d1), true - case "thetas": - // GREEK SMALL LETTER THETA - return rune(0x03b8), true - case "thetav": - // GREEK THETA SYMBOL + case "thetav": // GREEK THETA SYMBOL return rune(0x03d1), true - case "theta": - // GREEK SMALL LETTER THETA + case "thgr": // GREEK SMALL LETTER THETA return rune(0x03b8), true - case "thgr": - // GREEK SMALL LETTER THETA - return rune(0x03b8), true - case "thickapprox": - // ALMOST EQUAL TO + case "thickapprox": // ALMOST EQUAL TO return rune(0x2248), true - case "thicksim": - // TILDE OPERATOR + case "thicksim": // TILDE OPERATOR return rune(0x223c), true - case "thinsp": - // THIN SPACE + case "thinsp": // THIN SPACE return rune(0x2009), true - case "thkap": - // ALMOST EQUAL TO + case "thkap": // ALMOST EQUAL TO return rune(0x2248), true - case "thksim": - // TILDE OPERATOR + case "thksim": // TILDE OPERATOR return rune(0x223c), true - case "thorn": - // LATIN SMALL LETTER THORN + case "thorn": // LATIN SMALL LETTER THORN return rune(0xfe), true - case "tilde": - // SMALL TILDE + case "tilde": // SMALL TILDE return rune(0x02dc), true - case "timeint": - // INTEGRAL WITH TIMES SIGN + case "timeint": // INTEGRAL WITH TIMES SIGN return rune(0x2a18), true - case "timesb": - // SQUARED TIMES - return rune(0x22a0), true - case "timesbar": - // MULTIPLICATION SIGN WITH UNDERBAR - return rune(0x2a31), true - case "timesd": - // MULTIPLICATION SIGN WITH DOT ABOVE - return rune(0x2a30), true - case "times": - // MULTIPLICATION SIGN + case "times": // MULTIPLICATION SIGN return rune(0xd7), true - case "tint": - // TRIPLE INTEGRAL + case "timesb": // SQUARED TIMES + return rune(0x22a0), true + case "timesbar": // MULTIPLICATION SIGN WITH UNDERBAR + return rune(0x2a31), true + case "timesd": // MULTIPLICATION SIGN WITH DOT ABOVE + return rune(0x2a30), true + case "tint": // TRIPLE INTEGRAL return rune(0x222d), true - case "toea": - // NORTH EAST ARROW AND SOUTH EAST ARROW + case "toea": // NORTH EAST ARROW AND SOUTH EAST ARROW return rune(0x2928), true - case "top": - // DOWN TACK + case "top": // DOWN TACK return rune(0x22a4), true - case "topbot": - // APL FUNCTIONAL SYMBOL I-BEAM + case "topbot": // APL FUNCTIONAL SYMBOL I-BEAM return rune(0x2336), true - case "topcir": - // DOWN TACK WITH CIRCLE BELOW + case "topcir": // DOWN TACK WITH CIRCLE BELOW return rune(0x2af1), true - case "topfork": - // PITCHFORK WITH TEE TOP - return rune(0x2ada), true - case "topf": - // MATHEMATICAL DOUBLE-STRUCK SMALL T + case "topf": // MATHEMATICAL DOUBLE-STRUCK SMALL T return rune(0x01d565), true - case "tosa": - // SOUTH EAST ARROW AND SOUTH WEST ARROW + case "topfork": // PITCHFORK WITH TEE TOP + return rune(0x2ada), true + case "tosa": // SOUTH EAST ARROW AND SOUTH WEST ARROW return rune(0x2929), true - case "tprime": - // TRIPLE PRIME + case "tprime": // TRIPLE PRIME return rune(0x2034), true - case "trade": - // TRADE MARK SIGN + case "trade": // TRADE MARK SIGN return rune(0x2122), true - case "triS": - // S IN TRIANGLE + case "triS": // S IN TRIANGLE return rune(0x29cc), true - case "trianglelefteq": - // NORMAL SUBGROUP OF OR EQUAL TO - return rune(0x22b4), true - case "triangleq": - // DELTA EQUAL TO - return rune(0x225c), true - case "trianglerighteq": - // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO - return rune(0x22b5), true - case "triangle": - // WHITE UP-POINTING SMALL TRIANGLE + case "triangle": // WHITE UP-POINTING SMALL TRIANGLE return rune(0x25b5), true - case "triangledown": - // WHITE DOWN-POINTING SMALL TRIANGLE + case "triangledown": // WHITE DOWN-POINTING SMALL TRIANGLE return rune(0x25bf), true - case "triangleleft": - // WHITE LEFT-POINTING SMALL TRIANGLE + case "triangleleft": // WHITE LEFT-POINTING SMALL TRIANGLE return rune(0x25c3), true - case "triangleright": - // WHITE RIGHT-POINTING SMALL TRIANGLE - return rune(0x25b9), true - case "tribar": - // TRIANGLE WITH UNDERBAR - return rune(0x29cb), true - case "tridot": - // WHITE UP-POINTING TRIANGLE WITH DOT - return rune(0x25ec), true - case "tridoto": - // TRIANGLE WITH DOT ABOVE - return rune(0x29ca), true - case "trie": - // DELTA EQUAL TO + case "trianglelefteq": // NORMAL SUBGROUP OF OR EQUAL TO + return rune(0x22b4), true + case "triangleq": // DELTA EQUAL TO return rune(0x225c), true - case "triminus": - // MINUS SIGN IN TRIANGLE + case "triangleright": // WHITE RIGHT-POINTING SMALL TRIANGLE + return rune(0x25b9), true + case "trianglerighteq": // CONTAINS AS NORMAL SUBGROUP OR EQUAL TO + return rune(0x22b5), true + case "tribar": // TRIANGLE WITH UNDERBAR + return rune(0x29cb), true + case "tridot": // WHITE UP-POINTING TRIANGLE WITH DOT + return rune(0x25ec), true + case "tridoto": // TRIANGLE WITH DOT ABOVE + return rune(0x29ca), true + case "trie": // DELTA EQUAL TO + return rune(0x225c), true + case "triminus": // MINUS SIGN IN TRIANGLE return rune(0x2a3a), true - case "triplus": - // PLUS SIGN IN TRIANGLE + case "triplus": // PLUS SIGN IN TRIANGLE return rune(0x2a39), true - case "trisb": - // TRIANGLE WITH SERIFS AT BOTTOM + case "trisb": // TRIANGLE WITH SERIFS AT BOTTOM return rune(0x29cd), true - case "tritime": - // MULTIPLICATION SIGN IN TRIANGLE + case "tritime": // MULTIPLICATION SIGN IN TRIANGLE return rune(0x2a3b), true - case "trpezium": - // WHITE TRAPEZIUM + case "trpezium": // WHITE TRAPEZIUM return rune(0x23e2), true - case "tscr": - // MATHEMATICAL SCRIPT SMALL T + case "tscr": // MATHEMATICAL SCRIPT SMALL T return rune(0x01d4c9), true - case "tscy": - // CYRILLIC SMALL LETTER TSE + case "tscy": // CYRILLIC SMALL LETTER TSE return rune(0x0446), true - case "tshcy": - // CYRILLIC SMALL LETTER TSHE + case "tshcy": // CYRILLIC SMALL LETTER TSHE return rune(0x045b), true - case "tstrok": - // LATIN SMALL LETTER T WITH STROKE + case "tstrok": // LATIN SMALL LETTER T WITH STROKE return rune(0x0167), true - case "tverbar": - // TRIPLE VERTICAL BAR DELIMITER + case "tverbar": // TRIPLE VERTICAL BAR DELIMITER return rune(0x2980), true - case "twixt": - // BETWEEN + case "twixt": // BETWEEN return rune(0x226c), true - case "twoheadleftarrow": - // LEFTWARDS TWO HEADED ARROW + case "twoheadleftarrow": // LEFTWARDS TWO HEADED ARROW return rune(0x219e), true - case "twoheadrightarrow": - // RIGHTWARDS TWO HEADED ARROW + case "twoheadrightarrow": // RIGHTWARDS TWO HEADED ARROW return rune(0x21a0), true } case 'u': switch name { - case "uAarr": - // UPWARDS TRIPLE ARROW + case "uAarr": // UPWARDS TRIPLE ARROW return rune(0x290a), true - case "uArr": - // UPWARDS DOUBLE ARROW + case "uArr": // UPWARDS DOUBLE ARROW return rune(0x21d1), true - case "uHar": - // UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT + case "uHar": // UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT return rune(0x2963), true - case "uacgr": - // GREEK SMALL LETTER UPSILON WITH TONOS + case "uacgr": // GREEK SMALL LETTER UPSILON WITH TONOS return rune(0x03cd), true - case "uacute": - // LATIN SMALL LETTER U WITH ACUTE + case "uacute": // LATIN SMALL LETTER U WITH ACUTE return rune(0xfa), true - case "uarr2": - // UPWARDS PAIRED ARROWS - return rune(0x21c8), true - case "uarr": - // UPWARDS ARROW + case "uarr": // UPWARDS ARROW return rune(0x2191), true - case "uarrb": - // UPWARDS ARROW TO BAR + case "uarr2": // UPWARDS PAIRED ARROWS + return rune(0x21c8), true + case "uarrb": // UPWARDS ARROW TO BAR return rune(0x2912), true - case "uarrln": - // UPWARDS ARROW WITH HORIZONTAL STROKE + case "uarrln": // UPWARDS ARROW WITH HORIZONTAL STROKE return rune(0x2909), true - case "ubrcy": - // CYRILLIC SMALL LETTER SHORT U + case "ubrcy": // CYRILLIC SMALL LETTER SHORT U return rune(0x045e), true - case "ubreve": - // LATIN SMALL LETTER U WITH BREVE + case "ubreve": // LATIN SMALL LETTER U WITH BREVE return rune(0x016d), true - case "ucirc": - // LATIN SMALL LETTER U WITH CIRCUMFLEX + case "ucirc": // LATIN SMALL LETTER U WITH CIRCUMFLEX return rune(0xfb), true - case "ucy": - // CYRILLIC SMALL LETTER U + case "ucy": // CYRILLIC SMALL LETTER U return rune(0x0443), true - case "udarr": - // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW + case "udarr": // UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW return rune(0x21c5), true - case "udblac": - // LATIN SMALL LETTER U WITH DOUBLE ACUTE + case "udblac": // LATIN SMALL LETTER U WITH DOUBLE ACUTE return rune(0x0171), true - case "udhar": - // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT + case "udhar": // UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT return rune(0x296e), true - case "udiagr": - // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS + case "udiagr": // GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS return rune(0x03b0), true - case "udigr": - // GREEK SMALL LETTER UPSILON WITH DIALYTIKA + case "udigr": // GREEK SMALL LETTER UPSILON WITH DIALYTIKA return rune(0x03cb), true - case "udrbrk": - // BOTTOM SQUARE BRACKET + case "udrbrk": // BOTTOM SQUARE BRACKET return rune(0x23b5), true - case "udrcub": - // BOTTOM CURLY BRACKET + case "udrcub": // BOTTOM CURLY BRACKET return rune(0x23df), true - case "udrpar": - // BOTTOM PARENTHESIS + case "udrpar": // BOTTOM PARENTHESIS return rune(0x23dd), true - case "ufisht": - // UP FISH TAIL + case "ufisht": // UP FISH TAIL return rune(0x297e), true - case "ufr": - // MATHEMATICAL FRAKTUR SMALL U + case "ufr": // MATHEMATICAL FRAKTUR SMALL U return rune(0x01d532), true - case "ugr": - // GREEK SMALL LETTER UPSILON + case "ugr": // GREEK SMALL LETTER UPSILON return rune(0x03c5), true - case "ugrave": - // LATIN SMALL LETTER U WITH GRAVE + case "ugrave": // LATIN SMALL LETTER U WITH GRAVE return rune(0xf9), true - case "uharl": - // UPWARDS HARPOON WITH BARB LEFTWARDS + case "uharl": // UPWARDS HARPOON WITH BARB LEFTWARDS return rune(0x21bf), true - case "uharr": - // UPWARDS HARPOON WITH BARB RIGHTWARDS + case "uharr": // UPWARDS HARPOON WITH BARB RIGHTWARDS return rune(0x21be), true - case "uhblk": - // UPPER HALF BLOCK + case "uhblk": // UPPER HALF BLOCK return rune(0x2580), true - case "ulcorn": - // TOP LEFT CORNER + case "ulcorn": // TOP LEFT CORNER return rune(0x231c), true - case "ulcorner": - // TOP LEFT CORNER + case "ulcorner": // TOP LEFT CORNER return rune(0x231c), true - case "ulcrop": - // TOP LEFT CROP + case "ulcrop": // TOP LEFT CROP return rune(0x230f), true - case "uldlshar": - // UP BARB LEFT DOWN BARB LEFT HARPOON + case "uldlshar": // UP BARB LEFT DOWN BARB LEFT HARPOON return rune(0x2951), true - case "ulharb": - // UPWARDS HARPOON WITH BARB LEFT TO BAR + case "ulharb": // UPWARDS HARPOON WITH BARB LEFT TO BAR return rune(0x2958), true - case "ultri": - // UPPER LEFT TRIANGLE + case "ultri": // UPPER LEFT TRIANGLE return rune(0x25f8), true - case "umacr": - // LATIN SMALL LETTER U WITH MACRON + case "umacr": // LATIN SMALL LETTER U WITH MACRON return rune(0x016b), true - case "uml": - // DIAERESIS + case "uml": // DIAERESIS return rune(0xa8), true - case "uogon": - // LATIN SMALL LETTER U WITH OGONEK + case "uogon": // LATIN SMALL LETTER U WITH OGONEK return rune(0x0173), true - case "uopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL U + case "uopf": // MATHEMATICAL DOUBLE-STRUCK SMALL U return rune(0x01d566), true - case "uparrow": - // UPWARDS ARROW + case "uparrow": // UPWARDS ARROW return rune(0x2191), true - case "updownarrow": - // UP DOWN ARROW + case "updownarrow": // UP DOWN ARROW return rune(0x2195), true - case "upharpoonleft": - // UPWARDS HARPOON WITH BARB LEFTWARDS + case "upharpoonleft": // UPWARDS HARPOON WITH BARB LEFTWARDS return rune(0x21bf), true - case "upharpoonright": - // UPWARDS HARPOON WITH BARB RIGHTWARDS + case "upharpoonright": // UPWARDS HARPOON WITH BARB RIGHTWARDS return rune(0x21be), true - case "upint": - // INTEGRAL WITH OVERBAR + case "upint": // INTEGRAL WITH OVERBAR return rune(0x2a1b), true - case "uplus": - // MULTISET UNION + case "uplus": // MULTISET UNION return rune(0x228e), true - case "upsih": - // GREEK UPSILON WITH HOOK SYMBOL + case "upsi": // GREEK SMALL LETTER UPSILON + return rune(0x03c5), true + case "upsih": // GREEK UPSILON WITH HOOK SYMBOL return rune(0x03d2), true - case "upsilon": - // GREEK SMALL LETTER UPSILON + case "upsilon": // GREEK SMALL LETTER UPSILON return rune(0x03c5), true - case "upsi": - // GREEK SMALL LETTER UPSILON - return rune(0x03c5), true - case "upuparrows": - // UPWARDS PAIRED ARROWS + case "upuparrows": // UPWARDS PAIRED ARROWS return rune(0x21c8), true - case "urcorn": - // TOP RIGHT CORNER + case "urcorn": // TOP RIGHT CORNER return rune(0x231d), true - case "urcorner": - // TOP RIGHT CORNER + case "urcorner": // TOP RIGHT CORNER return rune(0x231d), true - case "urcrop": - // TOP RIGHT CROP + case "urcrop": // TOP RIGHT CROP return rune(0x230e), true - case "urdrshar": - // UP BARB RIGHT DOWN BARB RIGHT HARPOON + case "urdrshar": // UP BARB RIGHT DOWN BARB RIGHT HARPOON return rune(0x294f), true - case "urharb": - // UPWARDS HARPOON WITH BARB RIGHT TO BAR + case "urharb": // UPWARDS HARPOON WITH BARB RIGHT TO BAR return rune(0x2954), true - case "uring": - // LATIN SMALL LETTER U WITH RING ABOVE + case "uring": // LATIN SMALL LETTER U WITH RING ABOVE return rune(0x016f), true - case "urtrif": - // BLACK UPPER RIGHT TRIANGLE - return rune(0x25e5), true - case "urtri": - // UPPER RIGHT TRIANGLE + case "urtri": // UPPER RIGHT TRIANGLE return rune(0x25f9), true - case "uscr": - // MATHEMATICAL SCRIPT SMALL U + case "urtrif": // BLACK UPPER RIGHT TRIANGLE + return rune(0x25e5), true + case "uscr": // MATHEMATICAL SCRIPT SMALL U return rune(0x01d4ca), true - case "utdot": - // UP RIGHT DIAGONAL ELLIPSIS + case "utdot": // UP RIGHT DIAGONAL ELLIPSIS return rune(0x22f0), true - case "utilde": - // LATIN SMALL LETTER U WITH TILDE + case "utilde": // LATIN SMALL LETTER U WITH TILDE return rune(0x0169), true - case "utrif": - // BLACK UP-POINTING SMALL TRIANGLE - return rune(0x25b4), true - case "utri": - // WHITE UP-POINTING SMALL TRIANGLE + case "utri": // WHITE UP-POINTING SMALL TRIANGLE return rune(0x25b5), true - case "uuarr": - // UPWARDS PAIRED ARROWS + case "utrif": // BLACK UP-POINTING SMALL TRIANGLE + return rune(0x25b4), true + case "uuarr": // UPWARDS PAIRED ARROWS return rune(0x21c8), true - case "uuml": - // LATIN SMALL LETTER U WITH DIAERESIS + case "uuml": // LATIN SMALL LETTER U WITH DIAERESIS return rune(0xfc), true - case "uwangle": - // OBLIQUE ANGLE OPENING DOWN + case "uwangle": // OBLIQUE ANGLE OPENING DOWN return rune(0x29a7), true } case 'v': switch name { - case "vArr": - // UP DOWN DOUBLE ARROW + case "vArr": // UP DOWN DOUBLE ARROW return rune(0x21d5), true - case "vBar": - // SHORT UP TACK WITH UNDERBAR + case "vBar": // SHORT UP TACK WITH UNDERBAR return rune(0x2ae8), true - case "vBarv": - // SHORT UP TACK ABOVE SHORT DOWN TACK + case "vBarv": // SHORT UP TACK ABOVE SHORT DOWN TACK return rune(0x2ae9), true - case "vDash": - // TRUE + case "vDash": // TRUE return rune(0x22a8), true - case "vDdash": - // VERTICAL BAR TRIPLE RIGHT TURNSTILE + case "vDdash": // VERTICAL BAR TRIPLE RIGHT TURNSTILE return rune(0x2ae2), true - case "vangrt": - // RIGHT ANGLE VARIANT WITH SQUARE + case "vangrt": // RIGHT ANGLE VARIANT WITH SQUARE return rune(0x299c), true - case "varepsilon": - // GREEK LUNATE EPSILON SYMBOL + case "varepsilon": // GREEK LUNATE EPSILON SYMBOL return rune(0x03f5), true - case "varkappa": - // GREEK KAPPA SYMBOL + case "varkappa": // GREEK KAPPA SYMBOL return rune(0x03f0), true - case "varnothing": - // EMPTY SET + case "varnothing": // EMPTY SET return rune(0x2205), true - case "varphi": - // GREEK PHI SYMBOL + case "varphi": // GREEK PHI SYMBOL return rune(0x03d5), true - case "varpi": - // GREEK PI SYMBOL + case "varpi": // GREEK PI SYMBOL return rune(0x03d6), true - case "varpropto": - // PROPORTIONAL TO + case "varpropto": // PROPORTIONAL TO return rune(0x221d), true - case "varr": - // UP DOWN ARROW + case "varr": // UP DOWN ARROW return rune(0x2195), true - case "varrho": - // GREEK RHO SYMBOL + case "varrho": // GREEK RHO SYMBOL return rune(0x03f1), true - case "varsigma": - // GREEK SMALL LETTER FINAL SIGMA + case "varsigma": // GREEK SMALL LETTER FINAL SIGMA return rune(0x03c2), true - case "varsubsetneq": - // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members + case "varsubsetneq": // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members return rune(0x228a), true - case "varsubsetneqq": - // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members + case "varsubsetneqq": // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members return rune(0x2acb), true - case "varsupsetneq": - // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members + case "varsupsetneq": // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members return rune(0x228b), true - case "varsupsetneqq": - // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members + case "varsupsetneqq": // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members return rune(0x2acc), true - case "vartheta": - // GREEK THETA SYMBOL + case "vartheta": // GREEK THETA SYMBOL return rune(0x03d1), true - case "vartriangleleft": - // NORMAL SUBGROUP OF + case "vartriangleleft": // NORMAL SUBGROUP OF return rune(0x22b2), true - case "vartriangleright": - // CONTAINS AS NORMAL SUBGROUP + case "vartriangleright": // CONTAINS AS NORMAL SUBGROUP return rune(0x22b3), true - case "vbrtri": - // VERTICAL BAR BESIDE RIGHT TRIANGLE + case "vbrtri": // VERTICAL BAR BESIDE RIGHT TRIANGLE return rune(0x29d0), true - case "vcy": - // CYRILLIC SMALL LETTER VE + case "vcy": // CYRILLIC SMALL LETTER VE return rune(0x0432), true - case "vdash": - // RIGHT TACK + case "vdash": // RIGHT TACK return rune(0x22a2), true - case "vee": - // LOGICAL OR + case "vee": // LOGICAL OR return rune(0x2228), true - case "veeBar": - // LOGICAL OR WITH DOUBLE UNDERBAR + case "veeBar": // LOGICAL OR WITH DOUBLE UNDERBAR return rune(0x2a63), true - case "veebar": - // XOR + case "veebar": // XOR return rune(0x22bb), true - case "veeeq": - // EQUIANGULAR TO + case "veeeq": // EQUIANGULAR TO return rune(0x225a), true - case "vellip": - // VERTICAL ELLIPSIS + case "vellip": // VERTICAL ELLIPSIS return rune(0x22ee), true - case "vellip4": - // DOTTED FENCE + case "vellip4": // DOTTED FENCE return rune(0x2999), true - case "vellipv": - // TRIPLE COLON OPERATOR + case "vellipv": // TRIPLE COLON OPERATOR return rune(0x2af6), true - case "verbar": - // VERTICAL LINE + case "verbar": // VERTICAL LINE return rune(0x7c), true - case "vert3": - // TRIPLE VERTICAL BAR BINARY RELATION + case "vert": // VERTICAL LINE + return rune(0x7c), true + case "vert3": // TRIPLE VERTICAL BAR BINARY RELATION return rune(0x2af4), true - case "vert": - // VERTICAL LINE - return rune(0x7c), true - case "vfr": - // MATHEMATICAL FRAKTUR SMALL V + case "vfr": // MATHEMATICAL FRAKTUR SMALL V return rune(0x01d533), true - case "vldash": - // LEFT SQUARE BRACKET LOWER CORNER + case "vldash": // LEFT SQUARE BRACKET LOWER CORNER return rune(0x23a3), true - case "vltri": - // NORMAL SUBGROUP OF + case "vltri": // NORMAL SUBGROUP OF return rune(0x22b2), true - case "vnsub": - // SUBSET OF with vertical line + case "vnsub": // SUBSET OF with vertical line return rune(0x2282), true - case "vnsup": - // SUPERSET OF with vertical line + case "vnsup": // SUPERSET OF with vertical line return rune(0x2283), true - case "vopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL V + case "vopf": // MATHEMATICAL DOUBLE-STRUCK SMALL V return rune(0x01d567), true - case "vprime": - // PRIME + case "vprime": // PRIME return rune(0x2032), true - case "vprop": - // PROPORTIONAL TO + case "vprop": // PROPORTIONAL TO return rune(0x221d), true - case "vrtri": - // CONTAINS AS NORMAL SUBGROUP + case "vrtri": // CONTAINS AS NORMAL SUBGROUP return rune(0x22b3), true - case "vscr": - // MATHEMATICAL SCRIPT SMALL V + case "vscr": // MATHEMATICAL SCRIPT SMALL V return rune(0x01d4cb), true - case "vsubnE": - // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members + case "vsubnE": // SUBSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members return rune(0x2acb), true - case "vsubne": - // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members + case "vsubne": // SUBSET OF WITH NOT EQUAL TO - variant with stroke through bottom members return rune(0x228a), true - case "vsupnE": - // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members + case "vsupnE": // SUPERSET OF ABOVE NOT EQUAL TO - variant with stroke through bottom members return rune(0x2acc), true - case "vsupne": - // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members + case "vsupne": // SUPERSET OF WITH NOT EQUAL TO - variant with stroke through bottom members return rune(0x228b), true - case "vzigzag": - // VERTICAL ZIGZAG LINE + case "vzigzag": // VERTICAL ZIGZAG LINE return rune(0x299a), true } case 'w': switch name { - case "wcirc": - // LATIN SMALL LETTER W WITH CIRCUMFLEX + case "wcirc": // LATIN SMALL LETTER W WITH CIRCUMFLEX return rune(0x0175), true - case "wedbar": - // LOGICAL AND WITH UNDERBAR + case "wedbar": // LOGICAL AND WITH UNDERBAR return rune(0x2a5f), true - case "wedge": - // LOGICAL AND + case "wedge": // LOGICAL AND return rune(0x2227), true - case "wedgeq": - // ESTIMATES + case "wedgeq": // ESTIMATES return rune(0x2259), true - case "weierp": - // SCRIPT CAPITAL P + case "weierp": // SCRIPT CAPITAL P return rune(0x2118), true - case "wfr": - // MATHEMATICAL FRAKTUR SMALL W + case "wfr": // MATHEMATICAL FRAKTUR SMALL W return rune(0x01d534), true - case "wopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL W + case "wopf": // MATHEMATICAL DOUBLE-STRUCK SMALL W return rune(0x01d568), true - case "wp": - // SCRIPT CAPITAL P + case "wp": // SCRIPT CAPITAL P return rune(0x2118), true - case "wreath": - // WREATH PRODUCT + case "wr": // WREATH PRODUCT return rune(0x2240), true - case "wr": - // WREATH PRODUCT + case "wreath": // WREATH PRODUCT return rune(0x2240), true - case "wscr": - // MATHEMATICAL SCRIPT SMALL W + case "wscr": // MATHEMATICAL SCRIPT SMALL W return rune(0x01d4cc), true } case 'x': switch name { - case "xandand": - // TWO LOGICAL AND OPERATOR + case "xandand": // TWO LOGICAL AND OPERATOR return rune(0x2a07), true - case "xbsol": - // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + case "xbsol": // BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT return rune(0x2571), true - case "xcap": - // N-ARY INTERSECTION + case "xcap": // N-ARY INTERSECTION return rune(0x22c2), true - case "xcirc": - // LARGE CIRCLE + case "xcirc": // LARGE CIRCLE return rune(0x25ef), true - case "xcup": - // N-ARY UNION + case "xcup": // N-ARY UNION return rune(0x22c3), true - case "xcupdot": - // N-ARY UNION OPERATOR WITH DOT + case "xcupdot": // N-ARY UNION OPERATOR WITH DOT return rune(0x2a03), true - case "xdtri": - // WHITE DOWN-POINTING TRIANGLE + case "xdtri": // WHITE DOWN-POINTING TRIANGLE return rune(0x25bd), true - case "xfr": - // MATHEMATICAL FRAKTUR SMALL X + case "xfr": // MATHEMATICAL FRAKTUR SMALL X return rune(0x01d535), true - case "xgr": - // GREEK SMALL LETTER XI + case "xgr": // GREEK SMALL LETTER XI return rune(0x03be), true - case "xhArr": - // LONG LEFT RIGHT DOUBLE ARROW + case "xhArr": // LONG LEFT RIGHT DOUBLE ARROW return rune(0x27fa), true - case "xharr": - // LONG LEFT RIGHT ARROW + case "xharr": // LONG LEFT RIGHT ARROW return rune(0x27f7), true - case "xi": - // GREEK SMALL LETTER XI + case "xi": // GREEK SMALL LETTER XI return rune(0x03be), true - case "xlArr": - // LONG LEFTWARDS DOUBLE ARROW + case "xlArr": // LONG LEFTWARDS DOUBLE ARROW return rune(0x27f8), true - case "xlarr": - // LONG LEFTWARDS ARROW + case "xlarr": // LONG LEFTWARDS ARROW return rune(0x27f5), true - case "xmap": - // LONG RIGHTWARDS ARROW FROM BAR + case "xmap": // LONG RIGHTWARDS ARROW FROM BAR return rune(0x27fc), true - case "xnis": - // CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE + case "xnis": // CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE return rune(0x22fb), true - case "xodot": - // N-ARY CIRCLED DOT OPERATOR + case "xodot": // N-ARY CIRCLED DOT OPERATOR return rune(0x2a00), true - case "xopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL X + case "xopf": // MATHEMATICAL DOUBLE-STRUCK SMALL X return rune(0x01d569), true - case "xoplus": - // N-ARY CIRCLED PLUS OPERATOR + case "xoplus": // N-ARY CIRCLED PLUS OPERATOR return rune(0x2a01), true - case "xoror": - // TWO LOGICAL OR OPERATOR + case "xoror": // TWO LOGICAL OR OPERATOR return rune(0x2a08), true - case "xotime": - // N-ARY CIRCLED TIMES OPERATOR + case "xotime": // N-ARY CIRCLED TIMES OPERATOR return rune(0x2a02), true - case "xrArr": - // LONG RIGHTWARDS DOUBLE ARROW + case "xrArr": // LONG RIGHTWARDS DOUBLE ARROW return rune(0x27f9), true - case "xrarr": - // LONG RIGHTWARDS ARROW + case "xrarr": // LONG RIGHTWARDS ARROW return rune(0x27f6), true - case "xscr": - // MATHEMATICAL SCRIPT SMALL X + case "xscr": // MATHEMATICAL SCRIPT SMALL X return rune(0x01d4cd), true - case "xsol": - // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + case "xsol": // BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT return rune(0x2572), true - case "xsqcap": - // N-ARY SQUARE INTERSECTION OPERATOR + case "xsqcap": // N-ARY SQUARE INTERSECTION OPERATOR return rune(0x2a05), true - case "xsqcup": - // N-ARY SQUARE UNION OPERATOR + case "xsqcup": // N-ARY SQUARE UNION OPERATOR return rune(0x2a06), true - case "xsqu": - // WHITE MEDIUM SQUARE + case "xsqu": // WHITE MEDIUM SQUARE return rune(0x25fb), true - case "xsquf": - // BLACK MEDIUM SQUARE + case "xsquf": // BLACK MEDIUM SQUARE return rune(0x25fc), true - case "xtimes": - // N-ARY TIMES OPERATOR + case "xtimes": // N-ARY TIMES OPERATOR return rune(0x2a09), true - case "xuplus": - // N-ARY UNION OPERATOR WITH PLUS + case "xuplus": // N-ARY UNION OPERATOR WITH PLUS return rune(0x2a04), true - case "xutri": - // WHITE UP-POINTING TRIANGLE + case "xutri": // WHITE UP-POINTING TRIANGLE return rune(0x25b3), true - case "xvee": - // N-ARY LOGICAL OR + case "xvee": // N-ARY LOGICAL OR return rune(0x22c1), true - case "xwedge": - // N-ARY LOGICAL AND + case "xwedge": // N-ARY LOGICAL AND return rune(0x22c0), true } case 'y': switch name { - case "yacute": - // LATIN SMALL LETTER Y WITH ACUTE + case "yacute": // LATIN SMALL LETTER Y WITH ACUTE return rune(0xfd), true - case "yacy": - // CYRILLIC SMALL LETTER YA + case "yacy": // CYRILLIC SMALL LETTER YA return rune(0x044f), true - case "ycirc": - // LATIN SMALL LETTER Y WITH CIRCUMFLEX + case "ycirc": // LATIN SMALL LETTER Y WITH CIRCUMFLEX return rune(0x0177), true - case "ycy": - // CYRILLIC SMALL LETTER YERU + case "ycy": // CYRILLIC SMALL LETTER YERU return rune(0x044b), true - case "yen": - // YEN SIGN + case "yen": // YEN SIGN return rune(0xa5), true - case "yfr": - // MATHEMATICAL FRAKTUR SMALL Y + case "yfr": // MATHEMATICAL FRAKTUR SMALL Y return rune(0x01d536), true - case "yicy": - // CYRILLIC SMALL LETTER YI + case "yicy": // CYRILLIC SMALL LETTER YI return rune(0x0457), true - case "yopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL Y + case "yopf": // MATHEMATICAL DOUBLE-STRUCK SMALL Y return rune(0x01d56a), true - case "yscr": - // MATHEMATICAL SCRIPT SMALL Y + case "yscr": // MATHEMATICAL SCRIPT SMALL Y return rune(0x01d4ce), true - case "yucy": - // CYRILLIC SMALL LETTER YU + case "yucy": // CYRILLIC SMALL LETTER YU return rune(0x044e), true - case "yuml": - // LATIN SMALL LETTER Y WITH DIAERESIS + case "yuml": // LATIN SMALL LETTER Y WITH DIAERESIS return rune(0xff), true } case 'z': switch name { - case "zacute": - // LATIN SMALL LETTER Z WITH ACUTE + case "zacute": // LATIN SMALL LETTER Z WITH ACUTE return rune(0x017a), true - case "zcaron": - // LATIN SMALL LETTER Z WITH CARON + case "zcaron": // LATIN SMALL LETTER Z WITH CARON return rune(0x017e), true - case "zcy": - // CYRILLIC SMALL LETTER ZE + case "zcy": // CYRILLIC SMALL LETTER ZE return rune(0x0437), true - case "zdot": - // LATIN SMALL LETTER Z WITH DOT ABOVE + case "zdot": // LATIN SMALL LETTER Z WITH DOT ABOVE return rune(0x017c), true - case "zeetrf": - // BLACK-LETTER CAPITAL Z + case "zeetrf": // BLACK-LETTER CAPITAL Z return rune(0x2128), true - case "zeta": - // GREEK SMALL LETTER ZETA + case "zeta": // GREEK SMALL LETTER ZETA return rune(0x03b6), true - case "zfr": - // MATHEMATICAL FRAKTUR SMALL Z + case "zfr": // MATHEMATICAL FRAKTUR SMALL Z return rune(0x01d537), true - case "zgr": - // GREEK SMALL LETTER ZETA + case "zgr": // GREEK SMALL LETTER ZETA return rune(0x03b6), true - case "zhcy": - // CYRILLIC SMALL LETTER ZHE + case "zhcy": // CYRILLIC SMALL LETTER ZHE return rune(0x0436), true - case "zigrarr": - // RIGHTWARDS SQUIGGLE ARROW + case "zigrarr": // RIGHTWARDS SQUIGGLE ARROW return rune(0x21dd), true - case "zopf": - // MATHEMATICAL DOUBLE-STRUCK SMALL Z + case "zopf": // MATHEMATICAL DOUBLE-STRUCK SMALL Z return rune(0x01d56b), true - case "zscr": - // MATHEMATICAL SCRIPT SMALL Z + case "zscr": // MATHEMATICAL SCRIPT SMALL Z return rune(0x01d4cf), true - case "zwj": - // ZERO WIDTH JOINER + case "zwj": // ZERO WIDTH JOINER return rune(0x200d), true - case "zwnj": - // ZERO WIDTH NON-JOINER + case "zwnj": // ZERO WIDTH NON-JOINER return rune(0x200c), true } } diff --git a/core/unicode/tools/generate_entity_table.odin b/core/unicode/tools/generate_entity_table.odin index e5a4d5513..ec8106cbe 100644 --- a/core/unicode/tools/generate_entity_table.odin +++ b/core/unicode/tools/generate_entity_table.odin @@ -2,7 +2,7 @@ package xml_example import "core:encoding/xml" import "core:os" -import "core:path" +import path "core:path/filepath" import "core:mem" import "core:strings" import "core:strconv" @@ -23,38 +23,38 @@ Entity :: struct { } generate_encoding_entity_table :: proc() { - using fmt - - filename := path.join(ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml") + filename := path.join({ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml"}) defer delete(filename) - generated_filename := path.join(ODIN_ROOT, "core", "encoding", "entity", "generated.odin") + generated_filename := path.join({ODIN_ROOT, "core", "encoding", "entity", "generated.odin"}) defer delete(generated_filename) - doc, err := xml.parse(filename, OPTIONS, Error_Handler) + doc, err := xml.load_from_file(filename, OPTIONS, Error_Handler) defer xml.destroy(doc) if err != .None { - printf("Load/Parse error: %v\n", err) + fmt.printf("Load/Parse error: %v\n", err) if err == .File_Error { - printf("\"%v\" not found. Did you run \"tests\\download_assets.py\"?", filename) + fmt.printf("\"%v\" not found. Did you run \"tests\\download_assets.py\"?", filename) } os.exit(1) } - printf("\"%v\" loaded and parsed.\n", filename) + fmt.printf("\"%v\" loaded and parsed.\n", filename) generated_buf: strings.Builder defer strings.builder_destroy(&generated_buf) w := strings.to_writer(&generated_buf) - charlist, charlist_ok := xml.find_child_by_ident(doc.root, "charlist") + charlist_id, charlist_ok := xml.find_child_by_ident(doc, 0, "charlist") if !charlist_ok { - eprintln("Could not locate top-level `` tag.") + fmt.eprintln("Could not locate top-level `` tag.") os.exit(1) } - printf("Found `` with %v children.\n", len(charlist.children)) + charlist := doc.elements[charlist_id] + + fmt.printf("Found `` with %v children.\n", len(charlist.value)) entity_map: map[string]Entity names: [dynamic]string @@ -65,20 +65,26 @@ generate_encoding_entity_table :: proc() { longest_name: string count := 0 - for char in charlist.children { + for char_id in charlist.value { + id := char_id.(xml.Element_ID) + char := doc.elements[id] + if char.ident != "character" { - eprintf("Expected ``, got `<%v>`\n", char.ident) + fmt.eprintf("Expected ``, got `<%v>`\n", char.ident) os.exit(1) } - if codepoint_string, ok := xml.find_attribute_val_by_key(char, "dec"); !ok { - eprintln("`` attribute not found.") + if codepoint_string, ok := xml.find_attribute_val_by_key(doc, id, "dec"); !ok { + fmt.eprintln("`` attribute not found.") os.exit(1) } else { codepoint := strconv.atoi(codepoint_string) - desc, desc_ok := xml.find_child_by_ident(char, "description") - description := desc.value if desc_ok else "" + desc, desc_ok := xml.find_child_by_ident(doc, id, "description") + description := "" + if len(doc.elements[desc].value) == 1 { + description = doc.elements[desc].value[0].(string) + } /* For us to be interested in this codepoint, it has to have at least one entity. @@ -86,9 +92,9 @@ generate_encoding_entity_table :: proc() { nth := 0 for { - character_entity := xml.find_child_by_ident(char, "entity", nth) or_break + character_entity := xml.find_child_by_ident(doc, id, "entity", nth) or_break nth += 1 - name := xml.find_attribute_val_by_key(character_entity, "id") or_continue + name := xml.find_attribute_val_by_key(doc, character_entity, "id") or_continue if len(name) == 0 { /* Invalid name. Skip. @@ -97,8 +103,8 @@ generate_encoding_entity_table :: proc() { } if name == "\"\"" { - printf("%#v\n", char) - printf("%#v\n", character_entity) + fmt.printf("%#v\n", char) + fmt.printf("%#v\n", character_entity) } if len(name) > max_name_length { longest_name = name } @@ -129,29 +135,27 @@ generate_encoding_entity_table :: proc() { */ slice.sort(names[:]) - printf("Found %v unique `&name;` -> rune mappings.\n", count) - printf("Shortest name: %v (%v)\n", shortest_name, min_name_length) - printf("Longest name: %v (%v)\n", longest_name, max_name_length) - - // println(rune_to_string(1234)) + fmt.printf("Found %v unique `&name;` -> rune mappings.\n", count) + fmt.printf("Shortest name: %v (%v)\n", shortest_name, min_name_length) + fmt.printf("Longest name: %v (%v)\n", longest_name, max_name_length) /* Generate table. */ - wprintln(w, "package unicode_entity") - wprintln(w, "") - wprintln(w, GENERATED) - wprintln(w, "") - wprintf (w, TABLE_FILE_PROLOG) - wprintln(w, "") + fmt.wprintln(w, "package unicode_entity") + fmt.wprintln(w, "") + fmt.wprintln(w, GENERATED) + fmt.wprintln(w, "") + fmt.wprintf (w, TABLE_FILE_PROLOG) + fmt.wprintln(w, "") - wprintf (w, "// `&%v;`\n", shortest_name) - wprintf (w, "XML_NAME_TO_RUNE_MIN_LENGTH :: %v\n", min_name_length) - wprintf (w, "// `&%v;`\n", longest_name) - wprintf (w, "XML_NAME_TO_RUNE_MAX_LENGTH :: %v\n", max_name_length) - wprintln(w, "") + fmt.wprintf (w, "// `&%v;`\n", shortest_name) + fmt.wprintf (w, "XML_NAME_TO_RUNE_MIN_LENGTH :: %v\n", min_name_length) + fmt.wprintf (w, "// `&%v;`\n", longest_name) + fmt.wprintf (w, "XML_NAME_TO_RUNE_MAX_LENGTH :: %v\n", max_name_length) + fmt.wprintln(w, "") - wprintln(w, + fmt.wprintln(w, ` /* Input: @@ -181,38 +185,41 @@ named_xml_entity_to_rune :: proc(name: string) -> (decoded: rune, ok: bool) { for v in names { if rune(v[0]) != prefix { if should_close { - wprintln(w, "\t\t}\n") + fmt.wprintln(w, "\t\t}\n") } prefix = rune(v[0]) - wprintf (w, "\tcase '%v':\n", prefix) - wprintln(w, "\t\tswitch name {") + fmt.wprintf (w, "\tcase '%v':\n", prefix) + fmt.wprintln(w, "\t\tswitch name {") } e := entity_map[v] - wprintf(w, "\t\t\tcase \"%v\": \n", e.name) - wprintf(w, "\t\t\t\t// %v\n", e.description) - wprintf(w, "\t\t\t\treturn %v, true\n", rune_to_string(e.codepoint)) + fmt.wprintf(w, "\t\t\tcase \"%v\":", e.name) + for i := len(e.name); i < max_name_length; i += 1 { + fmt.wprintf(w, " ") + } + fmt.wprintf(w, " // %v\n", e.description) + fmt.wprintf(w, "\t\t\t\treturn %v, true\n", rune_to_string(e.codepoint)) should_close = true } - wprintln(w, "\t\t}") - wprintln(w, "\t}") - wprintln(w, "\treturn -1, false") - wprintln(w, "}\n") - wprintln(w, GENERATED) + fmt.wprintln(w, "\t\t}") + fmt.wprintln(w, "\t}") + fmt.wprintln(w, "\treturn -1, false") + fmt.wprintln(w, "}\n") + fmt.wprintln(w, GENERATED) - println() - println(strings.to_string(generated_buf)) - println() + fmt.println() + fmt.println(strings.to_string(generated_buf)) + fmt.println() written := os.write_entire_file(generated_filename, transmute([]byte)strings.to_string(generated_buf)) if written { - fmt.printf("Successfully written generated \"%v\".", generated_filename) + fmt.printf("Successfully written generated \"%v\".\n", generated_filename) } else { - fmt.printf("Failed to write generated \"%v\".", generated_filename) + fmt.printf("Failed to write generated \"%v\".\n", generated_filename) } delete(entity_map) @@ -227,7 +234,7 @@ GENERATED :: `/* */` TABLE_FILE_PROLOG :: `/* - This file is generated from "https://www.w3.org/2003/entities/2007xml/unicode.xml". + This file is generated from "https://github.com/w3c/xml-entities/blob/gh-pages/unicode.xml". UPDATE: - Ensure the XML file was downloaded using "tests\core\download_assets.py". @@ -235,15 +242,21 @@ TABLE_FILE_PROLOG :: `/* Odin unicode generated tables: https://github.com/odin-lang/Odin/tree/master/core/encoding/entity - Copyright © 2021 World Wide Web Consortium, (Massachusetts Institute of Technology, - European Research Consortium for Informatics and Mathematics, Keio University, Beihang). + Copyright David Carlisle 1999-2023 - All Rights Reserved. + Use and distribution of this code are permitted under the terms of the + W3C Software Notice and License. + http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html - This work is distributed under the W3C® Software License [1] in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - [1] http://www.w3.org/Consortium/Legal/copyright-software + + This file is a collection of information about how to map + Unicode entities to LaTeX, and various SGML/XML entity + sets (ISO and MathML/HTML). A Unicode character may be mapped + to several entities. + + Originally designed by Sebastian Rahtz in conjunction with + Barbara Beeton for the STIX project See also: LICENSE_table.md */ @@ -265,8 +278,6 @@ is_dotted_name :: proc(name: string) -> (dotted: bool) { } main :: proc() { - using fmt - track: mem.Tracking_Allocator mem.tracking_allocator_init(&track, context.allocator) context.allocator = mem.tracking_allocator(&track) @@ -274,10 +285,10 @@ main :: proc() { generate_encoding_entity_table() if len(track.allocation_map) > 0 { - println() + fmt.println() for _, v in track.allocation_map { - printf("%v Leaked %v bytes.\n", v.location, v.size) + fmt.printf("%v Leaked %v bytes.\n", v.location, v.size) } } - println("Done and cleaned up!") + fmt.println("Done and cleaned up!") } \ No newline at end of file diff --git a/tests/core/build.bat b/tests/core/build.bat index d0248b813..d12f81666 100644 --- a/tests/core/build.bat +++ b/tests/core/build.bat @@ -1,102 +1,102 @@ -@echo off -set COMMON=-no-bounds-check -vet -strict-style -set COLLECTION=-collection:tests=.. -set PATH_TO_ODIN==..\..\odin -python3 download_assets.py -echo --- -echo Running core:image tests -echo --- -%PATH_TO_ODIN% run image %COMMON% -out:test_core_image.exe || exit /b - -echo --- -echo Running core:compress tests -echo --- -%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe || exit /b - -echo --- -echo Running core:strings tests -echo --- -%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe || exit /b - -echo --- -echo Running core:hash tests -echo --- -%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe || exit /b - -echo --- -echo Running core:odin tests -echo --- -%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe || exit /b - -echo --- -echo Running core:crypto hash tests -echo --- -%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe || exit /b - -echo --- -echo Running core:encoding tests -echo --- -%PATH_TO_ODIN% run encoding/hxa %COMMON% %COLLECTION% -out:test_hxa.exe || exit /b -%PATH_TO_ODIN% run encoding/json %COMMON% -out:test_json.exe || exit /b -%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe || exit /b -%PATH_TO_ODIN% run encoding/xml %COMMON% -out:test_xml.exe || exit /b - -echo --- -echo Running core:math/noise tests -echo --- -%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe || exit /b - -echo --- -echo Running core:math tests -echo --- -%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe || exit /b - -echo --- -echo Running core:math/linalg/glsl tests -echo --- -%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe || exit /b - -echo --- -echo Running core:path/filepath tests -echo --- -%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe || exit /b - -echo --- -echo Running core:reflect tests -echo --- -%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe || exit /b - -echo --- -echo Running core:slice tests -echo --- -%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b - -echo --- -echo Running core:text/i18n tests -echo --- -%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe || exit /b - -echo --- -echo Running core:net -echo --- -%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe || exit /b - -echo --- -echo Running core:slice tests -echo --- -%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b - -echo --- -echo Running core:container tests -echo --- -%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe || exit /b - -echo --- -echo Running core:thread tests -echo --- -%PATH_TO_ODIN% run thread %COMMON% %COLLECTION% -out:test_core_thread.exe || exit /b - -echo --- -echo Running core:runtime tests -echo --- -%PATH_TO_ODIN% run runtime %COMMON% %COLLECTION% -out:test_core_runtime.exe || exit /b +@echo off +set COMMON=-no-bounds-check -vet -strict-style +set COLLECTION=-collection:tests=.. +set PATH_TO_ODIN==..\..\odin +python3 download_assets.py +echo --- +echo Running core:image tests +echo --- +%PATH_TO_ODIN% run image %COMMON% -out:test_core_image.exe || exit /b + +echo --- +echo Running core:compress tests +echo --- +%PATH_TO_ODIN% run compress %COMMON% -out:test_core_compress.exe || exit /b + +echo --- +echo Running core:strings tests +echo --- +%PATH_TO_ODIN% run strings %COMMON% -out:test_core_strings.exe || exit /b + +echo --- +echo Running core:hash tests +echo --- +%PATH_TO_ODIN% run hash %COMMON% -o:size -out:test_core_hash.exe || exit /b + +echo --- +echo Running core:odin tests +echo --- +%PATH_TO_ODIN% run odin %COMMON% -o:size -out:test_core_odin.exe || exit /b + +echo --- +echo Running core:crypto hash tests +echo --- +%PATH_TO_ODIN% run crypto %COMMON% -out:test_crypto_hash.exe || exit /b + +echo --- +echo Running core:encoding tests +echo --- +rem %PATH_TO_ODIN% run encoding/hxa %COMMON% %COLLECTION% -out:test_hxa.exe || exit /b +%PATH_TO_ODIN% run encoding/json %COMMON% -out:test_json.exe || exit /b +%PATH_TO_ODIN% run encoding/varint %COMMON% -out:test_varint.exe || exit /b +%PATH_TO_ODIN% run encoding/xml %COMMON% -out:test_xml.exe || exit /b + +echo --- +echo Running core:math/noise tests +echo --- +%PATH_TO_ODIN% run math/noise %COMMON% -out:test_noise.exe || exit /b + +echo --- +echo Running core:math tests +echo --- +%PATH_TO_ODIN% run math %COMMON% %COLLECTION% -out:test_core_math.exe || exit /b + +echo --- +echo Running core:math/linalg/glsl tests +echo --- +%PATH_TO_ODIN% run math/linalg/glsl %COMMON% %COLLECTION% -out:test_linalg_glsl.exe || exit /b + +echo --- +echo Running core:path/filepath tests +echo --- +%PATH_TO_ODIN% run path/filepath %COMMON% %COLLECTION% -out:test_core_filepath.exe || exit /b + +echo --- +echo Running core:reflect tests +echo --- +%PATH_TO_ODIN% run reflect %COMMON% %COLLECTION% -out:test_core_reflect.exe || exit /b + +echo --- +echo Running core:slice tests +echo --- +%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b + +echo --- +echo Running core:text/i18n tests +echo --- +%PATH_TO_ODIN% run text\i18n %COMMON% -out:test_core_i18n.exe || exit /b + +echo --- +echo Running core:net +echo --- +%PATH_TO_ODIN% run net %COMMON% -out:test_core_net.exe || exit /b + +echo --- +echo Running core:slice tests +echo --- +%PATH_TO_ODIN% run slice %COMMON% -out:test_core_slice.exe || exit /b + +echo --- +echo Running core:container tests +echo --- +%PATH_TO_ODIN% run container %COMMON% %COLLECTION% -out:test_core_container.exe || exit /b + +echo --- +echo Running core:thread tests +echo --- +%PATH_TO_ODIN% run thread %COMMON% %COLLECTION% -out:test_core_thread.exe || exit /b + +echo --- +echo Running core:runtime tests +echo --- +%PATH_TO_ODIN% run runtime %COMMON% %COLLECTION% -out:test_core_runtime.exe || exit /b diff --git a/tests/core/encoding/xml/test_core_xml.odin b/tests/core/encoding/xml/test_core_xml.odin index 7a900659a..c62033491 100644 --- a/tests/core/encoding/xml/test_core_xml.odin +++ b/tests/core/encoding/xml/test_core_xml.odin @@ -159,7 +159,7 @@ TESTS :: []TEST{ }, /* - Parse the 8.2 MiB unicode.xml for good measure. + Parse the 9.08 MiB unicode.xml for good measure. */ { filename = "XML/unicode.xml", @@ -170,7 +170,7 @@ TESTS :: []TEST{ expected_doctype = "", }, err = .None, - crc32 = 0x420dbac5, + crc32 = 0x0b6100ab, }, }