diff options
author | Markus Unterwaditzer <markus@unterwaditzer.net> | 2021-11-26 18:38:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-26 18:38:58 +0100 |
commit | dced8066f77f570dd3e396ec3570c71aa86c454e (patch) | |
tree | 2fb81d5f411319948c135dfaaa78bc5da6783621 | |
parent | 029c13426634e58adb3996c9a5e4d79c3e8437f2 (diff) |
Read html from io::BufRead (#8)
-rw-r--r-- | .github/workflows/test.yml | 8 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | generate_entities.py | 8 | ||||
-rw-r--r-- | src/entities.rs | 13394 | ||||
-rw-r--r-- | src/lib.rs | 895 | ||||
-rw-r--r-- | src/never.rs | 24 | ||||
-rw-r--r-- | src/reader.rs | 151 | ||||
-rw-r--r-- | tests/test_html5lib.rs | 15 |
8 files changed, 7352 insertions, 7145 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c94bcf2..175f3d8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,6 +1,10 @@ -on: [push, pull_request] +name: Rust -name: Continuous integration +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] jobs: check: @@ -12,7 +12,7 @@ use html5gum::{Tokenizer, Token}; let html = "<title >hello world</title>"; let mut new_html = String::new(); -for token in Tokenizer::new(html) { +for token in Tokenizer::new(html).infallible() { match token { Token::StartTag(tag) => { write!(new_html, "<{}>", tag.name).unwrap(); diff --git a/generate_entities.py b/generate_entities.py index 1a1407d..449146c 100644 --- a/generate_entities.py +++ b/generate_entities.py @@ -18,7 +18,7 @@ pub struct CharRef { pub characters: &'static str, } -pub fn try_read_character_reference(first_char: char, mut try_read: impl FnMut(&str) -> bool) -> Option<CharRef> { +pub fn try_read_character_reference<E>(first_char: char, mut try_read: impl FnMut(&str) -> Result<bool, E>) -> Result<Option<CharRef>, E> { """) for key, value in key_and_value: @@ -31,9 +31,9 @@ pub fn try_read_character_reference(first_char: char, mut try_read: impl FnMut(& first_char = key[0] key = key[1:] f.write(""" - if first_char == '%(first_char)s' && try_read("%(key)s") { - return Some(CharRef { name: "%(key)s", characters: "%(characters)s" }); + if first_char == '%(first_char)s' && try_read("%(key)s")? { + return Ok(Some(CharRef { name: "%(key)s", characters: "%(characters)s" })); } """ % {"key": key, "characters": characters, "first_char": first_char}) - f.write(" None }"); + f.write(" Ok(None) }"); diff --git a/src/entities.rs b/src/entities.rs index 1ab3ffb..953af54 100644 --- a/src/entities.rs +++ b/src/entities.rs @@ -9,15625 +9,15625 @@ pub struct CharRef { pub characters: &'static str, } -pub fn try_read_character_reference( +pub fn try_read_character_reference<E>( first_char: char, - mut try_read: impl FnMut(&str) -> bool, -) -> Option<CharRef> { - if first_char == 'C' && try_read("ounterClockwiseContourIntegral;") { - return Some(CharRef { + mut try_read: impl FnMut(&str) -> Result<bool, E>, +) -> Result<Option<CharRef>, E> { + if first_char == 'C' && try_read("ounterClockwiseContourIntegral;")? { + return Ok(Some(CharRef { name: "ounterClockwiseContourIntegral;", characters: "\u{2233}", - }); + })); } - if first_char == 'C' && try_read("lockwiseContourIntegral;") { - return Some(CharRef { + if first_char == 'C' && try_read("lockwiseContourIntegral;")? { + return Ok(Some(CharRef { name: "lockwiseContourIntegral;", characters: "\u{2232}", - }); + })); } - if first_char == 'D' && try_read("oubleLongLeftRightArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLongLeftRightArrow;")? { + return Ok(Some(CharRef { name: "oubleLongLeftRightArrow;", characters: "\u{27fa}", - }); + })); } - if first_char == 'N' && try_read("otNestedGreaterGreater;") { - return Some(CharRef { + if first_char == 'N' && try_read("otNestedGreaterGreater;")? { + return Ok(Some(CharRef { name: "otNestedGreaterGreater;", characters: "\u{2aa2}\u{338}", - }); + })); } - if first_char == 'D' && try_read("iacriticalDoubleAcute;") { - return Some(CharRef { + if first_char == 'D' && try_read("iacriticalDoubleAcute;")? { + return Ok(Some(CharRef { name: "iacriticalDoubleAcute;", characters: "\u{2dd}", - }); + })); } - if first_char == 'N' && try_read("otSquareSupersetEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSquareSupersetEqual;")? { + return Ok(Some(CharRef { name: "otSquareSupersetEqual;", characters: "\u{22e3}", - }); + })); } - if first_char == 'C' && try_read("loseCurlyDoubleQuote;") { - return Some(CharRef { + if first_char == 'C' && try_read("loseCurlyDoubleQuote;")? { + return Ok(Some(CharRef { name: "loseCurlyDoubleQuote;", characters: "\u{201d}", - }); + })); } - if first_char == 'D' && try_read("oubleContourIntegral;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleContourIntegral;")? { + return Ok(Some(CharRef { name: "oubleContourIntegral;", characters: "\u{222f}", - }); + })); } - if first_char == 'F' && try_read("illedVerySmallSquare;") { - return Some(CharRef { + if first_char == 'F' && try_read("illedVerySmallSquare;")? { + return Ok(Some(CharRef { name: "illedVerySmallSquare;", characters: "\u{25aa}", - }); + })); } - if first_char == 'N' && try_read("egativeVeryThinSpace;") { - return Some(CharRef { + if first_char == 'N' && try_read("egativeVeryThinSpace;")? { + return Ok(Some(CharRef { name: "egativeVeryThinSpace;", characters: "\u{200b}", - }); + })); } - if first_char == 'N' && try_read("otPrecedesSlantEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otPrecedesSlantEqual;")? { + return Ok(Some(CharRef { name: "otPrecedesSlantEqual;", characters: "\u{22e0}", - }); + })); } - if first_char == 'N' && try_read("otRightTriangleEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otRightTriangleEqual;")? { + return Ok(Some(CharRef { name: "otRightTriangleEqual;", characters: "\u{22ed}", - }); + })); } - if first_char == 'N' && try_read("otSucceedsSlantEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSucceedsSlantEqual;")? { + return Ok(Some(CharRef { name: "otSucceedsSlantEqual;", characters: "\u{22e1}", - }); + })); } - if first_char == 'C' && try_read("apitalDifferentialD;") { - return Some(CharRef { + if first_char == 'C' && try_read("apitalDifferentialD;")? { + return Ok(Some(CharRef { name: "apitalDifferentialD;", characters: "\u{2145}", - }); + })); } - if first_char == 'D' && try_read("oubleLeftRightArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLeftRightArrow;")? { + return Ok(Some(CharRef { name: "oubleLeftRightArrow;", characters: "\u{21d4}", - }); + })); } - if first_char == 'D' && try_read("oubleLongRightArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLongRightArrow;")? { + return Ok(Some(CharRef { name: "oubleLongRightArrow;", characters: "\u{27f9}", - }); + })); } - if first_char == 'E' && try_read("mptyVerySmallSquare;") { - return Some(CharRef { + if first_char == 'E' && try_read("mptyVerySmallSquare;")? { + return Ok(Some(CharRef { name: "mptyVerySmallSquare;", characters: "\u{25ab}", - }); + })); } - if first_char == 'N' && try_read("estedGreaterGreater;") { - return Some(CharRef { + if first_char == 'N' && try_read("estedGreaterGreater;")? { + return Ok(Some(CharRef { name: "estedGreaterGreater;", characters: "\u{226b}", - }); + })); } - if first_char == 'N' && try_read("otDoubleVerticalBar;") { - return Some(CharRef { + if first_char == 'N' && try_read("otDoubleVerticalBar;")? { + return Ok(Some(CharRef { name: "otDoubleVerticalBar;", characters: "\u{2226}", - }); + })); } - if first_char == 'N' && try_read("otGreaterSlantEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterSlantEqual;")? { + return Ok(Some(CharRef { name: "otGreaterSlantEqual;", characters: "\u{2a7e}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otLeftTriangleEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLeftTriangleEqual;")? { + return Ok(Some(CharRef { name: "otLeftTriangleEqual;", characters: "\u{22ec}", - }); + })); } - if first_char == 'N' && try_read("otSquareSubsetEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSquareSubsetEqual;")? { + return Ok(Some(CharRef { name: "otSquareSubsetEqual;", characters: "\u{22e2}", - }); + })); } - if first_char == 'O' && try_read("penCurlyDoubleQuote;") { - return Some(CharRef { + if first_char == 'O' && try_read("penCurlyDoubleQuote;")? { + return Ok(Some(CharRef { name: "penCurlyDoubleQuote;", characters: "\u{201c}", - }); + })); } - if first_char == 'R' && try_read("everseUpEquilibrium;") { - return Some(CharRef { + if first_char == 'R' && try_read("everseUpEquilibrium;")? { + return Ok(Some(CharRef { name: "everseUpEquilibrium;", characters: "\u{296f}", - }); + })); } - if first_char == 'D' && try_read("oubleLongLeftArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLongLeftArrow;")? { + return Ok(Some(CharRef { name: "oubleLongLeftArrow;", characters: "\u{27f8}", - }); + })); } - if first_char == 'D' && try_read("ownLeftRightVector;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownLeftRightVector;")? { + return Ok(Some(CharRef { name: "ownLeftRightVector;", characters: "\u{2950}", - }); + })); } - if first_char == 'L' && try_read("eftArrowRightArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftArrowRightArrow;")? { + return Ok(Some(CharRef { name: "eftArrowRightArrow;", characters: "\u{21c6}", - }); + })); } - if first_char == 'N' && try_read("egativeMediumSpace;") { - return Some(CharRef { + if first_char == 'N' && try_read("egativeMediumSpace;")? { + return Ok(Some(CharRef { name: "egativeMediumSpace;", characters: "\u{200b}", - }); + })); } - if first_char == 'N' && try_read("otGreaterFullEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterFullEqual;")? { + return Ok(Some(CharRef { name: "otGreaterFullEqual;", characters: "\u{2267}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otRightTriangleBar;") { - return Some(CharRef { + if first_char == 'N' && try_read("otRightTriangleBar;")? { + return Ok(Some(CharRef { name: "otRightTriangleBar;", characters: "\u{29d0}\u{338}", - }); + })); } - if first_char == 'R' && try_read("ightArrowLeftArrow;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightArrowLeftArrow;")? { + return Ok(Some(CharRef { name: "ightArrowLeftArrow;", characters: "\u{21c4}", - }); + })); } - if first_char == 'S' && try_read("quareSupersetEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareSupersetEqual;")? { + return Ok(Some(CharRef { name: "quareSupersetEqual;", characters: "\u{2292}", - }); + })); } - if first_char == 'l' && try_read("eftrightsquigarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftrightsquigarrow;")? { + return Ok(Some(CharRef { name: "eftrightsquigarrow;", characters: "\u{21ad}", - }); + })); } - if first_char == 'D' && try_read("ownRightTeeVector;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownRightTeeVector;")? { + return Ok(Some(CharRef { name: "ownRightTeeVector;", characters: "\u{295f}", - }); + })); } - if first_char == 'D' && try_read("ownRightVectorBar;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownRightVectorBar;")? { + return Ok(Some(CharRef { name: "ownRightVectorBar;", characters: "\u{2957}", - }); + })); } - if first_char == 'L' && try_read("ongLeftRightArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongLeftRightArrow;")? { + return Ok(Some(CharRef { name: "ongLeftRightArrow;", characters: "\u{27f7}", - }); + })); } - if first_char == 'L' && try_read("ongleftrightarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongleftrightarrow;")? { + return Ok(Some(CharRef { name: "ongleftrightarrow;", characters: "\u{27fa}", - }); + })); } - if first_char == 'N' && try_read("egativeThickSpace;") { - return Some(CharRef { + if first_char == 'N' && try_read("egativeThickSpace;")? { + return Ok(Some(CharRef { name: "egativeThickSpace;", characters: "\u{200b}", - }); + })); } - if first_char == 'N' && try_read("otLeftTriangleBar;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLeftTriangleBar;")? { + return Ok(Some(CharRef { name: "otLeftTriangleBar;", characters: "\u{29cf}\u{338}", - }); + })); } - if first_char == 'P' && try_read("recedesSlantEqual;") { - return Some(CharRef { + if first_char == 'P' && try_read("recedesSlantEqual;")? { + return Ok(Some(CharRef { name: "recedesSlantEqual;", characters: "\u{227c}", - }); + })); } - if first_char == 'R' && try_read("everseEquilibrium;") { - return Some(CharRef { + if first_char == 'R' && try_read("everseEquilibrium;")? { + return Ok(Some(CharRef { name: "everseEquilibrium;", characters: "\u{21cb}", - }); + })); } - if first_char == 'R' && try_read("ightDoubleBracket;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightDoubleBracket;")? { + return Ok(Some(CharRef { name: "ightDoubleBracket;", characters: "\u{27e7}", - }); + })); } - if first_char == 'R' && try_read("ightDownTeeVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightDownTeeVector;")? { + return Ok(Some(CharRef { name: "ightDownTeeVector;", characters: "\u{295d}", - }); + })); } - if first_char == 'R' && try_read("ightDownVectorBar;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightDownVectorBar;")? { + return Ok(Some(CharRef { name: "ightDownVectorBar;", characters: "\u{2955}", - }); + })); } - if first_char == 'R' && try_read("ightTriangleEqual;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTriangleEqual;")? { + return Ok(Some(CharRef { name: "ightTriangleEqual;", characters: "\u{22b5}", - }); + })); } - if first_char == 'S' && try_read("quareIntersection;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareIntersection;")? { + return Ok(Some(CharRef { name: "quareIntersection;", characters: "\u{2293}", - }); + })); } - if first_char == 'S' && try_read("ucceedsSlantEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("ucceedsSlantEqual;")? { + return Ok(Some(CharRef { name: "ucceedsSlantEqual;", characters: "\u{227d}", - }); + })); } - if first_char == 'b' && try_read("lacktriangleright;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacktriangleright;")? { + return Ok(Some(CharRef { name: "lacktriangleright;", characters: "\u{25b8}", - }); + })); } - if first_char == 'l' && try_read("ongleftrightarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("ongleftrightarrow;")? { + return Ok(Some(CharRef { name: "ongleftrightarrow;", characters: "\u{27f7}", - }); + })); } - if first_char == 'D' && try_read("oubleUpDownArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleUpDownArrow;")? { + return Ok(Some(CharRef { name: "oubleUpDownArrow;", characters: "\u{21d5}", - }); + })); } - if first_char == 'D' && try_read("oubleVerticalBar;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleVerticalBar;")? { + return Ok(Some(CharRef { name: "oubleVerticalBar;", characters: "\u{2225}", - }); + })); } - if first_char == 'D' && try_read("ownLeftTeeVector;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownLeftTeeVector;")? { + return Ok(Some(CharRef { name: "ownLeftTeeVector;", characters: "\u{295e}", - }); + })); } - if first_char == 'D' && try_read("ownLeftVectorBar;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownLeftVectorBar;")? { + return Ok(Some(CharRef { name: "ownLeftVectorBar;", characters: "\u{2956}", - }); + })); } - if first_char == 'F' && try_read("illedSmallSquare;") { - return Some(CharRef { + if first_char == 'F' && try_read("illedSmallSquare;")? { + return Ok(Some(CharRef { name: "illedSmallSquare;", characters: "\u{25fc}", - }); + })); } - if first_char == 'G' && try_read("reaterSlantEqual;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterSlantEqual;")? { + return Ok(Some(CharRef { name: "reaterSlantEqual;", characters: "\u{2a7e}", - }); + })); } - if first_char == 'L' && try_read("eftDoubleBracket;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftDoubleBracket;")? { + return Ok(Some(CharRef { name: "eftDoubleBracket;", characters: "\u{27e6}", - }); + })); } - if first_char == 'L' && try_read("eftDownTeeVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftDownTeeVector;")? { + return Ok(Some(CharRef { name: "eftDownTeeVector;", characters: "\u{2961}", - }); + })); } - if first_char == 'L' && try_read("eftDownVectorBar;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftDownVectorBar;")? { + return Ok(Some(CharRef { name: "eftDownVectorBar;", characters: "\u{2959}", - }); + })); } - if first_char == 'L' && try_read("eftTriangleEqual;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTriangleEqual;")? { + return Ok(Some(CharRef { name: "eftTriangleEqual;", characters: "\u{22b4}", - }); + })); } - if first_char == 'N' && try_read("egativeThinSpace;") { - return Some(CharRef { + if first_char == 'N' && try_read("egativeThinSpace;")? { + return Ok(Some(CharRef { name: "egativeThinSpace;", characters: "\u{200b}", - }); + })); } - if first_char == 'N' && try_read("otGreaterGreater;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterGreater;")? { + return Ok(Some(CharRef { name: "otGreaterGreater;", characters: "\u{226b}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otLessSlantEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLessSlantEqual;")? { + return Ok(Some(CharRef { name: "otLessSlantEqual;", characters: "\u{2a7d}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otNestedLessLess;") { - return Some(CharRef { + if first_char == 'N' && try_read("otNestedLessLess;")? { + return Ok(Some(CharRef { name: "otNestedLessLess;", characters: "\u{2aa1}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otReverseElement;") { - return Some(CharRef { + if first_char == 'N' && try_read("otReverseElement;")? { + return Ok(Some(CharRef { name: "otReverseElement;", characters: "\u{220c}", - }); + })); } - if first_char == 'N' && try_read("otSquareSuperset;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSquareSuperset;")? { + return Ok(Some(CharRef { name: "otSquareSuperset;", characters: "\u{2290}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otTildeFullEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otTildeFullEqual;")? { + return Ok(Some(CharRef { name: "otTildeFullEqual;", characters: "\u{2247}", - }); + })); } - if first_char == 'R' && try_read("ightAngleBracket;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightAngleBracket;")? { + return Ok(Some(CharRef { name: "ightAngleBracket;", characters: "\u{27e9}", - }); + })); } - if first_char == 'R' && try_read("ightUpDownVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightUpDownVector;")? { + return Ok(Some(CharRef { name: "ightUpDownVector;", characters: "\u{294f}", - }); + })); } - if first_char == 'S' && try_read("quareSubsetEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareSubsetEqual;")? { + return Ok(Some(CharRef { name: "quareSubsetEqual;", characters: "\u{2291}", - }); + })); } - if first_char == 'V' && try_read("erticalSeparator;") { - return Some(CharRef { + if first_char == 'V' && try_read("erticalSeparator;")? { + return Ok(Some(CharRef { name: "erticalSeparator;", characters: "\u{2758}", - }); + })); } - if first_char == 'b' && try_read("lacktriangledown;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacktriangledown;")? { + return Ok(Some(CharRef { name: "lacktriangledown;", characters: "\u{25be}", - }); + })); } - if first_char == 'b' && try_read("lacktriangleleft;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacktriangleleft;")? { + return Ok(Some(CharRef { name: "lacktriangleleft;", characters: "\u{25c2}", - }); + })); } - if first_char == 'l' && try_read("eftrightharpoons;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftrightharpoons;")? { + return Ok(Some(CharRef { name: "eftrightharpoons;", characters: "\u{21cb}", - }); + })); } - if first_char == 'r' && try_read("ightleftharpoons;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightleftharpoons;")? { + return Ok(Some(CharRef { name: "ightleftharpoons;", characters: "\u{21cc}", - }); + })); } - if first_char == 't' && try_read("woheadrightarrow;") { - return Some(CharRef { + if first_char == 't' && try_read("woheadrightarrow;")? { + return Ok(Some(CharRef { name: "woheadrightarrow;", characters: "\u{21a0}", - }); + })); } - if first_char == 'D' && try_read("iacriticalAcute;") { - return Some(CharRef { + if first_char == 'D' && try_read("iacriticalAcute;")? { + return Ok(Some(CharRef { name: "iacriticalAcute;", characters: "\u{b4}", - }); + })); } - if first_char == 'D' && try_read("iacriticalGrave;") { - return Some(CharRef { + if first_char == 'D' && try_read("iacriticalGrave;")? { + return Ok(Some(CharRef { name: "iacriticalGrave;", characters: "\u{60}", - }); + })); } - if first_char == 'D' && try_read("iacriticalTilde;") { - return Some(CharRef { + if first_char == 'D' && try_read("iacriticalTilde;")? { + return Ok(Some(CharRef { name: "iacriticalTilde;", characters: "\u{2dc}", - }); + })); } - if first_char == 'D' && try_read("oubleRightArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleRightArrow;")? { + return Ok(Some(CharRef { name: "oubleRightArrow;", characters: "\u{21d2}", - }); + })); } - if first_char == 'D' && try_read("ownArrowUpArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownArrowUpArrow;")? { + return Ok(Some(CharRef { name: "ownArrowUpArrow;", characters: "\u{21f5}", - }); + })); } - if first_char == 'E' && try_read("mptySmallSquare;") { - return Some(CharRef { + if first_char == 'E' && try_read("mptySmallSquare;")? { + return Ok(Some(CharRef { name: "mptySmallSquare;", characters: "\u{25fb}", - }); + })); } - if first_char == 'G' && try_read("reaterEqualLess;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterEqualLess;")? { + return Ok(Some(CharRef { name: "reaterEqualLess;", characters: "\u{22db}", - }); + })); } - if first_char == 'G' && try_read("reaterFullEqual;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterFullEqual;")? { + return Ok(Some(CharRef { name: "reaterFullEqual;", characters: "\u{2267}", - }); + })); } - if first_char == 'L' && try_read("eftAngleBracket;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftAngleBracket;")? { + return Ok(Some(CharRef { name: "eftAngleBracket;", characters: "\u{27e8}", - }); + })); } - if first_char == 'L' && try_read("eftUpDownVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftUpDownVector;")? { + return Ok(Some(CharRef { name: "eftUpDownVector;", characters: "\u{2951}", - }); + })); } - if first_char == 'L' && try_read("essEqualGreater;") { - return Some(CharRef { + if first_char == 'L' && try_read("essEqualGreater;")? { + return Ok(Some(CharRef { name: "essEqualGreater;", characters: "\u{22da}", - }); + })); } - if first_char == 'N' && try_read("onBreakingSpace;") { - return Some(CharRef { + if first_char == 'N' && try_read("onBreakingSpace;")? { + return Ok(Some(CharRef { name: "onBreakingSpace;", characters: "\u{a0}", - }); + })); } - if first_char == 'N' && try_read("otPrecedesEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otPrecedesEqual;")? { + return Ok(Some(CharRef { name: "otPrecedesEqual;", characters: "\u{2aaf}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otRightTriangle;") { - return Some(CharRef { + if first_char == 'N' && try_read("otRightTriangle;")? { + return Ok(Some(CharRef { name: "otRightTriangle;", characters: "\u{22eb}", - }); + })); } - if first_char == 'N' && try_read("otSucceedsEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSucceedsEqual;")? { + return Ok(Some(CharRef { name: "otSucceedsEqual;", characters: "\u{2ab0}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otSucceedsTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSucceedsTilde;")? { + return Ok(Some(CharRef { name: "otSucceedsTilde;", characters: "\u{227f}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otSupersetEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSupersetEqual;")? { + return Ok(Some(CharRef { name: "otSupersetEqual;", characters: "\u{2289}", - }); + })); } - if first_char == 'R' && try_read("ightTriangleBar;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTriangleBar;")? { + return Ok(Some(CharRef { name: "ightTriangleBar;", characters: "\u{29d0}", - }); + })); } - if first_char == 'R' && try_read("ightUpTeeVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightUpTeeVector;")? { + return Ok(Some(CharRef { name: "ightUpTeeVector;", characters: "\u{295c}", - }); + })); } - if first_char == 'R' && try_read("ightUpVectorBar;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightUpVectorBar;")? { + return Ok(Some(CharRef { name: "ightUpVectorBar;", characters: "\u{2954}", - }); + })); } - if first_char == 'U' && try_read("nderParenthesis;") { - return Some(CharRef { + if first_char == 'U' && try_read("nderParenthesis;")? { + return Ok(Some(CharRef { name: "nderParenthesis;", characters: "\u{23dd}", - }); + })); } - if first_char == 'U' && try_read("pArrowDownArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pArrowDownArrow;")? { + return Ok(Some(CharRef { name: "pArrowDownArrow;", characters: "\u{21c5}", - }); + })); } - if first_char == 'c' && try_read("irclearrowright;") { - return Some(CharRef { + if first_char == 'c' && try_read("irclearrowright;")? { + return Ok(Some(CharRef { name: "irclearrowright;", characters: "\u{21bb}", - }); + })); } - if first_char == 'd' && try_read("ownharpoonright;") { - return Some(CharRef { + if first_char == 'd' && try_read("ownharpoonright;")? { + return Ok(Some(CharRef { name: "ownharpoonright;", characters: "\u{21c2}", - }); + })); } - if first_char == 'n' && try_read("trianglerighteq;") { - return Some(CharRef { + if first_char == 'n' && try_read("trianglerighteq;")? { + return Ok(Some(CharRef { name: "trianglerighteq;", characters: "\u{22ed}", - }); + })); } - if first_char == 'r' && try_read("ightharpoondown;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightharpoondown;")? { + return Ok(Some(CharRef { name: "ightharpoondown;", characters: "\u{21c1}", - }); + })); } - if first_char == 'r' && try_read("ightrightarrows;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightrightarrows;")? { + return Ok(Some(CharRef { name: "ightrightarrows;", characters: "\u{21c9}", - }); + })); } - if first_char == 't' && try_read("woheadleftarrow;") { - return Some(CharRef { + if first_char == 't' && try_read("woheadleftarrow;")? { + return Ok(Some(CharRef { name: "woheadleftarrow;", characters: "\u{219e}", - }); + })); } - if first_char == 'v' && try_read("artriangleright;") { - return Some(CharRef { + if first_char == 'v' && try_read("artriangleright;")? { + return Ok(Some(CharRef { name: "artriangleright;", characters: "\u{22b3}", - }); + })); } - if first_char == 'C' && try_read("loseCurlyQuote;") { - return Some(CharRef { + if first_char == 'C' && try_read("loseCurlyQuote;")? { + return Ok(Some(CharRef { name: "loseCurlyQuote;", characters: "\u{2019}", - }); + })); } - if first_char == 'C' && try_read("ontourIntegral;") { - return Some(CharRef { + if first_char == 'C' && try_read("ontourIntegral;")? { + return Ok(Some(CharRef { name: "ontourIntegral;", characters: "\u{222e}", - }); + })); } - if first_char == 'D' && try_read("oubleDownArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleDownArrow;")? { + return Ok(Some(CharRef { name: "oubleDownArrow;", characters: "\u{21d3}", - }); + })); } - if first_char == 'D' && try_read("oubleLeftArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLeftArrow;")? { + return Ok(Some(CharRef { name: "oubleLeftArrow;", characters: "\u{21d0}", - }); + })); } - if first_char == 'D' && try_read("ownRightVector;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownRightVector;")? { + return Ok(Some(CharRef { name: "ownRightVector;", characters: "\u{21c1}", - }); + })); } - if first_char == 'L' && try_read("eftRightVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftRightVector;")? { + return Ok(Some(CharRef { name: "eftRightVector;", characters: "\u{294e}", - }); + })); } - if first_char == 'L' && try_read("eftTriangleBar;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTriangleBar;")? { + return Ok(Some(CharRef { name: "eftTriangleBar;", characters: "\u{29cf}", - }); + })); } - if first_char == 'L' && try_read("eftUpTeeVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftUpTeeVector;")? { + return Ok(Some(CharRef { name: "eftUpTeeVector;", characters: "\u{2960}", - }); + })); } - if first_char == 'L' && try_read("eftUpVectorBar;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftUpVectorBar;")? { + return Ok(Some(CharRef { name: "eftUpVectorBar;", characters: "\u{2958}", - }); + })); } - if first_char == 'L' && try_read("owerRightArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("owerRightArrow;")? { + return Ok(Some(CharRef { name: "owerRightArrow;", characters: "\u{2198}", - }); + })); } - if first_char == 'N' && try_read("otGreaterEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterEqual;")? { + return Ok(Some(CharRef { name: "otGreaterEqual;", characters: "\u{2271}", - }); + })); } - if first_char == 'N' && try_read("otGreaterTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterTilde;")? { + return Ok(Some(CharRef { name: "otGreaterTilde;", characters: "\u{2275}", - }); + })); } - if first_char == 'N' && try_read("otHumpDownHump;") { - return Some(CharRef { + if first_char == 'N' && try_read("otHumpDownHump;")? { + return Ok(Some(CharRef { name: "otHumpDownHump;", characters: "\u{224e}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otLeftTriangle;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLeftTriangle;")? { + return Ok(Some(CharRef { name: "otLeftTriangle;", characters: "\u{22ea}", - }); + })); } - if first_char == 'N' && try_read("otSquareSubset;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSquareSubset;")? { + return Ok(Some(CharRef { name: "otSquareSubset;", characters: "\u{228f}\u{338}", - }); + })); } - if first_char == 'O' && try_read("verParenthesis;") { - return Some(CharRef { + if first_char == 'O' && try_read("verParenthesis;")? { + return Ok(Some(CharRef { name: "verParenthesis;", characters: "\u{23dc}", - }); + })); } - if first_char == 'R' && try_read("ightDownVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightDownVector;")? { + return Ok(Some(CharRef { name: "ightDownVector;", characters: "\u{21c2}", - }); + })); } - if first_char == 'S' && try_read("hortRightArrow;") { - return Some(CharRef { + if first_char == 'S' && try_read("hortRightArrow;")? { + return Ok(Some(CharRef { name: "hortRightArrow;", characters: "\u{2192}", - }); + })); } - if first_char == 'U' && try_read("pperRightArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pperRightArrow;")? { + return Ok(Some(CharRef { name: "pperRightArrow;", characters: "\u{2197}", - }); + })); } - if first_char == 'b' && try_read("igtriangledown;") { - return Some(CharRef { + if first_char == 'b' && try_read("igtriangledown;")? { + return Ok(Some(CharRef { name: "igtriangledown;", characters: "\u{25bd}", - }); + })); } - if first_char == 'c' && try_read("irclearrowleft;") { - return Some(CharRef { + if first_char == 'c' && try_read("irclearrowleft;")? { + return Ok(Some(CharRef { name: "irclearrowleft;", characters: "\u{21ba}", - }); + })); } - if first_char == 'c' && try_read("urvearrowright;") { - return Some(CharRef { + if first_char == 'c' && try_read("urvearrowright;")? { + return Ok(Some(CharRef { name: "urvearrowright;", characters: "\u{21b7}", - }); + })); } - if first_char == 'd' && try_read("ownharpoonleft;") { - return Some(CharRef { + if first_char == 'd' && try_read("ownharpoonleft;")? { + return Ok(Some(CharRef { name: "ownharpoonleft;", characters: "\u{21c3}", - }); + })); } - if first_char == 'l' && try_read("eftharpoondown;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftharpoondown;")? { + return Ok(Some(CharRef { name: "eftharpoondown;", characters: "\u{21bd}", - }); + })); } - if first_char == 'l' && try_read("eftrightarrows;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftrightarrows;")? { + return Ok(Some(CharRef { name: "eftrightarrows;", characters: "\u{21c6}", - }); + })); } - if first_char == 'n' && try_read("Leftrightarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("Leftrightarrow;")? { + return Ok(Some(CharRef { name: "Leftrightarrow;", characters: "\u{21ce}", - }); + })); } - if first_char == 'n' && try_read("leftrightarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("leftrightarrow;")? { + return Ok(Some(CharRef { name: "leftrightarrow;", characters: "\u{21ae}", - }); + })); } - if first_char == 'n' && try_read("trianglelefteq;") { - return Some(CharRef { + if first_char == 'n' && try_read("trianglelefteq;")? { + return Ok(Some(CharRef { name: "trianglelefteq;", characters: "\u{22ec}", - }); + })); } - if first_char == 'r' && try_read("ightleftarrows;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightleftarrows;")? { + return Ok(Some(CharRef { name: "ightleftarrows;", characters: "\u{21c4}", - }); + })); } - if first_char == 'r' && try_read("ightsquigarrow;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightsquigarrow;")? { + return Ok(Some(CharRef { name: "ightsquigarrow;", characters: "\u{219d}", - }); + })); } - if first_char == 'r' && try_read("ightthreetimes;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightthreetimes;")? { + return Ok(Some(CharRef { name: "ightthreetimes;", characters: "\u{22cc}", - }); + })); } - if first_char == 's' && try_read("traightepsilon;") { - return Some(CharRef { + if first_char == 's' && try_read("traightepsilon;")? { + return Ok(Some(CharRef { name: "traightepsilon;", characters: "\u{3f5}", - }); + })); } - if first_char == 't' && try_read("rianglerighteq;") { - return Some(CharRef { + if first_char == 't' && try_read("rianglerighteq;")? { + return Ok(Some(CharRef { name: "rianglerighteq;", characters: "\u{22b5}", - }); + })); } - if first_char == 'v' && try_read("artriangleleft;") { - return Some(CharRef { + if first_char == 'v' && try_read("artriangleleft;")? { + return Ok(Some(CharRef { name: "artriangleleft;", characters: "\u{22b2}", - }); + })); } - if first_char == 'D' && try_read("iacriticalDot;") { - return Some(CharRef { + if first_char == 'D' && try_read("iacriticalDot;")? { + return Ok(Some(CharRef { name: "iacriticalDot;", characters: "\u{2d9}", - }); + })); } - if first_char == 'D' && try_read("oubleRightTee;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleRightTee;")? { + return Ok(Some(CharRef { name: "oubleRightTee;", characters: "\u{22a8}", - }); + })); } - if first_char == 'D' && try_read("ownLeftVector;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownLeftVector;")? { + return Ok(Some(CharRef { name: "ownLeftVector;", characters: "\u{21bd}", - }); + })); } - if first_char == 'G' && try_read("reaterGreater;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterGreater;")? { + return Ok(Some(CharRef { name: "reaterGreater;", characters: "\u{2aa2}", - }); + })); } - if first_char == 'H' && try_read("orizontalLine;") { - return Some(CharRef { + if first_char == 'H' && try_read("orizontalLine;")? { + return Ok(Some(CharRef { name: "orizontalLine;", characters: "\u{2500}", - }); + })); } - if first_char == 'I' && try_read("nvisibleComma;") { - return Some(CharRef { + if first_char == 'I' && try_read("nvisibleComma;")? { + return Ok(Some(CharRef { name: "nvisibleComma;", characters: "\u{2063}", - }); + })); } - if first_char == 'I' && try_read("nvisibleTimes;") { - return Some(CharRef { + if first_char == 'I' && try_read("nvisibleTimes;")? { + return Ok(Some(CharRef { name: "nvisibleTimes;", characters: "\u{2062}", - }); + })); } - if first_char == 'L' && try_read("eftDownVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftDownVector;")? { + return Ok(Some(CharRef { name: "eftDownVector;", characters: "\u{21c3}", - }); + })); } - if first_char == 'L' && try_read("eftRightArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftRightArrow;")? { + return Ok(Some(CharRef { name: "eftRightArrow;", characters: "\u{2194}", - }); + })); } - if first_char == 'L' && try_read("eftrightarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftrightarrow;")? { + return Ok(Some(CharRef { name: "eftrightarrow;", characters: "\u{21d4}", - }); + })); } - if first_char == 'L' && try_read("essSlantEqual;") { - return Some(CharRef { + if first_char == 'L' && try_read("essSlantEqual;")? { + return Ok(Some(CharRef { name: "essSlantEqual;", characters: "\u{2a7d}", - }); + })); } - if first_char == 'L' && try_read("ongRightArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongRightArrow;")? { + return Ok(Some(CharRef { name: "ongRightArrow;", characters: "\u{27f6}", - }); + })); } - if first_char == 'L' && try_read("ongrightarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongrightarrow;")? { + return Ok(Some(CharRef { name: "ongrightarrow;", characters: "\u{27f9}", - }); + })); } - if first_char == 'L' && try_read("owerLeftArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("owerLeftArrow;")? { + return Ok(Some(CharRef { name: "owerLeftArrow;", characters: "\u{2199}", - }); + })); } - if first_char == 'N' && try_read("estedLessLess;") { - return Some(CharRef { + if first_char == 'N' && try_read("estedLessLess;")? { + return Ok(Some(CharRef { name: "estedLessLess;", characters: "\u{226a}", - }); + })); } - if first_char == 'N' && try_read("otGreaterLess;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreaterLess;")? { + return Ok(Some(CharRef { name: "otGreaterLess;", characters: "\u{2279}", - }); + })); } - if first_char == 'N' && try_read("otLessGreater;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLessGreater;")? { + return Ok(Some(CharRef { name: "otLessGreater;", characters: "\u{2278}", - }); + })); } - if first_char == 'N' && try_read("otSubsetEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSubsetEqual;")? { + return Ok(Some(CharRef { name: "otSubsetEqual;", characters: "\u{2288}", - }); + })); } - if first_char == 'N' && try_read("otVerticalBar;") { - return Some(CharRef { + if first_char == 'N' && try_read("otVerticalBar;")? { + return Ok(Some(CharRef { name: "otVerticalBar;", characters: "\u{2224}", - }); + })); } - if first_char == 'O' && try_read("penCurlyQuote;") { - return Some(CharRef { + if first_char == 'O' && try_read("penCurlyQuote;")? { + return Ok(Some(CharRef { name: "penCurlyQuote;", characters: "\u{2018}", - }); + })); } - if first_char == 'R' && try_read("everseElement;") { - return Some(CharRef { + if first_char == 'R' && try_read("everseElement;")? { + return Ok(Some(CharRef { name: "everseElement;", characters: "\u{220b}", - }); + })); } - if first_char == 'R' && try_read("ightTeeVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTeeVector;")? { + return Ok(Some(CharRef { name: "ightTeeVector;", characters: "\u{295b}", - }); + })); } - if first_char == 'R' && try_read("ightVectorBar;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightVectorBar;")? { + return Ok(Some(CharRef { name: "ightVectorBar;", characters: "\u{2953}", - }); + })); } - if first_char == 'S' && try_read("hortDownArrow;") { - return Some(CharRef { + if first_char == 'S' && try_read("hortDownArrow;")? { + return Ok(Some(CharRef { name: "hortDownArrow;", characters: "\u{2193}", - }); + })); } - if first_char == 'S' && try_read("hortLeftArrow;") { - return Some(CharRef { + if first_char == 'S' && try_read("hortLeftArrow;")? { + return Ok(Some(CharRef { name: "hortLeftArrow;", characters: "\u{2190}", - }); + })); } - if first_char == 'S' && try_read("quareSuperset;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareSuperset;")? { + return Ok(Some(CharRef { name: "quareSuperset;", characters: "\u{2290}", - }); + })); } - if first_char == 'T' && try_read("ildeFullEqual;") { - return Some(CharRef { + if first_char == 'T' && try_read("ildeFullEqual;")? { + return Ok(Some(CharRef { name: "ildeFullEqual;", characters: "\u{2245}", - }); + })); } - if first_char == 'U' && try_read("pperLeftArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pperLeftArrow;")? { + return Ok(Some(CharRef { name: "pperLeftArrow;", characters: "\u{2196}", - }); + })); } - if first_char == 'Z' && try_read("eroWidthSpace;") { - return Some(CharRef { + if first_char == 'Z' && try_read("eroWidthSpace;")? { + return Ok(Some(CharRef { name: "eroWidthSpace;", characters: "\u{200b}", - }); + })); } - if first_char == 'c' && try_read("urvearrowleft;") { - return Some(CharRef { + if first_char == 'c' && try_read("urvearrowleft;")? { + return Ok(Some(CharRef { name: "urvearrowleft;", characters: "\u{21b6}", - }); + })); } - if first_char == 'd' && try_read("oublebarwedge;") { - return Some(CharRef { + if first_char == 'd' && try_read("oublebarwedge;")? { + return Ok(Some(CharRef { name: "oublebarwedge;", characters: "\u{2306}", - }); + })); } - if first_char == 'd' && try_read("owndownarrows;") { - return Some(CharRef { + if first_char == 'd' && try_read("owndownarrows;")? { + return Ok(Some(CharRef { name: "owndownarrows;", characters: "\u{21ca}", - }); + })); } - if first_char == 'h' && try_read("ookrightarrow;") { - return Some(CharRef { + if first_char == 'h' && try_read("ookrightarrow;")? { + return Ok(Some(CharRef { name: "ookrightarrow;", characters: "\u{21aa}", - }); + })); } - if first_char == 'l' && try_read("eftleftarrows;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftleftarrows;")? { + return Ok(Some(CharRef { name: "eftleftarrows;", characters: "\u{21c7}", - }); + })); } - if first_char == 'l' && try_read("eftrightarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftrightarrow;")? { + return Ok(Some(CharRef { name: "eftrightarrow;", characters: "\u{2194}", - }); + })); } - if first_char == 'l' && try_read("eftthreetimes;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftthreetimes;")? { + return Ok(Some(CharRef { name: "eftthreetimes;", characters: "\u{22cb}", - }); + })); } - if first_char == 'l' && try_read("ongrightarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("ongrightarrow;")? { + return Ok(Some(CharRef { name: "ongrightarrow;", characters: "\u{27f6}", - }); + })); } - if first_char == 'l' && try_read("ooparrowright;") { - return Some(CharRef { + if first_char == 'l' && try_read("ooparrowright;")? { + return Ok(Some(CharRef { name: "ooparrowright;", characters: "\u{21ac}", - }); + })); } - if first_char == 'n' && try_read("shortparallel;") { - return Some(CharRef { + if first_char == 'n' && try_read("shortparallel;")? { + return Ok(Some(CharRef { name: "shortparallel;", characters: "\u{2226}", - }); + })); } - if first_char == 'n' && try_read("triangleright;") { - return Some(CharRef { + if first_char == 'n' && try_read("triangleright;")? { + return Ok(Some(CharRef { name: "triangleright;", characters: "\u{22eb}", - }); + })); } - if first_char == 'r' && try_read("ightarrowtail;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightarrowtail;")? { + return Ok(Some(CharRef { name: "ightarrowtail;", characters: "\u{21a3}", - }); + })); } - if first_char == 'r' && try_read("ightharpoonup;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightharpoonup;")? { + return Ok(Some(CharRef { name: "ightharpoonup;", characters: "\u{21c0}", - }); + })); } - if first_char == 't' && try_read("rianglelefteq;") { - return Some(CharRef { + if first_char == 't' && try_read("rianglelefteq;")? { + return Ok(Some(CharRef { name: "rianglelefteq;", characters: "\u{22b4}", - }); + })); } - if first_char == 'u' && try_read("pharpoonright;") { - return Some(CharRef { + if first_char == 'u' && try_read("pharpoonright;")? { + return Ok(Some(CharRef { name: "pharpoonright;", characters: "\u{21be}", - }); + })); } - if first_char == 'A' && try_read("pplyFunction;") { - return Some(CharRef { + if first_char == 'A' && try_read("pplyFunction;")? { + return Ok(Some(CharRef { name: "pplyFunction;", characters: "\u{2061}", - }); + })); } - if first_char == 'D' && try_read("ifferentialD;") { - return Some(CharRef { + if first_char == 'D' && try_read("ifferentialD;")? { + return Ok(Some(CharRef { name: "ifferentialD;", characters: "\u{2146}", - }); + })); } - if first_char == 'D' && try_read("oubleLeftTee;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleLeftTee;")? { + return Ok(Some(CharRef { name: "oubleLeftTee;", characters: "\u{2ae4}", - }); + })); } - if first_char == 'D' && try_read("oubleUpArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleUpArrow;")? { + return Ok(Some(CharRef { name: "oubleUpArrow;", characters: "\u{21d1}", - }); + })); } - if first_char == 'L' && try_read("eftTeeVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTeeVector;")? { + return Ok(Some(CharRef { name: "eftTeeVector;", characters: "\u{295a}", - }); + })); } - if first_char == 'L' && try_read("eftVectorBar;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftVectorBar;")? { + return Ok(Some(CharRef { name: "eftVectorBar;", characters: "\u{2952}", - }); + })); } - if first_char == 'L' && try_read("essFullEqual;") { - return Some(CharRef { + if first_char == 'L' && try_read("essFullEqual;")? { + return Ok(Some(CharRef { name: "essFullEqual;", characters: "\u{2266}", - }); + })); } - if first_char == 'L' && try_read("ongLeftArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongLeftArrow;")? { + return Ok(Some(CharRef { name: "ongLeftArrow;", characters: "\u{27f5}", - }); + })); } - if first_char == 'L' && try_read("ongleftarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("ongleftarrow;")? { + return Ok(Some(CharRef { name: "ongleftarrow;", characters: "\u{27f8}", - }); + })); } - if first_char == 'N' && try_read("otEqualTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otEqualTilde;")? { + return Ok(Some(CharRef { name: "otEqualTilde;", characters: "\u{2242}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otTildeEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otTildeEqual;")? { + return Ok(Some(CharRef { name: "otTildeEqual;", characters: "\u{2244}", - }); + })); } - if first_char == 'N' && try_read("otTildeTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otTildeTilde;")? { + return Ok(Some(CharRef { name: "otTildeTilde;", characters: "\u{2249}", - }); + })); } - if first_char == 'P' && try_read("oincareplane;") { - return Some(CharRef { + if first_char == 'P' && try_read("oincareplane;")? { + return Ok(Some(CharRef { name: "oincareplane;", characters: "\u{210c}", - }); + })); } - if first_char == 'P' && try_read("recedesEqual;") { - return Some(CharRef { + if first_char == 'P' && try_read("recedesEqual;")? { + return Ok(Some(CharRef { name: "recedesEqual;", characters: "\u{2aaf}", - }); + })); } - if first_char == 'P' && try_read("recedesTilde;") { - return Some(CharRef { + if first_char == 'P' && try_read("recedesTilde;")? { + return Ok(Some(CharRef { name: "recedesTilde;", characters: "\u{227e}", - }); + })); } - if first_char == 'R' && try_read("ightArrowBar;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightArrowBar;")? { + return Ok(Some(CharRef { name: "ightArrowBar;", characters: "\u{21e5}", - }); + })); } - if first_char == 'R' && try_read("ightTeeArrow;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTeeArrow;")? { + return Ok(Some(CharRef { name: "ightTeeArrow;", characters: "\u{21a6}", - }); + })); } - if first_char == 'R' && try_read("ightTriangle;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTriangle;")? { + return Ok(Some(CharRef { name: "ightTriangle;", characters: "\u{22b3}", - }); + })); } - if first_char == 'R' && try_read("ightUpVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightUpVector;")? { + return Ok(Some(CharRef { name: "ightUpVector;", characters: "\u{21be}", - }); + })); } - if first_char == 'S' && try_read("ucceedsEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("ucceedsEqual;")? { + return Ok(Some(CharRef { name: "ucceedsEqual;", characters: "\u{2ab0}", - }); + })); } - if first_char == 'S' && try_read("ucceedsTilde;") { - return Some(CharRef { + if first_char == 'S' && try_read("ucceedsTilde;")? { + return Ok(Some(CharRef { name: "ucceedsTilde;", characters: "\u{227f}", - }); + })); } - if first_char == 'S' && try_read("upersetEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("upersetEqual;")? { + return Ok(Some(CharRef { name: "upersetEqual;", characters: "\u{2287}", - }); + })); } - if first_char == 'U' && try_read("pEquilibrium;") { - return Some(CharRef { + if first_char == 'U' && try_read("pEquilibrium;")? { + return Ok(Some(CharRef { name: "pEquilibrium;", characters: "\u{296e}", - }); + })); } - if first_char == 'V' && try_read("erticalTilde;") { - return Some(CharRef { + if first_char == 'V' && try_read("erticalTilde;")? { + return Ok(Some(CharRef { name: "erticalTilde;", characters: "\u{2240}", - }); + })); } - if first_char == 'V' && try_read("eryThinSpace;") { - return Some(CharRef { + if first_char == 'V' && try_read("eryThinSpace;")? { + return Ok(Some(CharRef { name: "eryThinSpace;", characters: "\u{200a}", - }); + })); } - if first_char == 'b' && try_read("igtriangleup;") { - return Some(CharRef { + if first_char == 'b' && try_read("igtriangleup;")? { + return Ok(Some(CharRef { name: "igtriangleup;", characters: "\u{25b3}", - }); + })); } - if first_char == 'b' && try_read("lacktriangle;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacktriangle;")? { + return Ok(Some(CharRef { name: "lacktriangle;", characters: "\u{25b4}", - }); + })); } - if first_char == 'd' && try_read("ivideontimes;") { - return Some(CharRef { + if first_char == 'd' && try_read("ivideontimes;")? { + return Ok(Some(CharRef { name: "ivideontimes;", characters: "\u{22c7}", - }); + })); } - if first_char == 'f' && try_read("allingdotseq;") { - return Some(CharRef { + if first_char == 'f' && try_read("allingdotseq;")? { + return Ok(Some(CharRef { name: "allingdotseq;", characters: "\u{2252}", - }); + })); } - if first_char == 'h' && try_read("ookleftarrow;") { - return Some(CharRef { + if first_char == 'h' && try_read("ookleftarrow;")? { + return Ok(Some(CharRef { name: "ookleftarrow;", characters: "\u{21a9}", - }); + })); } - if first_char == 'l' && try_read("eftarrowtail;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftarrowtail;")? { + return Ok(Some(CharRef { name: "eftarrowtail;", characters: "\u{21a2}", - }); + })); } - if first_char == 'l' && try_read("eftharpoonup;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftharpoonup;")? { + return Ok(Some(CharRef { name: "eftharpoonup;", characters: "\u{21bc}", - }); + })); } - if first_char == 'l' && try_read("ongleftarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("ongleftarrow;")? { + return Ok(Some(CharRef { name: "ongleftarrow;", characters: "\u{27f5}", - }); + })); } - if first_char == 'l' && try_read("ooparrowleft;") { - return Some(CharRef { + if first_char == 'l' && try_read("ooparrowleft;")? { + return Ok(Some(CharRef { name: "ooparrowleft;", characters: "\u{21ab}", - }); + })); } - if first_char == 'm' && try_read("easuredangle;") { - return Some(CharRef { + if first_char == 'm' && try_read("easuredangle;")? { + return Ok(Some(CharRef { name: "easuredangle;", characters: "\u{2221}", - }); + })); } - if first_char == 'n' && try_read("triangleleft;") { - return Some(CharRef { + if first_char == 'n' && try_read("triangleleft;")? { + return Ok(Some(CharRef { name: "triangleleft;", characters: "\u{22ea}", - }); + })); } - if first_char == 's' && try_read("hortparallel;") { - return Some(CharRef { + if first_char == 's' && try_read("hortparallel;")? { + return Ok(Some(CharRef { name: "hortparallel;", characters: "\u{2225}", - }); + })); } - if first_char == 's' && try_read("mallsetminus;") { - return Some(CharRef { + if first_char == 's' && try_read("mallsetminus;")? { + return Ok(Some(CharRef { name: "mallsetminus;", characters: "\u{2216}", - }); + })); } - if first_char == 't' && try_read("riangleright;") { - return Some(CharRef { + if first_char == 't' && try_read("riangleright;")? { + return Ok(Some(CharRef { name: "riangleright;", characters: "\u{25b9}", - }); + })); } - if first_char == 'u' && try_read("pharpoonleft;") { - return Some(CharRef { + if first_char == 'u' && try_read("pharpoonleft;")? { + return Ok(Some(CharRef { name: "pharpoonleft;", characters: "\u{21bf}", - }); + })); } - if first_char == 'v' && try_read("arsubsetneqq;") { - return Some(CharRef { + if first_char == 'v' && try_read("arsubsetneqq;")? { + return Ok(Some(CharRef { name: "arsubsetneqq;", characters: "\u{2acb}\u{fe00}", - }); + })); } - if first_char == 'v' && try_read("arsupsetneqq;") { - return Some(CharRef { + if first_char == 'v' && try_read("arsupsetneqq;")? { + return Ok(Some(CharRef { name: "arsupsetneqq;", characters: "\u{2acc}\u{fe00}", - }); + })); } - if first_char == 'D' && try_read("ownArrowBar;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownArrowBar;")? { + return Ok(Some(CharRef { name: "ownArrowBar;", characters: "\u{2913}", - }); + })); } - if first_char == 'D' && try_read("ownTeeArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownTeeArrow;")? { + return Ok(Some(CharRef { name: "ownTeeArrow;", characters: "\u{21a7}", - }); + })); } - if first_char == 'E' && try_read("xponentialE;") { - return Some(CharRef { + if first_char == 'E' && try_read("xponentialE;")? { + return Ok(Some(CharRef { name: "xponentialE;", characters: "\u{2147}", - }); + })); } - if first_char == 'G' && try_read("reaterEqual;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterEqual;")? { + return Ok(Some(CharRef { name: "reaterEqual;", characters: "\u{2265}", - }); + })); } - if first_char == 'G' && try_read("reaterTilde;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterTilde;")? { + return Ok(Some(CharRef { name: "reaterTilde;", characters: "\u{2273}", - }); + })); } - if first_char == 'H' && try_read("ilbertSpace;") { - return Some(CharRef { + if first_char == 'H' && try_read("ilbertSpace;")? { + return Ok(Some(CharRef { name: "ilbertSpace;", characters: "\u{210b}", - }); + })); } - if first_char == 'H' && try_read("umpDownHump;") { - return Some(CharRef { + if first_char == 'H' && try_read("umpDownHump;")? { + return Ok(Some(CharRef { name: "umpDownHump;", characters: "\u{224e}", - }); + })); } - if first_char == 'I' && try_read("ntersection;") { - return Some(CharRef { + if first_char == 'I' && try_read("ntersection;")? { + return Ok(Some(CharRef { name: "ntersection;", characters: "\u{22c2}", - }); + })); } - if first_char == 'L' && try_read("eftArrowBar;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftArrowBar;")? { + return Ok(Some(CharRef { name: "eftArrowBar;", characters: "\u{21e4}", - }); + })); } - if first_char == 'L' && try_read("eftTeeArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTeeArrow;")? { + return Ok(Some(CharRef { name: "eftTeeArrow;", characters: "\u{21a4}", - }); + })); } - if first_char == 'L' && try_read("eftTriangle;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTriangle;")? { + return Ok(Some(CharRef { name: "eftTriangle;", characters: "\u{22b2}", - }); + })); } - if first_char == 'L' && try_read("eftUpVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftUpVector;")? { + return Ok(Some(CharRef { name: "eftUpVector;", characters: "\u{21bf}", - }); + })); } - if first_char == 'N' && try_read("otCongruent;") { - return Some(CharRef { + if first_char == 'N' && try_read("otCongruent;")? { + return Ok(Some(CharRef { name: "otCongruent;", characters: "\u{2262}", - }); + })); } - if first_char == 'N' && try_read("otHumpEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otHumpEqual;")? { + return Ok(Some(CharRef { name: "otHumpEqual;", characters: "\u{224f}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otLessEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLessEqual;")? { + return Ok(Some(CharRef { name: "otLessEqual;", characters: "\u{2270}", - }); + })); } - if first_char == 'N' && try_read("otLessTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLessTilde;")? { + return Ok(Some(CharRef { name: "otLessTilde;", characters: "\u{2274}", - }); + })); } - if first_char == 'P' && try_read("roportional;") { - return Some(CharRef { + if first_char == 'P' && try_read("roportional;")? { + return Ok(Some(CharRef { name: "roportional;", characters: "\u{221d}", - }); + })); } - if first_char == 'R' && try_read("ightCeiling;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightCeiling;")? { + return Ok(Some(CharRef { name: "ightCeiling;", characters: "\u{2309}", - }); + })); } - if first_char == 'R' && try_read("oundImplies;") { - return Some(CharRef { + if first_char == 'R' && try_read("oundImplies;")? { + return Ok(Some(CharRef { name: "oundImplies;", characters: "\u{2970}", - }); + })); } - if first_char == 'S' && try_read("hortUpArrow;") { - return Some(CharRef { + if first_char == 'S' && try_read("hortUpArrow;")? { + return Ok(Some(CharRef { name: "hortUpArrow;", characters: "\u{2191}", - }); + })); } - if first_char == 'S' && try_read("quareSubset;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareSubset;")? { + return Ok(Some(CharRef { name: "quareSubset;", characters: "\u{228f}", - }); + })); } - if first_char == 'U' && try_read("nderBracket;") { - return Some(CharRef { + if first_char == 'U' && try_read("nderBracket;")? { + return Ok(Some(CharRef { name: "nderBracket;", characters: "\u{23b5}", - }); + })); } - if first_char == 'V' && try_read("erticalLine;") { - return Some(CharRef { + if first_char == 'V' && try_read("erticalLine;")? { + return Ok(Some(CharRef { name: "erticalLine;", characters: "\u{7c}", - }); + })); } - if first_char == 'b' && try_read("lacklozenge;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacklozenge;")? { + return Ok(Some(CharRef { name: "lacklozenge;", characters: "\u{29eb}", - }); + })); } - if first_char == 'e' && try_read("xponentiale;") { - return Some(CharRef { + if first_char == 'e' && try_read("xponentiale;")? { + return Ok(Some(CharRef { name: "xponentiale;", characters: "\u{2147}", - }); + })); } - if first_char == 'r' && try_read("isingdotseq;") { - return Some(CharRef { + if first_char == 'r' && try_read("isingdotseq;")? { + return Ok(Some(CharRef { name: "isingdotseq;", characters: "\u{2253}", - }); + })); } - if first_char == 't' && try_read("riangledown;") { - return Some(CharRef { + if first_char == 't' && try_read("riangledown;")? { + return Ok(Some(CharRef { name: "riangledown;", characters: "\u{25bf}", - }); + })); } - if first_char == 't' && try_read("riangleleft;") { - return Some(CharRef { + if first_char == 't' && try_read("riangleleft;")? { + return Ok(Some(CharRef { name: "riangleleft;", characters: "\u{25c3}", - }); + })); } - if first_char == 'v' && try_read("arsubsetneq;") { - return Some(CharRef { + if first_char == 'v' && try_read("arsubsetneq;")? { + return Ok(Some(CharRef { name: "arsubsetneq;", characters: "\u{228a}\u{fe00}", - }); + })); } - if first_char == 'v' && try_read("arsupsetneq;") { - return Some(CharRef { + if first_char == 'v' && try_read("arsupsetneq;")? { + return Ok(Some(CharRef { name: "arsupsetneq;", characters: "\u{228b}\u{fe00}", - }); + })); } - if first_char == 'C' && try_read("ircleMinus;") { - return Some(CharRef { + if first_char == 'C' && try_read("ircleMinus;")? { + return Ok(Some(CharRef { name: "ircleMinus;", characters: "\u{2296}", - }); + })); } - if first_char == 'C' && try_read("ircleTimes;") { - return Some(CharRef { + if first_char == 'C' && try_read("ircleTimes;")? { + return Ok(Some(CharRef { name: "ircleTimes;", characters: "\u{2297}", - }); + })); } - if first_char == 'E' && try_read("quilibrium;") { - return Some(CharRef { + if first_char == 'E' && try_read("quilibrium;")? { + return Ok(Some(CharRef { name: "quilibrium;", characters: "\u{21cc}", - }); + })); } - if first_char == 'G' && try_read("reaterLess;") { - return Some(CharRef { + if first_char == 'G' && try_read("reaterLess;")? { + return Ok(Some(CharRef { name: "reaterLess;", characters: "\u{2277}", - }); + })); } - if first_char == 'L' && try_read("eftCeiling;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftCeiling;")? { + return Ok(Some(CharRef { name: "eftCeiling;", characters: "\u{2308}", - }); + })); } - if first_char == 'L' && try_read("essGreater;") { - return Some(CharRef { + if first_char == 'L' && try_read("essGreater;")? { + return Ok(Some(CharRef { name: "essGreater;", characters: "\u{2276}", - }); + })); } - if first_char == 'M' && try_read("ediumSpace;") { - return Some(CharRef { + if first_char == 'M' && try_read("ediumSpace;")? { + return Ok(Some(CharRef { name: "ediumSpace;", characters: "\u{205f}", - }); + })); } - if first_char == 'N' && try_read("otLessLess;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLessLess;")? { + return Ok(Some(CharRef { name: "otLessLess;", characters: "\u{226a}\u{338}", - }); + })); } - if first_char == 'N' && try_read("otPrecedes;") { - return Some(CharRef { + if first_char == 'N' && try_read("otPrecedes;")? { + return Ok(Some(CharRef { name: "otPrecedes;", characters: "\u{2280}", - }); + })); } - if first_char == 'N' && try_read("otSucceeds;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSucceeds;")? { + return Ok(Some(CharRef { name: "otSucceeds;", characters: "\u{2281}", - }); + })); } - if first_char == 'N' && try_read("otSuperset;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSuperset;")? { + return Ok(Some(CharRef { name: "otSuperset;", characters: "\u{2283}\u{20d2}", - }); + })); } - if first_char == 'O' && try_read("verBracket;") { - return Some(CharRef { + if first_char == 'O' && try_read("verBracket;")? { + return Ok(Some(CharRef { name: "verBracket;", characters: "\u{23b4}", - }); + })); } - if first_char == 'R' && try_read("ightVector;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightVector;")? { + return Ok(Some(CharRef { name: "ightVector;", characters: "\u{21c0}", - }); + })); } - if first_char == 'R' && try_read("rightarrow;") { - return Some(CharRef { + if first_char == 'R' && try_read("rightarrow;")? { + return Ok(Some(CharRef { name: "rightarrow;", characters: "\u{21db}", - }); + })); } - if first_char == 'R' && try_read("uleDelayed;") { - return Some(CharRef { + if first_char == 'R' && try_read("uleDelayed;")? { + return Ok(Some(CharRef { name: "uleDelayed;", characters: "\u{29f4}", - }); + })); } - if first_char == 'S' && try_read("mallCircle;") { - return Some(CharRef { + if first_char == 'S' && try_read("mallCircle;")? { + return Ok(Some(CharRef { name: "mallCircle;", characters: "\u{2218}", - }); + })); } - if first_char == 'S' && try_read("quareUnion;") { - return Some(CharRef { + if first_char == 'S' && try_read("quareUnion;")? { + return Ok(Some(CharRef { name: "quareUnion;", characters: "\u{2294}", - }); + })); } - if first_char == 'S' && try_read("ubsetEqual;") { - return Some(CharRef { + if first_char == 'S' && try_read("ubsetEqual;")? { + return Ok(Some(CharRef { name: "ubsetEqual;", characters: "\u{2286}", - }); + })); } - if first_char == 'U' && try_read("pDownArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pDownArrow;")? { + return Ok(Some(CharRef { name: "pDownArrow;", characters: "\u{2195}", - }); + })); } - if first_char == 'U' && try_read("pdownarrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pdownarrow;")? { + return Ok(Some(CharRef { name: "pdownarrow;", characters: "\u{21d5}", - }); + })); } - if first_char == 'V' && try_read("erticalBar;") { - return Some(CharRef { + if first_char == 'V' && try_read("erticalBar;")? { + return Ok(Some(CharRef { name: "erticalBar;", characters: "\u{2223}", - }); + })); } - if first_char == 'b' && try_read("ackepsilon;") { - return Some(CharRef { + if first_char == 'b' && try_read("ackepsilon;")? { + return Ok(Some(CharRef { name: "ackepsilon;", characters: "\u{3f6}", - }); + })); } - if first_char == 'b' && try_read("lacksquare;") { - return Some(CharRef { + if first_char == 'b' && try_read("lacksquare;")? { + return Ok(Some(CharRef { name: "lacksquare;", characters: "\u{25aa}", - }); + })); } - if first_char == 'c' && try_read("ircledcirc;") { - return Some(CharRef { + if first_char == 'c' && try_read("ircledcirc;")? { + return Ok(Some(CharRef { name: "ircledcirc;", characters: "\u{229a}", - }); + })); } - if first_char == 'c' && try_read("ircleddash;") { - return Some(CharRef { + if first_char == 'c' && try_read("ircleddash;")? { + return Ok(Some(CharRef { name: "ircleddash;", characters: "\u{229d}", - }); + })); } - if first_char == 'c' && try_read("urlyeqprec;") { - return Some(CharRef { + if first_char == 'c' && try_read("urlyeqprec;")? { + return Ok(Some(CharRef { name: "urlyeqprec;", characters: "\u{22de}", - }); + })); } - if first_char == 'c' && try_read("urlyeqsucc;") { - return Some(CharRef { + if first_char == 'c' && try_read("urlyeqsucc;")? { + return Ok(Some(CharRef { name: "urlyeqsucc;", characters: "\u{22df}", - }); + })); } - if first_char == 'd' && try_read("iamondsuit;") { - return Some(CharRef { + if first_char == 'd' && try_read("iamondsuit;")? { + return Ok(Some(CharRef { name: "iamondsuit;", characters: "\u{2666}", - }); + })); } - if first_char == 'e' && try_read("qslantless;") { - return Some(CharRef { + if first_char == 'e' && try_read("qslantless;")? { + return Ok(Some(CharRef { name: "qslantless;", characters: "\u{2a95}", - }); + })); } - if first_char == 'e' && try_read("xpectation;") { - return Some(CharRef { + if first_char == 'e' && try_read("xpectation;")? { + return Ok(Some(CharRef { name: "xpectation;", characters: "\u{2130}", - }); + })); } - if first_char == 'n' && try_read("Rightarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("Rightarrow;")? { + return Ok(Some(CharRef { name: "Rightarrow;", characters: "\u{21cf}", - }); + })); } - if first_char == 'n' && try_read("rightarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("rightarrow;")? { + return Ok(Some(CharRef { name: "rightarrow;", characters: "\u{219b}", - }); + })); } - if first_char == 'p' && try_read("reccurlyeq;") { - return Some(CharRef { + if first_char == 'p' && try_read("reccurlyeq;")? { + return Ok(Some(CharRef { name: "reccurlyeq;", characters: "\u{227c}", - }); + })); } - if first_char == 'p' && try_read("recnapprox;") { - return Some(CharRef { + if first_char == 'p' && try_read("recnapprox;")? { + return Ok(Some(CharRef { name: "recnapprox;", characters: "\u{2ab9}", - }); + })); } - if first_char == 'q' && try_read("uaternions;") { - return Some(CharRef { + if first_char == 'q' && try_read("uaternions;")? { + return Ok(Some(CharRef { name: "uaternions;", characters: "\u{210d}", - }); + })); } - if first_char == 's' && try_read("traightphi;") { - return Some(CharRef { + if first_char == 's' && try_read("traightphi;")? { + return Ok(Some(CharRef { name: "traightphi;", characters: "\u{3d5}", - }); + })); } - if first_char == 's' && try_read("ucccurlyeq;") { - return Some(CharRef { + if first_char == 's' && try_read("ucccurlyeq;")? { + return Ok(Some(CharRef { name: "ucccurlyeq;", characters: "\u{227d}", - }); + })); } - if first_char == 's' && try_read("uccnapprox;") { - return Some(CharRef { + if first_char == 's' && try_read("uccnapprox;")? { + return Ok(Some(CharRef { name: "uccnapprox;", characters: "\u{2aba}", - }); + })); } - if first_char == 't' && try_read("hickapprox;") { - return Some(CharRef { + if first_char == 't' && try_read("hickapprox;")? { + return Ok(Some(CharRef { name: "hickapprox;", characters: "\u{2248}", - }); + })); } - if first_char == 'u' && try_read("pdownarrow;") { - return Some(CharRef { + if first_char == 'u' && try_read("pdownarrow;")? { + return Ok(Some(CharRef { name: "pdownarrow;", characters: "\u{2195}", - }); + })); } - if first_char == 'B' && try_read("ernoullis;") { - return Some(CharRef { + if first_char == 'B' && try_read("ernoullis;")? { + return Ok(Some(CharRef { name: "ernoullis;", characters: "\u{212c}", - }); + })); } - if first_char == 'C' && try_read("irclePlus;") { - return Some(CharRef { + if first_char == 'C' && try_read("irclePlus;")? { + return Ok(Some(CharRef { name: "irclePlus;", characters: "\u{2295}", - }); + })); } - if first_char == 'E' && try_read("qualTilde;") { - return Some(CharRef { + if first_char == 'E' && try_read("qualTilde;")? { + return Ok(Some(CharRef { name: "qualTilde;", characters: "\u{2242}", - }); + })); } - if first_char == 'F' && try_read("ouriertrf;") { - return Some(CharRef { + if first_char == 'F' && try_read("ouriertrf;")? { + return Ok(Some(CharRef { name: "ouriertrf;", characters: "\u{2131}", - }); + })); } - if first_char == 'I' && try_read("maginaryI;") { - return Some(CharRef { + if first_char == 'I' && try_read("maginaryI;")? { + return Ok(Some(CharRef { name: "maginaryI;", characters: "\u{2148}", - }); + })); } - if first_char == 'L' && try_read("aplacetrf;") { - return Some(CharRef { + if first_char == 'L' && try_read("aplacetrf;")? { + return Ok(Some(CharRef { name: "aplacetrf;", characters: "\u{2112}", - }); + })); } - if first_char == 'L' && try_read("eftVector;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftVector;")? { + return Ok(Some(CharRef { name: "eftVector;", characters: "\u{21bc}", - }); + })); } - if first_char == 'L' && try_read("leftarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("leftarrow;")? { + return Ok(Some(CharRef { name: "leftarrow;", characters: "\u{21da}", - }); + })); } - if first_char == 'N' && try_read("otElement;") { - return Some(CharRef { + if first_char == 'N' && try_read("otElement;")? { + return Ok(Some(CharRef { name: "otElement;", characters: "\u{2209}", - }); + })); } - if first_char == 'N' && try_read("otGreater;") { - return Some(CharRef { + if first_char == 'N' && try_read("otGreater;")? { + return Ok(Some(CharRef { name: "otGreater;", characters: "\u{226f}", - }); + })); } - if first_char == 'P' && try_read("roportion;") { - return Some(CharRef { + if first_char == 'P' && try_read("roportion;")? { + return Ok(Some(CharRef { name: "roportion;", characters: "\u{2237}", - }); + })); } - if first_char == 'R' && try_read("ightArrow;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightArrow;")? { + return Ok(Some(CharRef { name: "ightArrow;", characters: "\u{2192}", - }); + })); } - if first_char == 'R' && try_read("ightFloor;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightFloor;")? { + return Ok(Some(CharRef { name: "ightFloor;", characters: "\u{230b}", - }); + })); } - if first_char == 'R' && try_read("ightarrow;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightarrow;")? { + return Ok(Some(CharRef { name: "ightarrow;", characters: "\u{21d2}", - }); + })); } - if first_char == 'T' && try_read("hickSpace;") { - return Some(CharRef { + if first_char == 'T' && try_read("hickSpace;")? { + return Ok(Some(CharRef { name: "hickSpace;", characters: "\u{205f}\u{200a}", - }); + })); } - if first_char == 'T' && try_read("ildeEqual;") { - return Some(CharRef { + if first_char == 'T' && try_read("ildeEqual;")? { + return Ok(Some(CharRef { name: "ildeEqual;", characters: "\u{2243}", - }); + })); } - if first_char == 'T' && try_read("ildeTilde;") { - return Some(CharRef { + if first_char == 'T' && try_read("ildeTilde;")? { + return Ok(Some(CharRef { name: "ildeTilde;", characters: "\u{2248}", - }); + })); } - if first_char == 'U' && try_read("nderBrace;") { - return Some(CharRef { + if first_char == 'U' && try_read("nderBrace;")? { + return Ok(Some(CharRef { name: "nderBrace;", characters: "\u{23df}", - }); + })); } - if first_char == 'U' && try_read("pArrowBar;") { - return Some(CharRef { + if first_char == 'U' && try_read("pArrowBar;")? { + return Ok(Some(CharRef { name: "pArrowBar;", characters: "\u{2912}", - }); + })); } - if first_char == 'U' && try_read("pTeeArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pTeeArrow;")? { + return Ok(Some(CharRef { name: "pTeeArrow;", characters: "\u{21a5}", - }); + })); } - if first_char == 'c' && try_read("ircledast;") { - return Some(CharRef { + if first_char == 'c' && try_read("ircledast;")? { + return Ok(Some(CharRef { name: "ircledast;", characters: "\u{229b}", - }); + })); } - if first_char == 'c' && try_read("omplement;") { - return Some(CharRef { + if first_char == 'c' && try_read("omplement;")? { + return Ok(Some(CharRef { name: "omplement;", characters: "\u{2201}", - }); + })); } - if first_char == 'c' && try_read("urlywedge;") { - return Some(CharRef { + if first_char == 'c' && try_read("urlywedge;")? { + return Ok(Some(CharRef { name: "urlywedge;", characters: "\u{22cf}", - }); + })); } - if first_char == 'e' && try_read("qslantgtr;") { - return Some(CharRef { + if first_char == 'e' && try_read("qslantgtr;")? { + return Ok(Some(CharRef { name: "qslantgtr;", characters: "\u{2a96}", - }); + })); } - if first_char == 'g' && try_read("treqqless;") { - return Some(CharRef { + if first_char == 'g' && try_read("treqqless;")? { + return Ok(Some(CharRef { name: "treqqless;", characters: "\u{2a8c}", - }); + })); } - if first_char == 'l' && try_read("essapprox;") { - return Some(CharRef { + if first_char == 'l' && try_read("essapprox;")? { + return Ok(Some(CharRef { name: "essapprox;", characters: "\u{2a85}", - }); + })); } - if first_char == 'l' && try_read("esseqqgtr;") { - return Some(CharRef { + if first_char == 'l' && try_read("esseqqgtr;")? { + return Ok(Some(CharRef { name: "esseqqgtr;", characters: "\u{2a8b}", - }); + })); } - if first_char == 'l' && try_read("moustache;") { - return Some(CharRef { + if first_char == 'l' && try_read("moustache;")? { + return Ok(Some(CharRef { name: "moustache;", characters: "\u{23b0}", - }); + })); } - if first_char == 'l' && try_read("ongmapsto;") { - return Some(CharRef { + if first_char == 'l' && try_read("ongmapsto;")? { + return Ok(Some(CharRef { name: "ongmapsto;", characters: "\u{27fc}", - }); + })); } - if first_char == 'm' && try_read("apstodown;") { - return Some(CharRef { + if first_char == 'm' && try_read("apstodown;")? { + return Ok(Some(CharRef { name: "apstodown;", characters: "\u{21a7}", - }); + })); } - if first_char == 'm' && try_read("apstoleft;") { - return Some(CharRef { + if first_char == 'm' && try_read("apstoleft;")? { + return Ok(Some(CharRef { name: "apstoleft;", characters: "\u{21a4}", - }); + })); } - if first_char == 'n' && try_read("Leftarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("Leftarrow;")? { + return Ok(Some(CharRef { name: "Leftarrow;", characters: "\u{21cd}", - }); + })); } - if first_char == 'n' && try_read("leftarrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("leftarrow;")? { + return Ok(Some(CharRef { name: "leftarrow;", characters: "\u{219a}", - }); + })); } - if first_char == 'n' && try_read("subseteqq;") { - return Some(CharRef { + if first_char == 'n' && try_read("subseteqq;")? { + return Ok(Some(CharRef { name: "subseteqq;", characters: "\u{2ac5}\u{338}", - }); + })); } - if first_char == 'n' && try_read("supseteqq;") { - return Some(CharRef { + if first_char == 'n' && try_read("supseteqq;")? { + return Ok(Some(CharRef { name: "supseteqq;", characters: "\u{2ac6}\u{338}", - }); + })); } - if first_char == 'p' && try_read("recapprox;") { - return Some(CharRef { + if first_char == 'p' && try_read("recapprox;")? { + return Ok(Some(CharRef { name: "recapprox;", characters: "\u{2ab7}", - }); + })); } - if first_char == 'r' && try_read("ightarrow;") { - return Some(CharRef { + if first_char == 'r' && try_read("ightarrow;")? { + return Ok(Some(CharRef { name: "ightarrow;", characters: "\u{2192}", - }); + })); } - if first_char == 'r' && try_read("moustache;") { - return Some(CharRef { + if first_char == 'r' && try_read("moustache;")? { + return Ok(Some(CharRef { name: "moustache;", characters: "\u{23b1}", - }); + })); } - if first_char == 's' && try_read("qsubseteq;") { - return Some(CharRef { + if first_char == 's' && try_read("qsubseteq;")? { + return Ok(Some(CharRef { name: "qsubseteq;", characters: "\u{2291}", - }); + })); } - if first_char == 's' && try_read("qsupseteq;") { - return Some(CharRef { + if first_char == 's' && try_read("qsupseteq;")? { + return Ok(Some(CharRef { name: "qsupseteq;", characters: "\u{2292}", - }); + })); } - if first_char == 's' && try_read("ubsetneqq;") { - return Some(CharRef { + if first_char == 's' && try_read("ubsetneqq;")? { + return Ok(Some(CharRef { name: "ubsetneqq;", characters: "\u{2acb}", - }); + })); } - if first_char == 's' && try_read("uccapprox;") { - return Some(CharRef { + if first_char == 's' && try_read("uccapprox;")? { + return Ok(Some(CharRef { name: "uccapprox;", characters: "\u{2ab8}", - }); + })); } - if first_char == 's' && try_read("upsetneqq;") { - return Some(CharRef { + if first_char == 's' && try_read("upsetneqq;")? { + return Ok(Some(CharRef { name: "upsetneqq;", characters: "\u{2acc}", - }); + })); } - if first_char == 'u' && try_read("puparrows;") { - return Some(CharRef { + if first_char == 'u' && try_read("puparrows;")? { + return Ok(Some(CharRef { name: "puparrows;", characters: "\u{21c8}", - }); + })); } - if first_char == 'v' && try_read("arepsilon;") { - return Some(CharRef { + if first_char == 'v' && try_read("arepsilon;")? { + return Ok(Some(CharRef { name: "arepsilon;", characters: "\u{3f5}", - }); + })); } - if first_char == 'v' && try_read("arnothing;") { - return Some(CharRef { + if first_char == 'v' && try_read("arnothing;")? { + return Ok(Some(CharRef { name: "arnothing;", characters: "\u{2205}", - }); + })); } - if first_char == 'B' && try_read("ackslash;") { - return Some(CharRef { + if first_char == 'B' && try_read("ackslash;")? { + return Ok(Some(CharRef { name: "ackslash;", characters: "\u{2216}", - }); + })); } - if first_char == 'C' && try_read("enterDot;") { - return Some(CharRef { + if first_char == 'C' && try_read("enterDot;")? { + return Ok(Some(CharRef { name: "enterDot;", characters: "\u{b7}", - }); + })); } - if first_char == 'C' && try_read("ircleDot;") { - return Some(CharRef { + if first_char == 'C' && try_read("ircleDot;")? { + return Ok(Some(CharRef { name: "ircleDot;", characters: "\u{2299}", - }); + })); } - if first_char == 'C' && try_read("ongruent;") { - return Some(CharRef { + if first_char == 'C' && try_read("ongruent;")? { + return Ok(Some(CharRef { name: "ongruent;", characters: "\u{2261}", - }); + })); } - if first_char == 'C' && try_read("oproduct;") { - return Some(CharRef { + if first_char == 'C' && try_read("oproduct;")? { + return Ok(Some(CharRef { name: "oproduct;", characters: "\u{2210}", - }); + })); } - if first_char == 'D' && try_read("oubleDot;") { - return Some(CharRef { + if first_char == 'D' && try_read("oubleDot;")? { + return Ok(Some(CharRef { name: "oubleDot;", characters: "\u{a8}", - }); + })); } - if first_char == 'D' && try_read("ownArrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownArrow;")? { + return Ok(Some(CharRef { name: "ownArrow;", characters: "\u{2193}", - }); + })); } - if first_char == 'D' && try_read("ownBreve;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownBreve;")? { + return Ok(Some(CharRef { name: "ownBreve;", characters: "\u{311}", - }); + })); } - if first_char == 'D' && try_read("ownarrow;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownarrow;")? { + return Ok(Some(CharRef { name: "ownarrow;", characters: "\u{21d3}", - }); + })); } - if first_char == 'H' && try_read("umpEqual;") { - return Some(CharRef { + if first_char == 'H' && try_read("umpEqual;")? { + return Ok(Some(CharRef { name: "umpEqual;", characters: "\u{224f}", - }); + })); } - if first_char == 'L' && try_read("eftArrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftArrow;")? { + return Ok(Some(CharRef { name: "eftArrow;", characters: "\u{2190}", - }); + })); } - if first_char == 'L' && try_read("eftFloor;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftFloor;")? { + return Ok(Some(CharRef { name: "eftFloor;", characters: "\u{230a}", - }); + })); } - if first_char == 'L' && try_read("eftarrow;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftarrow;")? { + return Ok(Some(CharRef { name: "eftarrow;", characters: "\u{21d0}", - }); + })); } - if first_char == 'L' && try_read("essTilde;") { - return Some(CharRef { + if first_char == 'L' && try_read("essTilde;")? { + return Ok(Some(CharRef { name: "essTilde;", characters: "\u{2272}", - }); + })); } - if first_char == 'M' && try_read("ellintrf;") { - return Some(CharRef { + if first_char == 'M' && try_read("ellintrf;")? { + return Ok(Some(CharRef { name: "ellintrf;", characters: "\u{2133}", - }); + })); } - if first_char == 'M' && try_read("inusPlus;") { - return Some(CharRef { + if first_char == 'M' && try_read("inusPlus;")? { + return Ok(Some(CharRef { name: "inusPlus;", characters: "\u{2213}", - }); + })); } - if first_char == 'N' && try_read("otCupCap;") { - return Some(CharRef { + if first_char == 'N' && try_read("otCupCap;")? { + return Ok(Some(CharRef { name: "otCupCap;", characters: "\u{226d}", - }); + })); } - if first_char == 'N' && try_read("otExists;") { - return Some(CharRef { + if first_char == 'N' && try_read("otExists;")? { + return Ok(Some(CharRef { name: "otExists;", characters: "\u{2204}", - }); + })); } - if first_char == 'N' && try_read("otSubset;") { - return Some(CharRef { + if first_char == 'N' && try_read("otSubset;")? { + return Ok(Some(CharRef { name: "otSubset;", characters: "\u{2282}\u{20d2}", - }); + })); } - if first_char == 'O' && try_read("verBrace;") { - return Some(CharRef { + if first_char == 'O' && try_read("verBrace;")? { + return Ok(Some(CharRef { name: "verBrace;", characters: "\u{23de}", - }); + })); } - if first_char == 'P' && try_read("lusMinus;") { - return Some(CharRef { + if first_char == 'P' && try_read("lusMinus;")? { + return Ok(Some(CharRef { name: "lusMinus;", characters: "\u{b1}", - }); + })); } - if first_char == 'T' && try_read("herefore;") { - return Some(CharRef { + if first_char == 'T' && try_read("herefore;")? { + return Ok(Some(CharRef { name: "herefore;", characters: "\u{2234}", - }); + })); } - if first_char == 'T' && try_read("hinSpace;") { - return Some(CharRef { + if first_char == 'T' && try_read("hinSpace;")? { + return Ok(Some(CharRef { name: "hinSpace;", characters: "\u{2009}", - }); + })); } - if first_char == 'T' && try_read("ripleDot;") { - return Some(CharRef { + if first_char == 'T' && try_read("ripleDot;")? { + return Ok(Some(CharRef { name: "ripleDot;", characters: "\u{20db}", - }); + })); } - if first_char == 'U' && try_read("nionPlus;") { - return Some(CharRef { + if first_char == 'U' && try_read("nionPlus;")? { + return Ok(Some(CharRef { name: "nionPlus;", characters: "\u{228e}", - }); + })); } - if first_char == 'b' && try_read("ackprime;") { - return Some(CharRef { + if first_char == 'b' && try_read("ackprime;")? { + return Ok(Some(CharRef { name: "ackprime;", characters: "\u{2035}", - }); + })); } - if first_char == 'b' && try_read("acksimeq;") { - return Some(CharRef { + if first_char == 'b' && try_read("acksimeq;")? { + return Ok(Some(CharRef { name: "acksimeq;", characters: "\u{22cd}", - }); + })); } - if first_char == 'b' && try_read("igotimes;") { - return Some(CharRef { + if first_char == 'b' && try_read("igotimes;")? { + return Ok(Some(CharRef { name: "igotimes;", characters: "\u{2a02}", - }); + })); } - if first_char == 'c' && try_read("enterdot;") { - return Some(CharRef { + if first_char == 'c' && try_read("enterdot;")? { + return Ok(Some(CharRef { name: "enterdot;", characters: "\u{b7}", - }); + })); } - if first_char == 'c' && try_read("heckmark;") { - return Some(CharRef { + if first_char == 'c' && try_read("heckmark;")? { + return Ok(Some(CharRef { name: "heckmark;", characters: "\u{2713}", - }); + })); } - if first_char == 'c' && try_read("omplexes;") { - return Some(CharRef { + if first_char == 'c' && try_read("omplexes;")? { + return Ok(Some(CharRef { name: "omplexes;", characters: "\u{2102}", - }); + })); } - if first_char == 'd' && try_read("otsquare;") { - return Some(CharRef { + if first_char == 'd' && try_read("otsquare;")? { + return Ok(Some(CharRef { name: "otsquare;", characters: "\u{22a1}", - }); + })); } - if first_char == 'd' && try_read("ownarrow;") { - return Some(CharRef { + if first_char == 'd' && try_read("ownarrow;")? { + return Ok(Some(CharRef { name: "ownarrow;", characters: "\u{2193}", - }); + })); } - if first_char == 'g' && try_read("trapprox;") { - return Some(CharRef { + if first_char == 'g' && try_read("trapprox;")? { + return Ok(Some(CharRef { name: "trapprox;", characters: "\u{2a86}", - }); + })); } - if first_char == 'g' && try_read("treqless;") { - return Some(CharRef { + if first_char == 'g' && try_read("treqless;")? { + return Ok(Some(CharRef { name: "treqless;", characters: "\u{22db}", - }); + })); } - if first_char == 'g' && try_read("vertneqq;") { - return Some(CharRef { + if first_char == 'g' && try_read("vertneqq;")? { + return Ok(Some(CharRef { name: "vertneqq;", characters: "\u{2269}\u{fe00}", - }); + })); } - if first_char == 'h' && try_read("eartsuit;") { - return Some(CharRef { + if first_char == 'h' && try_read("eartsuit;")? { + return Ok(Some(CharRef { name: "eartsuit;", characters: "\u{2665}", - }); + })); } - if first_char == 'l' && try_read("eftarrow;") { - return Some(CharRef { + if first_char == 'l' && try_read("eftarrow;")? { + return Ok(Some(CharRef { name: "eftarrow;", characters: "\u{2190}", - }); + })); } - if first_char == 'l' && try_read("esseqgtr;") { - return Some(CharRef { + if first_char == 'l' && try_read("esseqgtr;")? { + return Ok(Some(CharRef { name: "esseqgtr;", characters: "\u{22da}", - }); + })); } - if first_char == 'l' && try_read("vertneqq;") { - return Some(CharRef { + if first_char == 'l' && try_read("vertneqq;")? { + return Ok(Some(CharRef { name: "vertneqq;", characters: "\u{2268}\u{fe00}", - }); + })); } - if first_char == 'n' && try_read("geqslant;") { - return Some(CharRef { + if first_char == 'n' && try_read("geqslant;")? { + return Ok(Some(CharRef { name: "geqslant;", characters: "\u{2a7e}\u{338}", - }); + })); } - if first_char == 'n' && try_read("leqslant;") { - return Some(CharRef { + if first_char == 'n' && try_read("leqslant;")? { + return Ok(Some(CharRef { name: "leqslant;", characters: "\u{2a7d}\u{338}", - }); + })); } - if first_char == 'n' && try_read("parallel;") { - return Some(CharRef { + if first_char == 'n' && try_read("parallel;")? { + return Ok(Some(CharRef { name: "parallel;", characters: "\u{2226}", - }); + })); } - if first_char == 'n' && try_read("shortmid;") { - return Some(CharRef { + if first_char == 'n' && try_read("shortmid;")? { + return Ok(Some(CharRef { name: "shortmid;", characters: "\u{2224}", - }); + })); } - if first_char == 'n' && try_read("subseteq;") { - return Some(CharRef { + if first_char == 'n' && try_read("subseteq;")? { + return Ok(Some(CharRef { name: "subseteq;", characters: "\u{2288}", - }); + })); } - if first_char == 'n' && try_read("supseteq;") { - return Some(CharRef { + if first_char == 'n' && try_read("supseteq;")? { + return Ok(Some(CharRef { name: "supseteq;", characters: "\u{2289}", - }); + })); } - if first_char == 'p' && try_read("itchfork;") { - return Some(CharRef { + if first_char == 'p' && try_read("itchfork;")? { + return Ok(Some(CharRef { name: "itchfork;", characters: "\u{22d4}", - }); + })); } - if first_char == 'r' && try_read("ationals;") { - return Some(CharRef { + if first_char == 'r' && try_read("ationals;")? { + return Ok(Some(CharRef { name: "ationals;", characters: "\u{211a}", - }); + })); } - if first_char == 's' && try_read("padesuit;") { - return Some(CharRef { + if first_char == 's' && try_read("padesuit;")? { + return Ok(Some(CharRef { name: "padesuit;", characters: "\u{2660}", - }); + })); } - if first_char == 's' && try_read("ubseteqq;") { - return Some(CharRef { + if first_char == 's' && try_read("ubseteqq;")? { + return Ok(Some(CharRef { name: "ubseteqq;", characters: "\u{2ac5}", - }); + })); } - if first_char == 's' && try_read("ubsetneq;") { - return Some(CharRef { + if first_char == 's' && try_read("ubsetneq;")? { + return Ok(Some(CharRef { name: "ubsetneq;", characters: "\u{228a}", - }); + })); } - if first_char == 's' && try_read("upseteqq;") { - return Some(CharRef { + if first_char == 's' && try_read("upseteqq;")? { + return Ok(Some(CharRef { name: "upseteqq;", characters: "\u{2ac6}", - }); + })); } - if first_char == 's' && try_read("upsetneq;") { - return Some(CharRef { + if first_char == 's' && try_read("upsetneq;")? { + return Ok(Some(CharRef { name: "upsetneq;", characters: "\u{228b}", - }); + })); } - if first_char == 't' && try_read("herefore;") { - return Some(CharRef { + if first_char == 't' && try_read("herefore;")? { + return Ok(Some(CharRef { name: "herefore;", characters: "\u{2234}", - }); + })); } - if first_char == 't' && try_read("riangleq;") { - return Some(CharRef { + if first_char == 't' && try_read("riangleq;")? { + return Ok(Some(CharRef { name: "riangleq;", characters: "\u{225c}", - }); + })); } - if first_char == 'v' && try_read("arpropto;") { - return Some(CharRef { + if first_char == 'v' && try_read("arpropto;")? { + return Ok(Some(CharRef { name: "arpropto;", characters: "\u{221d}", - }); + })); } - if first_char == 'D' && try_read("Dotrahd;") { - return Some(CharRef { + if first_char == 'D' && try_read("Dotrahd;")? { + return Ok(Some(CharRef { name: "Dotrahd;", characters: "\u{2911}", - }); + })); } - if first_char == 'D' && try_read("otEqual;") { - return Some(CharRef { + if first_char == 'D' && try_read("otEqual;")? { + return Ok(Some(CharRef { name: "otEqual;", characters: "\u{2250}", - }); + })); } - if first_char == 'I' && try_read("ntegral;") { - return Some(CharRef { + if first_char == 'I' && try_read("ntegral;")? { + return Ok(Some(CharRef { name: "ntegral;", characters: "\u{222b}", - }); + })); } - if first_char == 'L' && try_read("essLess;") { - return Some(CharRef { + if first_char == 'L' && try_read("essLess;")? { + return Ok(Some(CharRef { name: "essLess;", characters: "\u{2aa1}", - }); + })); } - if first_char == 'N' && try_read("otEqual;") { - return Some(CharRef { + if first_char == 'N' && try_read("otEqual;")? { + return Ok(Some(CharRef { name: "otEqual;", characters: "\u{2260}", - }); + })); } - if first_char == 'N' && try_read("otTilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("otTilde;")? { + return Ok(Some(CharRef { name: "otTilde;", characters: "\u{2241}", - }); + })); } - if first_char == 'P' && try_read("artialD;") { - return Some(CharRef { + if first_char == 'P' && try_read("artialD;")? { + return Ok(Some(CharRef { name: "artialD;", characters: "\u{2202}", - }); + })); } - if first_char == 'P' && try_read("recedes;") { - return Some(CharRef { + if first_char == 'P' && try_read("recedes;")? { + return Ok(Some(CharRef { name: "recedes;", characters: "\u{227a}", - }); + })); } - if first_char == 'R' && try_read("ightTee;") { - return Some(CharRef { + if first_char == 'R' && try_read("ightTee;")? { + return Ok(Some(CharRef { name: "ightTee;", characters: "\u{22a2}", - }); + })); } - if first_char == 'S' && try_read("ucceeds;") { - return Some(CharRef { + if first_char == 'S' && try_read("ucceeds;")? { + return Ok(Some(CharRef { name: "ucceeds;", characters: "\u{227b}", - }); + })); } - if first_char == 'S' && try_read("uchThat;") { - return Some(CharRef { + if first_char == 'S' && try_read("uchThat;")? { + return Ok(Some(CharRef { name: "uchThat;", characters: "\u{220b}", - }); + })); } - if first_char == 'S' && try_read("uperset;") { - return Some(CharRef { + if first_char == 'S' && try_read("uperset;")? { + return Ok(Some(CharRef { name: "uperset;", characters: "\u{2283}", - }); + })); } - if first_char == 'U' && try_read("arrocir;") { - return Some(CharRef { + if first_char == 'U' && try_read("arrocir;")? { + return Ok(Some(CharRef { name: "arrocir;", characters: "\u{2949}", - }); + })); } - if first_char == 'U' && try_read("nderBar;") { - return Some(CharRef { + if first_char == 'U' && try_read("nderBar;")? { + return Ok(Some(CharRef { name: "nderBar;", characters: "\u{5f}", - }); + })); } - if first_char == 'a' && try_read("ndslope;") { - return Some(CharRef { + if first_char == 'a' && try_read("ndslope;")? { + return Ok(Some(CharRef { name: "ndslope;", characters: "\u{2a58}", - }); + })); } - if first_char == 'a' && try_read("ngmsdaa;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdaa;")? { + return Ok(Some(CharRef { name: "ngmsdaa;", characters: "\u{29a8}", - }); + })); } - if first_char == 'a' && try_read("ngmsdab;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdab;")? { + return Ok(Some(CharRef { name: "ngmsdab;", characters: "\u{29a9}", - }); + })); } - if first_char == 'a' && try_read("ngmsdac;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdac;")? { + return Ok(Some(CharRef { name: "ngmsdac;", characters: "\u{29aa}", - }); + })); } - if first_char == 'a' && try_read("ngmsdad;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdad;")? { + return Ok(Some(CharRef { name: "ngmsdad;", characters: "\u{29ab}", - }); + })); } - if first_char == 'a' && try_read("ngmsdae;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdae;")? { + return Ok(Some(CharRef { name: "ngmsdae;", characters: "\u{29ac}", - }); + })); } - if first_char == 'a' && try_read("ngmsdaf;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdaf;")? { + return Ok(Some(CharRef { name: "ngmsdaf;", characters: "\u{29ad}", - }); + })); } - if first_char == 'a' && try_read("ngmsdag;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdag;")? { + return Ok(Some(CharRef { name: "ngmsdag;", characters: "\u{29ae}", - }); + })); } - if first_char == 'a' && try_read("ngmsdah;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsdah;")? { + return Ok(Some(CharRef { name: "ngmsdah;", characters: "\u{29af}", - }); + })); } - if first_char == 'a' && try_read("ngrtvbd;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngrtvbd;")? { + return Ok(Some(CharRef { name: "ngrtvbd;", characters: "\u{299d}", - }); + })); } - if first_char == 'a' && try_read("pproxeq;") { - return Some(CharRef { + if first_char == 'a' && try_read("pproxeq;")? { + return Ok(Some(CharRef { name: "pproxeq;", characters: "\u{224a}", - }); + })); } - if first_char == 'a' && try_read("wconint;") { - return Some(CharRef { + if first_char == 'a' && try_read("wconint;")? { + return Ok(Some(CharRef { name: "wconint;", characters: "\u{2233}", - }); + })); } - if first_char == 'b' && try_read("ackcong;") { - return Some(CharRef { + if first_char == 'b' && try_read("ackcong;")? { + return Ok(Some(CharRef { name: "ackcong;", characters: "\u{224c}", - }); + })); } - if first_char == 'b' && try_read("arwedge;") { - return Some(CharRef { + if first_char == 'b' && try_read("arwedge;")? { + return Ok(Some(CharRef { name: "arwedge;", characters: "\u{2305}", - }); + })); } - if first_char == 'b' && try_read("brktbrk;") { - return Some(CharRef { + if first_char == 'b' && try_read("brktbrk;")? { + return Ok(Some(CharRef { name: "brktbrk;", characters: "\u{23b6}", - }); + })); } - if first_char == 'b' && try_read("igoplus;") { - return Some(CharRef { + if first_char == 'b' && try_read("igoplus;")? { + return Ok(Some(CharRef { name: "igoplus;", characters: "\u{2a01}", - }); + })); } - if first_char == 'b' && try_read("igsqcup;") { - return Some(CharRef { + if first_char == 'b' && try_read("igsqcup;")? { + return Ok(Some(CharRef { name: "igsqcup;", characters: "\u{2a06}", - }); + })); } - if first_char == 'b' && try_read("iguplus;") { - return Some(CharRef { + if first_char == 'b' && try_read("iguplus;")? { + return Ok(Some(CharRef { name: "iguplus;", characters: "\u{2a04}", - }); + })); } - if first_char == 'b' && try_read("igwedge;") { - return Some(CharRef { + if first_char == 'b' && try_read("igwedge;")? { + return Ok(Some(CharRef { name: "igwedge;", characters: "\u{22c0}", - }); + })); } - if first_char == 'b' && try_read("oxminus;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxminus;")? { + return Ok(Some(CharRef { name: "oxminus;", characters: "\u{229f}", - }); + })); } - if first_char == 'b' && try_read("oxtimes;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxtimes;")? { + return Ok(Some(CharRef { name: "oxtimes;", characters: "\u{22a0}", - }); + })); } - if first_char == 'b' && try_read("solhsub;") { - return Some(CharRef { + if first_char == 'b' && try_read("solhsub;")? { + return Ok(Some(CharRef { name: "solhsub;", characters: "\u{27c8}", - }); + })); } - if first_char == 'c' && try_read("apbrcup;") { - return Some(CharRef { + if first_char == 'c' && try_read("apbrcup;")? { + return Ok(Some(CharRef { name: "apbrcup;", characters: "\u{2a49}", - }); + })); } - if first_char == 'c' && try_read("ircledR;") { - return Some(CharRef { + if first_char == 'c' && try_read("ircledR;")? { + return Ok(Some(CharRef { name: "ircledR;", characters: "\u{ae}", - }); + })); } - if first_char == 'c' && try_read("ircledS;") { - return Some(CharRef { + if first_char == 'c' && try_read("ircledS;")? { + return Ok(Some(CharRef { name: "ircledS;", characters: "\u{24c8}", - }); + })); } - if first_char == 'c' && try_read("irfnint;") { - return Some(CharRef { + if first_char == 'c' && try_read("irfnint;")? { + return Ok(Some(CharRef { name: "irfnint;", characters: "\u{2a10}", - }); + })); } - if first_char == 'c' && try_read("lubsuit;") { - return Some(CharRef { + if first_char == 'c' && try_read("lubsuit;")? { + return Ok(Some(CharRef { name: "lubsuit;", characters: "\u{2663}", - }); + })); } - if first_char == 'c' && try_read("upbrcap;") { - return Some(CharRef { + if first_char == 'c' && try_read("upbrcap;")? { + return Ok(Some(CharRef { name: "upbrcap;", characters: "\u{2a48}", - }); + })); } - if first_char == 'c' && try_read("urlyvee;") { - return Some(CharRef { + if first_char == 'c' && try_read("urlyvee;")? { + return Ok(Some(CharRef { name: "urlyvee;", characters: "\u{22ce}", - }); + })); } - if first_char == 'c' && try_read("wconint;") { - return Some(CharRef { + if first_char == 'c' && try_read("wconint;")? { + return Ok(Some(CharRef { name: "wconint;", characters: "\u{2232}", - }); + })); } - if first_char == 'd' && try_read("oteqdot;") { - return Some(CharRef { + if first_char == 'd' && try_read("oteqdot;")? { + return Ok(Some(CharRef { name: "oteqdot;", characters: "\u{2251}", - }); + })); } - if first_char == 'd' && try_read("otminus;") { - return Some(CharRef { + if first_char == 'd' && try_read("otminus;")? { + return Ok(Some(CharRef { name: "otminus;", characters: "\u{2238}", - }); + })); } - if first_char == 'd' && try_read("rbkarow;") { - return Some(CharRef { + if first_char == 'd' && try_read("rbkarow;")? { + return Ok(Some(CharRef { name: "rbkarow;", characters: "\u{2910}", - }); + })); } - if first_char == 'd' && try_read("zigrarr;") { - return Some(CharRef { + if first_char == 'd' && try_read("zigrarr;")? { + return Ok(Some(CharRef { name: "zigrarr;", characters: "\u{27ff}", - }); + })); } - if first_char == 'e' && try_read("linters;") { - return Some(CharRef { + if first_char == 'e' && try_read("linters;")? { + return Ok(Some(CharRef { name: "linters;", characters: "\u{23e7}", - }); + })); } - if first_char == 'e' && try_read("mptyset;") { - return Some(CharRef { + if first_char == 'e' && try_read("mptyset;")? { + return Ok(Some(CharRef { name: "mptyset;", characters: "\u{2205}", - }); + })); } - if first_char == 'e' && try_read("qvparsl;") { - return Some(CharRef { + if first_char == 'e' && try_read("qvparsl;")? { + return Ok(Some(CharRef { name: "qvparsl;", characters: "\u{29e5}", - }); + })); } - if first_char == 'f' && try_read("partint;") { - return Some(CharRef { + if first_char == 'f' && try_read("partint;")? { + return Ok(Some(CharRef { name: "partint;", characters: "\u{2a0d}", - }); + })); } - if first_char == 'g' && try_read("eqslant;") { - return Some(CharRef { + if first_char == 'g' && try_read("eqslant;")? { + return Ok(Some(CharRef { name: "eqslant;", characters: "\u{2a7e}", - }); + })); } - if first_char == 'g' && try_read("esdotol;") { - return Some(CharRef { + if first_char == 'g' && try_read("esdotol;")? { + return Ok(Some(CharRef { name: "esdotol;", characters: "\u{2a84}", - }); + })); } - if first_char == 'g' && try_read("napprox;") { - return Some(CharRef { + if first_char == 'g' && try_read("napprox;")? { + return Ok(Some(CharRef { name: "napprox;", characters: "\u{2a8a}", - }); + })); } - if first_char == 'h' && try_read("ksearow;") { - return Some(CharRef { + if first_char == 'h' && try_read("ksearow;")? { + return Ok(Some(CharRef { name: "ksearow;", characters: "\u{2925}", - }); + })); } - if first_char == 'h' && try_read("kswarow;") { - return Some(CharRef { + if first_char == 'h' && try_read("kswarow;")? { + return Ok(Some(CharRef { name: "kswarow;", characters: "\u{2926}", - }); + })); } - if first_char == 'i' && try_read("magline;") { - return Some(CharRef { + if first_char == 'i' && try_read("magline;")? { + return Ok(Some(CharRef { name: "magline;", characters: "\u{2110}", - }); + })); } - if first_char == 'i' && try_read("magpart;") { - return Some(CharRef { + if first_char == 'i' && try_read("magpart;")? { + return Ok(Some(CharRef { name: "magpart;", characters: "\u{2111}", - }); + })); } - if first_char == 'i' && try_read("nfintie;") { - return Some(CharRef { + if first_char == 'i' && try_read("nfintie;")? { + return Ok(Some(CharRef { name: "nfintie;", characters: "\u{29dd}", - }); + })); } - if first_char == 'i' && try_read("ntegers;") { - return Some(CharRef { + if first_char == 'i' && try_read("ntegers;")? { + return Ok(Some(CharRef { name: "ntegers;", characters: "\u{2124}", - }); + })); } - if first_char == 'i' && try_read("ntercal;") { - return Some(CharRef { + if first_char == 'i' && try_read("ntercal;")? { + return Ok(Some(CharRef { name: "ntercal;", characters: "\u{22ba}", - }); + })); } - if first_char == 'i' && try_read("ntlarhk;") { - return Some(CharRef { + if first_char == 'i' && try_read("ntlarhk;")? { + return Ok(Some(CharRef { name: "ntlarhk;", characters: "\u{2a17}", - }); + })); } - if first_char == 'l' && try_read("aemptyv;") { - return Some(CharRef { + if first_char == 'l' && try_read("aemptyv;")? { + return Ok(Some(CharRef { name: "aemptyv;", characters: "\u{29b4}", - }); + })); } - if first_char == 'l' && try_read("drushar;") { - return Some(CharRef { + if first_char == 'l' && try_read("drushar;")? { + return Ok(Some(CharRef { name: "drushar;", characters: "\u{294b}", - }); + })); } - if first_char == 'l' && try_read("eqslant;") { - return Some(CharRef { + if first_char == 'l' && try_read("eqslant;")? { + return Ok(Some(CharRef { name: "eqslant;", characters: "\u{2a7d}", - }); + })); } - if first_char == 'l' && try_read("esdotor;") { - return Some(CharRef { + if first_char == 'l' && try_read("esdotor;")? { + return Ok(Some(CharRef { name: "esdotor;", characters: "\u{2a83}", - }); + })); } - if first_char == 'l' && try_read("lcorner;") { - return Some(CharRef { + if first_char == 'l' && try_read("lcorner;")? { + return Ok(Some(CharRef { name: "lcorner;", characters: "\u{231e}", - }); + })); } - if first_char == 'l' && try_read("napprox;") { - return Some(CharRef { + if first_char == 'l' && try_read("napprox;")? { + return Ok(Some(CharRef { name: "napprox;", characters: "\u{2a89}", - }); + })); } - if first_char == 'l' && try_read("rcorner;") { - return Some(CharRef { + if first_char == 'l' && try_read("rcorner;")? { + return Ok(Some(CharRef { name: "rcorner;", characters: "\u{231f}", - }); + })); } - if first_char == 'l' && try_read("urdshar;") { - return Some(CharRef { + if first_char == 'l' && try_read("urdshar;")? { + return Ok(Some(CharRef { name: "urdshar;", characters: "\u{294a}", - }); + })); } - if first_char == 'm' && try_read("apstoup;") { - return Some(CharRef { + if first_char == 'm' && try_read("apstoup;")? { + return Ok(Some(CharRef { name: "apstoup;", characters: "\u{21a5}", - }); + })); } - if first_char == 'm' && try_read("ultimap;") { - return Some(CharRef { + if first_char == 'm' && try_read("ultimap;")? { + return Ok(Some(CharRef { name: "ultimap;", characters: "\u{22b8}", - }); + })); } - if first_char == 'n' && try_read("aturals;") { - return Some(CharRef { + if first_char == 'n' && try_read("aturals;")? { + return Ok(Some(CharRef { name: "aturals;", characters: "\u{2115}", - }); + })); } - if first_char == 'n' && try_read("congdot;") { - return Some(CharRef { + if first_char == 'n' && try_read("congdot;")? { + return Ok(Some(CharRef { name: "congdot;", characters: "\u{2a6d}\u{338}", - }); + })); } - if first_char == 'n' && try_read("otindot;") { - return Some(CharRef { + if first_char == 'n' && try_read("otindot;")? { + return Ok(Some(CharRef { name: "otindot;", characters: "\u{22f5}\u{338}", - }); + })); } - if first_char == 'o' && try_read("timesas;") { - return Some(CharRef { + if first_char == 'o' && try_read("timesas;")? { + return Ok(Some(CharRef { name: "timesas;", characters: "\u{2a36}", - }); + })); } - if first_char == 'p' && try_read("arallel;") { - return Some(CharRef { + if first_char == 'p' && try_read("arallel;")? { + return Ok(Some(CharRef { name: "arallel;", characters: "\u{2225}", - }); + })); } - if first_char == 'p' && try_read("lusacir;") { - return Some(CharRef { + if first_char == 'p' && try_read("lusacir;")? { + return Ok(Some(CharRef { name: "lusacir;", characters: "\u{2a23}", - }); + })); } - if first_char == 'p' && try_read("ointint;") { - return Some(CharRef { + if first_char == 'p' && try_read("ointint;")? { + return Ok(Some(CharRef { name: "ointint;", characters: "\u{2a15}", - }); + })); } - if first_char == 'p' && try_read("recneqq;") { - return Some(CharRef { + if first_char == 'p' && try_read("recneqq;")? { + return Ok(Some(CharRef { name: "recneqq;", characters: "\u{2ab5}", - }); + })); } - if first_char == 'p' && try_read("recnsim;") { - return Some(CharRef { + if first_char == 'p' && try_read("recnsim;")? { + return Ok(Some(CharRef { name: "recnsim;", characters: "\u{22e8}", - }); + })); } - if first_char == 'p' && try_read("rofalar;") { - return Some(CharRef { + if first_char == 'p' && try_read("rofalar;")? { + return Ok(Some(CharRef { name: "rofalar;", characters: "\u{232e}", - }); + })); } - if first_char == 'p' && try_read("rofline;") { - return Some(CharRef { + if first_char == 'p' && try_read("rofline;")? { + return Ok(Some(CharRef { name: "rofline;", characters: "\u{2312}", - }); + })); } - if first_char == 'p' && try_read("rofsurf;") { - return Some(CharRef { + if first_char == 'p' && try_read("rofsurf;")? { + return Ok(Some(CharRef { name: "rofsurf;", characters: "\u{2313}", - }); + })); } - if first_char == 'r' && try_read("aemptyv;") { - return Some(CharRef { + if first_char == 'r' && try_read("aemptyv;")? { + return Ok(Some(CharRef { name: "aemptyv;", characters: "\u{29b3}", - }); + })); } - if first_char == 'r' && try_read("ealpart;") { - return Some(CharRef { + if first_char == 'r' && try_read("ealpart;")? { + return Ok(Some(CharRef { name: "ealpart;", characters: "\u{211c}", - }); + })); } - if first_char == 'r' && try_read("ppolint;") { - return Some(CharRef { + if first_char == 'r' && try_read("ppolint;")? { + return Ok(Some(CharRef { name: "ppolint;", characters: "\u{2a12}", - }); + })); } - if first_char == 'r' && try_read("triltri;") { - return Some(CharRef { + if first_char == 'r' && try_read("triltri;")? { + return Ok(Some(CharRef { name: "triltri;", characters: "\u{29ce}", - }); + })); } - if first_char == 's' && try_read("cpolint;") { - return Some(CharRef { + if first_char == 's' && try_read("cpolint;")? { + return Ok(Some(CharRef { name: "cpolint;", characters: "\u{2a13}", - }); + })); } - if first_char == 's' && try_read("etminus;") { - return Some(CharRef { + if first_char == 's' && try_read("etminus;")? { + return Ok(Some(CharRef { name: "etminus;", characters: "\u{2216}", - }); + })); } - if first_char == 's' && try_read("hortmid;") { - return Some(CharRef { + if first_char == 's' && try_read("hortmid;")? { + return Ok(Some(CharRef { name: "hortmid;", characters: "\u{2223}", - }); + })); } - if first_char == 's' && try_read("meparsl;") { - return Some(CharRef { + if first_char == 's' && try_read("meparsl;")? { + return Ok(Some(CharRef { name: "meparsl;", characters: "\u{29e4}", - }); + })); } - if first_char == 's' && try_read("qsubset;") { - return Some(CharRef { + if first_char == 's' && try_read("qsubset;")? { + return Ok(Some(CharRef { name: "qsubset;", characters: "\u{228f}", - }); + })); } - if first_char == 's' && try_read("qsupset;") { - return Some(CharRef { + if first_char == 's' && try_read("qsupset;")? { + return Ok(Some(CharRef { name: "qsupset;", characters: "\u{2290}", - }); + })); } - if first_char == 's' && try_read("ubseteq;") { - return Some(CharRef { + if first_char == 's' && try_read("ubseteq;")? { + return Ok(Some(CharRef { name: "ubseteq;", characters: "\u{2286}", - }); + })); } - if first_char == 's' && try_read("uccneqq;") { - return Some(CharRef { + if first_char == 's' && try_read("uccneqq;")? { + return Ok(Some(CharRef { name: "uccneqq;", characters: "\u{2ab6}", - }); + })); } - if first_char == 's' && try_read("uccnsim;") { - return Some(CharRef { + if first_char == 's' && try_read("uccnsim;")? { + return Ok(Some(CharRef { name: "uccnsim;", characters: "\u{22e9}", - }); + })); } - if first_char == 's' && try_read("upseteq;") { - return Some(CharRef { + if first_char == 's' && try_read("upseteq;")? { + return Ok(Some(CharRef { name: "upseteq;", characters: "\u{2287}", - }); + })); } - if first_char == 't' && try_read("hetasym;") { - return Some(CharRef { + if first_char == 't' && try_read("hetasym;")? { + return Ok(Some(CharRef { name: "hetasym;", characters: "\u{3d1}", - }); + })); } - if first_char == 't' && try_read("hicksim;") { - return Some(CharRef { + if first_char == 't' && try_read("hicksim;")? { + return Ok(Some(CharRef { name: "hicksim;", characters: "\u{223c}", - }); + })); } - if first_char == 't' && try_read("imesbar;") { - return Some(CharRef { + if first_char == 't' && try_read("imesbar;")? { + return Ok(Some(CharRef { name: "imesbar;", characters: "\u{2a31}", - }); + })); } - if first_char == 't' && try_read("riangle;") { - return Some(CharRef { + if first_char == 't' && try_read("riangle;")? { + return Ok(Some(CharRef { name: "riangle;", characters: "\u{25b5}", - }); + })); } - if first_char == 't' && try_read("riminus;") { - return Some(CharRef { + if first_char == 't' && try_read("riminus;")? { + return Ok(Some(CharRef { name: "riminus;", characters: "\u{2a3a}", - }); + })); } - if first_char == 't' && try_read("rpezium;") { - return Some(CharRef { + if first_char == 't' && try_read("rpezium;")? { + return Ok(Some(CharRef { name: "rpezium;", characters: "\u{23e2}", - }); + })); } - if first_char == 'u' && try_read("lcorner;") { - return Some(CharRef { + if first_char == 'u' && try_read("lcorner;")? { + return Ok(Some(CharRef { name: "lcorner;", characters: "\u{231c}", - }); + })); } - if first_char == 'u' && try_read("rcorner;") { - return Some(CharRef { + if first_char == 'u' && try_read("rcorner;")? { + return Ok(Some(CharRef { name: "rcorner;", characters: "\u{231d}", - }); + })); } - if first_char == 'v' && try_read("arkappa;") { - return Some(CharRef { + if first_char == 'v' && try_read("arkappa;")? { + return Ok(Some(CharRef { name: "arkappa;", characters: "\u{3f0}", - }); + })); } - if first_char == 'v' && try_read("arsigma;") { - return Some(CharRef { + if first_char == 'v' && try_read("arsigma;")? { + return Ok(Some(CharRef { name: "arsigma;", characters: "\u{3c2}", - }); + })); } - if first_char == 'v' && try_read("artheta;") { - return Some(CharRef { + if first_char == 'v' && try_read("artheta;")? { + return Ok(Some(CharRef { name: "artheta;", characters: "\u{3d1}", - }); + })); } - if first_char == 'B' && try_read("ecause;") { - return Some(CharRef { + if first_char == 'B' && try_read("ecause;")? { + return Ok(Some(CharRef { name: "ecause;", characters: "\u{2235}", - }); + })); } - if first_char == 'C' && try_read("ayleys;") { - return Some(CharRef { + if first_char == 'C' && try_read("ayleys;")? { + return Ok(Some(CharRef { name: "ayleys;", characters: "\u{212d}", - }); + })); } - if first_char == 'C' && try_read("conint;") { - return Some(CharRef { + if first_char == 'C' && try_read("conint;")? { + return Ok(Some(CharRef { name: "conint;", characters: "\u{2230}", - }); + })); } - if first_char == 'C' && try_read("edilla;") { - return Some(CharRef { + if first_char == 'C' && try_read("edilla;")? { + return Ok(Some(CharRef { name: "edilla;", characters: "\u{b8}", - }); + })); } - if first_char == 'D' && try_read("iamond;") { - return Some(CharRef { + if first_char == 'D' && try_read("iamond;")? { + return Ok(Some(CharRef { name: "iamond;", characters: "\u{22c4}", - }); + })); } - if first_char == 'D' && try_read("ownTee;") { - return Some(CharRef { + if first_char == 'D' && try_read("ownTee;")? { + return Ok(Some(CharRef { name: "ownTee;", characters: "\u{22a4}", - }); + })); } - if first_char == 'E' && try_read("lement;") { - return Some(CharRef { + if first_char == 'E' && try_read("lement;")? { + return Ok(Some(CharRef { name: "lement;", characters: "\u{2208}", - }); + })); } - if first_char == 'E' && try_read("psilon;") { - return Some(CharRef { + if first_char == 'E' && try_read("psilon;")? { + return Ok(Some(CharRef { name: "psilon;", characters: "\u{395}", - }); + })); } - if first_char == 'I' && try_read("mplies;") { - return Some(CharRef { + if first_char == 'I' && try_read("mplies;")? { + return Ok(Some(CharRef { name: "mplies;", characters: "\u{21d2}", - }); + })); } - if first_char == 'L' && try_read("eftTee;") { - return Some(CharRef { + if first_char == 'L' && try_read("eftTee;")? { + return Ok(Some(CharRef { name: "eftTee;", characters: "\u{22a3}", - }); + })); } - if first_char == 'N' && try_read("ewLine;") { - return Some(CharRef { + if first_char == 'N' && try_read("ewLine;")? { + return Ok(Some(CharRef { name: "ewLine;", characters: "\u{a}", - }); + })); } - if first_char == 'N' && try_read("oBreak;") { - return Some(CharRef { + if first_char == 'N' && try_read("oBreak;")? { + return Ok(Some(CharRef { name: "oBreak;", characters: "\u{2060}", - }); + })); } - if first_char == 'N' && try_read("otLess;") { - return Some(CharRef { + if first_char == 'N' && try_read("otLess;")? { + return Ok(Some(CharRef { name: "otLess;", characters: "\u{226e}", - }); + })); } - if first_char == 'O' && try_read("micron;") { - return Some(CharRef { + if first_char == 'O' && try_read("micron;")? { + return Ok(Some(CharRef { name: "micron;", characters: "\u{39f}", - }); + })); } - if first_char == 'O' && try_read("verBar;") { - return Some(CharRef { + if first_char == 'O' && try_read("verBar;")? { + return Ok(Some(CharRef { name: "verBar;", characters: "\u{203e}", - }); + })); } - if first_char == 'P' && try_read("roduct;") { - return Some(CharRef { + if first_char == 'P' && try_read("roduct;")? { + return Ok(Some(CharRef { name: "roduct;", characters: "\u{220f}", - }); + })); } - if first_char == 'U' && try_read("pArrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("pArrow;")? { + return Ok(Some(CharRef { name: "pArrow;", characters: "\u{2191}", - }); + })); } - if first_char == 'U' && try_read("parrow;") { - return Some(CharRef { + if first_char == 'U' && try_read("parrow;")? { + return Ok(Some(CharRef { name: "parrow;", characters: "\u{21d1}", - }); + })); } - if first_char == 'U' && try_read("psilon;") { - return Some(CharRef { + if first_char == 'U' && try_read("psilon;")? { + return Ok(Some(CharRef { name: "psilon;", characters: "\u{3a5}", - }); + })); } - if first_char == 'a' && try_read("lefsym;") { - return Some(CharRef { + if first_char == 'a' && try_read("lefsym;")? { + return Ok(Some(CharRef { name: "lefsym;", characters: "\u{2135}", - }); + })); } - if first_char == 'a' && try_read("ngrtvb;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngrtvb;")? { + return Ok(Some(CharRef { name: "ngrtvb;", characters: "\u{22be}", - }); + })); } - if first_char == 'a' && try_read("ngzarr;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngzarr;")? { + return Ok(Some(CharRef { name: "ngzarr;", characters: "\u{237c}", - }); + })); } - if first_char == 'a' && try_read("sympeq;") { - return Some(CharRef { + if first_char == 'a' && try_read("sympeq;")? { + return Ok(Some(CharRef { name: "sympeq;", characters: "\u{224d}", - }); + })); } - if first_char == 'b' && try_read("acksim;") { - return Some(CharRef { + if first_char == 'b' && try_read("acksim;")? { + return Ok(Some(CharRef { name: "acksim;", characters: "\u{223d}", - }); + })); } - if first_char == 'b' && try_read("ecause;") { - return Some(CharRef { + if first_char == 'b' && try_read("ecause;")? { + return Ok(Some(CharRef { name: "ecause;", characters: "\u{2235}", - }); + })); } - if first_char == 'b' && try_read("emptyv;") { - return Some(CharRef { + if first_char == 'b' && try_read("emptyv;")? { + return Ok(Some(CharRef { name: "emptyv;", characters: "\u{29b0}", - }); + })); } - if first_char == 'b' && try_read("etween;") { - return Some(CharRef { + if first_char == 'b' && try_read("etween;")? { + return Ok(Some(CharRef { name: "etween;", characters: "\u{226c}", - }); + })); } - if first_char == 'b' && try_read("igcirc;") { - return Some(CharRef { + if first_char == 'b' && try_read("igcirc;")? { + return Ok(Some(CharRef { name: "igcirc;", characters: "\u{25ef}", - }); + })); } - if first_char == 'b' && try_read("igodot;") { - return Some(CharRef { + if first_char == 'b' && try_read("igodot;")? { + return Ok(Some(CharRef { name: "igodot;", characters: "\u{2a00}", - }); + })); } - if first_char == 'b' && try_read("igstar;") { - return Some(CharRef { + if first_char == 'b' && try_read("igstar;")? { + return Ok(Some(CharRef { name: "igstar;", characters: "\u{2605}", - }); + })); } - if first_char == 'b' && try_read("nequiv;") { - return Some(CharRef { + if first_char == 'b' && try_read("nequiv;")? { + return Ok(Some(CharRef { name: "nequiv;", characters: "\u{2261}\u{20e5}", - }); + })); } - if first_char == 'b' && try_read("oxplus;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxplus;")? { + return Ok(Some(CharRef { name: "oxplus;", characters: "\u{229e}", - }); + })); } - if first_char == 'c' && try_read("cupssm;") { - return Some(CharRef { + if first_char == 'c' && try_read("cupssm;")? { + return Ok(Some(CharRef { name: "cupssm;", characters: "\u{2a50}", - }); + })); } - if first_char == 'c' && try_read("emptyv;") { - return Some(CharRef { + if first_char == 'c' && try_read("emptyv;")? { + return Ok(Some(CharRef { name: "emptyv;", characters: "\u{29b2}", - }); + })); } - if first_char == 'c' && try_read("irscir;") { - return Some(CharRef { + if first_char == 'c' && try_read("irscir;")? { + return Ok(Some(CharRef { name: "irscir;", characters: "\u{29c2}", - }); + })); } - if first_char == 'c' && try_read("oloneq;") { - return Some(CharRef { + if first_char == 'c' && try_read("oloneq;")? { + return Ok(Some(CharRef { name: "oloneq;", characters: "\u{2254}", - }); + })); } - if first_char == 'c' && try_read("ongdot;") { - return Some(CharRef { + if first_char == 'c' && try_read("ongdot;")? { + return Ok(Some(CharRef { name: "ongdot;", characters: "\u{2a6d}", - }); + })); } - if first_char == 'c' && try_read("udarrl;") { - return Some(CharRef { + if first_char == 'c' && try_read("udarrl;")? { + return Ok(Some(CharRef { name: "udarrl;", characters: "\u{2938}", - }); + })); } - if first_char == 'c' && try_read("udarrr;") { - return Some(CharRef { + if first_char == 'c' && try_read("udarrr;")? { + return Ok(Some(CharRef { name: "udarrr;", characters: "\u{2935}", - }); + })); } - if first_char == 'c' && try_read("ularrp;") { - return Some(CharRef { + if first_char == 'c' && try_read("ularrp;")? { + return Ok(Some(CharRef { name: "ularrp;", characters: "\u{293d}", - }); + })); } - if first_char == 'c' && try_read("urarrm;") { - return Some(CharRef { + if first_char == 'c' && try_read("urarrm;")? { + return Ok(Some(CharRef { name: "urarrm;", characters: "\u{293c}", - }); + })); } - if first_char == 'd' && try_read("bkarow;") { - return Some(CharRef { + if first_char == 'd' && try_read("bkarow;")? { + return Ok(Some(CharRef { name: "bkarow;", characters: "\u{290f}", - }); + })); } - if first_char == 'd' && try_read("dagger;") { - return Some(CharRef { + if first_char == 'd' && try_read("dagger;")? { + return Ok(Some(CharRef { name: "dagger;", characters: "\u{2021}", - }); + })); } - if first_char == 'd' && try_read("dotseq;") { - return Some(CharRef { + if first_char == 'd' && try_read("dotseq;")? { + return Ok(Some(CharRef { name: "dotseq;", characters: "\u{2a77}", - }); + })); } - if first_char == 'd' && try_read("emptyv;") { - return Some(CharRef { + if first_char == 'd' && try_read("emptyv;")? { + return Ok(Some(CharRef { name: "emptyv;", characters: "\u{29b1}", - }); + })); } - if first_char == 'd' && try_read("iamond;") { - return Some(CharRef { + if first_char == 'd' && try_read("iamond;")? { + return Ok(Some(CharRef { name: "iamond;", characters: "\u{22c4}", - }); + })); } - if first_char == 'd' && try_read("igamma;") { - return Some(CharRef { + if first_char == 'd' && try_read("igamma;")? { + return Ok(Some(CharRef { name: "igamma;", characters: "\u{3dd}", - }); + })); } - if first_char == 'd' && try_read("otplus;") { - return Some(CharRef { + if first_char == 'd' && try_read("otplus;")? { + return Ok(Some(CharRef { name: "otplus;", characters: "\u{2214}", - }); + })); } - if first_char == 'd' && try_read("wangle;") { - return Some(CharRef { + if first_char == 'd' && try_read("wangle;")? { + return Ok(Some(CharRef { name: "wangle;", characters: "\u{29a6}", - }); + })); } - if first_char == 'e' && try_read("psilon;") { - return Some(CharRef { + if first_char == 'e' && try_read("psilon;")? { + return Ok(Some(CharRef { name: "psilon;", characters: "\u{3b5}", - }); + })); } - if first_char == 'e' && try_read("qcolon;") { - return Some(CharRef { + if first_char == 'e' && try_read("qcolon;")? { + return Ok(Some(CharRef { name: "qcolon;", characters: "\u{2255}", - }); + })); } - if first_char == 'e' && try_read("quivDD;") { - return Some(CharRef { + if first_char == 'e' && try_read("quivDD;")? { + return Ok(Some(CharRef { name: "quivDD;", characters: "\u{2a78}", - }); + })); } - if first_char == 'g' && try_read("esdoto;") { - return Some(CharRef { + if first_char == 'g' && try_read("esdoto;")? { + return Ok(Some(CharRef { name: "esdoto;", characters: "\u{2a82}", - }); + })); } - if first_char == 'g' && try_read("tquest;") { - return Some(CharRef { + if first_char == 'g' && try_read("tquest;")? { + return Ok(Some(CharRef { name: "tquest;", characters: "\u{2a7c}", - }); + })); } - if first_char == 'g' && try_read("trless;") { - return Some(CharRef { + if first_char == 'g' && try_read("trless;")? { + return Ok(Some(CharRef { name: "trless;", characters: "\u{2277}", - }); + })); } - if first_char == 'h' && try_read("arrcir;") { - return Some(CharRef { + if first_char == 'h' && try_read("arrcir;")? { + return Ok(Some(CharRef { name: "arrcir;", characters: "\u{2948}", - }); + })); } - if first_char == 'i' && try_read("ntprod;") { - return Some(CharRef { + if first_char == 'i' && try_read("ntprod;")? { + return Ok(Some(CharRef { name: "ntprod;", characters: "\u{2a3c}", - }); + })); } - if first_char == 'i' && try_read("sindot;") { - return Some(CharRef { + if first_char == 'i' && try_read("sindot;")? { + return Ok(Some(CharRef { name: "sindot;", characters: "\u{22f5}", - }); + })); } - if first_char == 'l' && try_read("arrbfs;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrbfs;")? { + return Ok(Some(CharRef { name: "arrbfs;", characters: "\u{291f}", - }); + })); } - if first_char == 'l' && try_read("arrsim;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrsim;")? { + return Ok(Some(CharRef { name: "arrsim;", characters: "\u{2973}", - }); + })); } - if first_char == 'l' && try_read("brksld;") { - return Some(CharRef { + if first_char == 'l' && try_read("brksld;")? { + return Ok(Some(CharRef { name: "brksld;", characters: "\u{298f}", - }); + })); } - if first_char == 'l' && try_read("brkslu;") { - return Some(CharRef { + if first_char == 'l' && try_read("brkslu;")? { + return Ok(Some(CharRef { name: "brkslu;", characters: "\u{298d}", - }); + })); } - if first_char == 'l' && try_read("drdhar;") { - return Some(CharRef { + if first_char == 'l' && try_read("drdhar;")? { + return Ok(Some(CharRef { name: "drdhar;", characters: "\u{2967}", - }); + })); } - if first_char == 'l' && try_read("esdoto;") { - return Some(CharRef { + if first_char == 'l' && try_read("esdoto;")? { + return Ok(Some(CharRef { name: "esdoto;", characters: "\u{2a81}", - }); + })); } - if first_char == 'l' && try_read("essdot;") { - return Some(CharRef { + if first_char == 'l' && try_read("essdot;")? { + return Ok(Some(CharRef { name: "essdot;", characters: "\u{22d6}", - }); + })); } - if first_char == 'l' && try_read("essgtr;") { - return Some(CharRef { + if first_char == 'l' && try_read("essgtr;")? { + return Ok(Some(CharRef { name: "essgtr;", characters: "\u{2276}", - }); + })); } - if first_char == 'l' && try_read("esssim;") { - return Some(CharRef { + if first_char == 'l' && try_read("esssim;")? { + return Ok(Some(CharRef { name: "esssim;", characters: "\u{2272}", - }); + })); } - if first_char == 'l' && try_read("otimes;") { - return Some(CharRef { + if first_char == 'l' && try_read("otimes;")? { + return Ok(Some(CharRef { name: "otimes;", characters: "\u{2a34}", - }); + })); } - if first_char == 'l' && try_read("ozenge;") { - return Some(CharRef { + if first_char == 'l' && try_read("ozenge;")? { + return Ok(Some(CharRef { name: "ozenge;", characters: "\u{25ca}", - }); + })); } - if first_char == 'l' && try_read("tquest;") { - return Some(CharRef { + if first_char == 'l' && try_read("tquest;")? { + return Ok(Some(CharRef { name: "tquest;", characters: "\u{2a7b}", - }); + })); } - if first_char == 'l' && try_read("uruhar;") { - return Some(CharRef { + if first_char == 'l' && try_read("uruhar;")? { + return Ok(Some(CharRef { name: "uruhar;", characters: "\u{2966}", - }); + })); } - if first_char == 'm' && try_read("altese;") { - return Some(CharRef { + if first_char == 'm' && try_read("altese;")? { + return Ok(Some(CharRef { name: "altese;", characters: "\u{2720}", - }); + })); } - if first_char == 'm' && try_read("inusdu;") { - return Some(CharRef { + if first_char == 'm' && try_read("inusdu;")? { + return Ok(Some(CharRef { name: "inusdu;", characters: "\u{2a2a}", - }); + })); } - if first_char == 'n' && try_read("approx;") { - return Some(CharRef { + if first_char == 'n' && try_read("approx;")? { + return Ok(Some(CharRef { name: "approx;", characters: "\u{2249}", - }); + })); } - if first_char == 'n' && try_read("atural;") { - return Some(CharRef { + if first_char == 'n' && try_read("atural;")? { + return Ok(Some(CharRef { name: "atural;", characters: "\u{266e}", - }); + })); } - if first_char == 'n' && try_read("earrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("earrow;")? { + return Ok(Some(CharRef { name: "earrow;", characters: "\u{2197}", - }); + })); } - if first_char == 'n' && try_read("exists;") { - return Some(CharRef { + if first_char == 'n' && try_read("exists;")? { + return Ok(Some(CharRef { name: "exists;", characters: "\u{2204}", - }); + })); } - if first_char == 'n' && try_read("otinva;") { - return Some(CharRef { + if first_char == 'n' && try_read("otinva;")? { + return Ok(Some(CharRef { name: "otinva;", characters: "\u{2209}", - }); + })); } - if first_char == 'n' && try_read("otinvb;") { - return Some(CharRef { + if first_char == 'n' && try_read("otinvb;")? { + return Ok(Some(CharRef { name: "otinvb;", characters: "\u{22f7}", - }); + })); } - if first_char == 'n' && try_read("otinvc;") { - return Some(CharRef { + if first_char == 'n' && try_read("otinvc;")? { + return Ok(Some(CharRef { name: "otinvc;", characters: "\u{22f6}", - }); + })); } - if first_char == 'n' && try_read("otniva;") { - return Some(CharRef { + if first_char == 'n' && try_read("otniva;")? { + return Ok(Some(CharRef { name: "otniva;", characters: "\u{220c}", - }); + })); } - if first_char == 'n' && try_read("otnivb;") { - return Some(CharRef { + if first_char == 'n' && try_read("otnivb;")? { + return Ok(Some(CharRef { name: "otnivb;", characters: "\u{22fe}", - }); + })); } - if first_char == 'n' && try_read("otnivc;") { - return Some(CharRef { + if first_char == 'n' && try_read("otnivc;")? { + return Ok(Some(CharRef { name: "otnivc;", characters: "\u{22fd}", - }); + })); } - if first_char == 'n' && try_read("polint;") { - return Some(CharRef { + if first_char == 'n' && try_read("polint;")? { + return Ok(Some(CharRef { name: "polint;", characters: "\u{2a14}", - }); + })); } - if first_char == 'n' && try_read("preceq;") { - return Some(CharRef { + if first_char == 'n' && try_read("preceq;")? { + return Ok(Some(CharRef { name: "preceq;", characters: "\u{2aaf}\u{338}", - }); + })); } - if first_char == 'n' && try_read("sqsube;") { - return Some(CharRef { + if first_char == 'n' && try_read("sqsube;")? { + return Ok(Some(CharRef { name: "sqsube;", characters: "\u{22e2}", - }); + })); } - if first_char == 'n' && try_read("sqsupe;") { - return Some(CharRef { + if first_char == 'n' && try_read("sqsupe;")? { + return Ok(Some(CharRef { name: "sqsupe;", characters: "\u{22e3}", - }); + })); } - if first_char == 'n' && try_read("subset;") { - return Some(CharRef { + if first_char == 'n' && try_read("subset;")? { + return Ok(Some(CharRef { name: "subset;", characters: "\u{2282}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("succeq;") { - return Some(CharRef { + if first_char == 'n' && try_read("succeq;")? { + return Ok(Some(CharRef { name: "succeq;", characters: "\u{2ab0}\u{338}", - }); + })); } - if first_char == 'n' && try_read("supset;") { - return Some(CharRef { + if first_char == 'n' && try_read("supset;")? { + return Ok(Some(CharRef { name: "supset;", characters: "\u{2283}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vinfin;") { - return Some(CharRef { + if first_char == 'n' && try_read("vinfin;")? { + return Ok(Some(CharRef { name: "vinfin;", characters: "\u{29de}", - }); + })); } - if first_char == 'n' && try_read("vltrie;") { - return Some(CharRef { + if first_char == 'n' && try_read("vltrie;")? { + return Ok(Some(CharRef { name: "vltrie;", characters: "\u{22b4}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vrtrie;") { - return Some(CharRef { + if first_char == 'n' && try_read("vrtrie;")? { + return Ok(Some(CharRef { name: "vrtrie;", characters: "\u{22b5}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("warrow;") { - return Some(CharRef { + if first_char == 'n' && try_read("warrow;")? { + return Ok(Some(CharRef { name: "warrow;", characters: "\u{2196}", - }); + })); } - if first_char == 'o' && try_read("lcross;") { - return Some(CharRef { + if first_char == 'o' && try_read("lcross;")? { + return Ok(Some(CharRef { name: "lcross;", characters: "\u{29bb}", - }); + })); } - if first_char == 'o' && try_read("micron;") { - return Some(CharRef { + if first_char == 'o' && try_read("micron;")? { + return Ok(Some(CharRef { name: "micron;", characters: "\u{3bf}", - }); + })); } - if first_char == 'o' && try_read("rderof;") { - return Some(CharRef { + if first_char == 'o' && try_read("rderof;")? { + return Ok(Some(CharRef { name: "rderof;", characters: "\u{2134}", - }); + })); } - if first_char == 'o' && try_read("rslope;") { - return Some(CharRef { + if first_char == 'o' && try_read("rslope;")? { + return Ok(Some(CharRef { name: "rslope;", characters: "\u{2a57}", - }); + })); } - if first_char == 'p' && try_read("ertenk;") { - return Some(CharRef { + if first_char == 'p' && try_read("ertenk;")? { + return Ok(Some(CharRef { name: "ertenk;", characters: "\u{2031}", - }); + })); } - if first_char == 'p' && try_read("lanckh;") { - return Some(CharRef { + if first_char == 'p' && try_read("lanckh;")? { + return Ok(Some(CharRef { name: "lanckh;", characters: "\u{210e}", - }); + })); } - if first_char == 'p' && try_read("luscir;") { - return Some(CharRef { + if first_char == 'p' && try_read("luscir;")? { + return Ok(Some(CharRef { name: "luscir;", characters: "\u{2a22}", - }); + })); } - if first_char == 'p' && try_read("lussim;") { - return Some(CharRef { + if first_char == 'p' && try_read("lussim;")? { + return Ok(Some(CharRef { name: "lussim;", characters: "\u{2a26}", - }); + })); } - if first_char == 'p' && try_read("lustwo;") { - return Some(CharRef { + if first_char == 'p' && try_read("lustwo;")? { + return Ok(Some(CharRef { name: "lustwo;", characters: "\u{2a27}", - }); + })); } - if first_char == 'p' && try_read("recsim;") { - return Some(CharRef { + if first_char == 'p' && try_read("recsim;")? { + return Ok(Some(CharRef { name: "recsim;", characters: "\u{227e}", - }); + })); } - if first_char == 'q' && try_read("uatint;") { - return Some(CharRef { + if first_char == 'q' && try_read("uatint;")? { + return Ok(Some(CharRef { name: "uatint;", characters: "\u{2a16}", - }); + })); } - if first_char == 'q' && try_read("uesteq;") { - return Some(CharRef { + if first_char == 'q' && try_read("uesteq;")? { + return Ok(Some(CharRef { name: "uesteq;", characters: "\u{225f}", - }); + })); } - if first_char == 'r' && try_read("arrbfs;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrbfs;")? { + return Ok(Some(CharRef { name: "arrbfs;", characters: "\u{2920}", - }); + })); } - if first_char == 'r' && try_read("arrsim;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrsim;")? { + return Ok(Some(CharRef { name: "arrsim;", characters: "\u{2974}", - }); + })); } - if first_char == 'r' && try_read("brksld;") { - return Some(CharRef { + if first_char == 'r' && try_read("brksld;")? { + return Ok(Some(CharRef { name: "brksld;", characters: "\u{298e}", - }); + })); } - if first_char == 'r' && try_read("brkslu;") { - return Some(CharRef { + if first_char == 'r' && try_read("brkslu;")? { + return Ok(Some(CharRef { name: "brkslu;", characters: "\u{2990}", - }); + })); } - if first_char == 'r' && try_read("dldhar;") { - return Some(CharRef { + if first_char == 'r' && try_read("dldhar;")? { + return Ok(Some(CharRef { name: "dldhar;", characters: "\u{2969}", - }); + })); } - if first_char == 'r' && try_read("ealine;") { - return Some(CharRef { + if first_char == 'r' && try_read("ealine;")? { + return Ok(Some(CharRef { name: "ealine;", characters: "\u{211b}", - }); + })); } - if first_char == 'r' && try_read("otimes;") { - return Some(CharRef { + if first_char == 'r' && try_read("otimes;")? { + return Ok(Some(CharRef { name: "otimes;", characters: "\u{2a35}", - }); + })); } - if first_char == 'r' && try_read("uluhar;") { - return Some(CharRef { + if first_char == 'r' && try_read("uluhar;")? { + return Ok(Some(CharRef { name: "uluhar;", characters: "\u{2968}", - }); + })); } - if first_char == 's' && try_read("earrow;") { - return Some(CharRef { + if first_char == 's' && try_read("earrow;")? { + return Ok(Some(CharRef { name: "earrow;", characters: "\u{2198}", - }); + })); } - if first_char == 's' && try_read("implus;") { - return Some(CharRef { + if first_char == 's' && try_read("implus;")? { + return Ok(Some(CharRef { name: "implus;", characters: "\u{2a24}", - }); + })); } - if first_char == 's' && try_read("imrarr;") { - return Some(CharRef { + if first_char == 's' && try_read("imrarr;")? { + return Ok(Some(CharRef { name: "imrarr;", characters: "\u{2972}", - }); + })); } - if first_char == 's' && try_read("ubedot;") { - return Some(CharRef { + if first_char == 's' && try_read("ubedot;")? { + return Ok(Some(CharRef { name: "ubedot;", characters: "\u{2ac3}", - }); + })); } - if first_char == 's' && try_read("ubmult;") { - return Some(CharRef { + if first_char == 's' && try_read("ubmult;")? { + return Ok(Some(CharRef { name: "ubmult;", characters: "\u{2ac1}", - }); + })); } - if first_char == 's' && try_read("ubplus;") { - return Some(CharRef { + if first_char == 's' && try_read("ubplus;")? { + return Ok(Some(CharRef { name: "ubplus;", characters: "\u{2abf}", - }); + })); } - if first_char == 's' && try_read("ubrarr;") { - return Some(CharRef { + if first_char == 's' && try_read("ubrarr;")? { + return Ok(Some(CharRef { name: "ubrarr;", characters: "\u{2979}", - }); + })); } - if first_char == 's' && try_read("uccsim;") { - return Some(CharRef { + if first_char == 's' && try_read("uccsim;")? { + return Ok(Some(CharRef { name: "uccsim;", characters: "\u{227f}", - }); + })); } - if first_char == 's' && try_read("updsub;") { - return Some(CharRef { + if first_char == 's' && try_read("updsub;")? { + return Ok(Some(CharRef { name: "updsub;", characters: "\u{2ad8}", - }); + })); } - if first_char == 's' && try_read("upedot;") { - return Some(CharRef { + if first_char == 's' && try_read("upedot;")? { + return Ok(Some(CharRef { name: "upedot;", characters: "\u{2ac4}", - }); + })); } - if first_char == 's' && try_read("uphsol;") { - return Some(CharRef { + if first_char == 's' && try_read("uphsol;")? { + return Ok(Some(CharRef { name: "uphsol;", characters: "\u{27c9}", - }); + })); } - if first_char == 's' && try_read("uphsub;") { - return Some(CharRef { + if first_char == 's' && try_read("uphsub;")? { + return Ok(Some(CharRef { name: "uphsub;", characters: "\u{2ad7}", - }); + })); } - if first_char == 's' && try_read("uplarr;") { - return Some(CharRef { + if first_char == 's' && try_read("uplarr;")? { + return Ok(Some(CharRef { name: "uplarr;", characters: "\u{297b}", - }); + })); } - if first_char == 's' && try_read("upmult;") { - return Some(CharRef { + if first_char == 's' && try_read("upmult;")? { + return Ok(Some(CharRef { name: "upmult;", characters: "\u{2ac2}", - }); + })); } - if first_char == 's' && try_read("upplus;") { - return Some(CharRef { + if first_char == 's' && try_read("upplus;")? { + return Ok(Some(CharRef { name: "upplus;", characters: "\u{2ac0}", - }); + })); } - if first_char == 's' && try_read("warrow;") { - return Some(CharRef { + if first_char == 's' && try_read("warrow;")? { + return Ok(Some(CharRef { name: "warrow;", characters: "\u{2199}", - }); + })); } - if first_char == 't' && try_read("opfork;") { - return Some(CharRef { + if first_char == 't' && try_read("opfork;")? { + return Ok(Some(CharRef { name: "opfork;", characters: "\u{2ada}", - }); + })); } - if first_char == 't' && try_read("riplus;") { - return Some(CharRef { + if first_char == 't' && try_read("riplus;")? { + return Ok(Some(CharRef { name: "riplus;", characters: "\u{2a39}", - }); + })); } - if first_char == 't' && try_read("ritime;") { - return Some(CharRef { + if first_char == 't' && try_read("ritime;")? { + return Ok(Some(CharRef { name: "ritime;", characters: "\u{2a3b}", - }); + })); } - if first_char == 'u' && try_read("parrow;") { - return Some(CharRef { + if first_char == 'u' && try_read("parrow;")? { + return Ok(Some(CharRef { name: "parrow;", characters: "\u{2191}", - }); + })); } - if first_char == 'u' && try_read("psilon;") { - return Some(CharRef { + if first_char == 'u' && try_read("psilon;")? { + return Ok(Some(CharRef { name: "psilon;", characters: "\u{3c5}", - }); + })); } - if first_char == 'u' && try_read("wangle;") { - return Some(CharRef { + if first_char == 'u' && try_read("wangle;")? { + return Ok(Some(CharRef { name: "wangle;", characters: "\u{29a7}", - }); + })); } - if first_char == 'v' && try_read("zigzag;") { - return Some(CharRef { + if first_char == 'v' && try_read("zigzag;")? { + return Ok(Some(CharRef { name: "zigzag;", characters: "\u{299a}", - }); + })); } - if first_char == 'z' && try_read("igrarr;") { - return Some(CharRef { + if first_char == 'z' && try_read("igrarr;")? { + return Ok(Some(CharRef { name: "igrarr;", characters: "\u{21dd}", - }); + })); } - if first_char == 'A' && try_read("acute;") { - return Some(CharRef { + if first_char == 'A' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{c1}", - }); + })); } - if first_char == 'A' && try_read("breve;") { - return Some(CharRef { + if first_char == 'A' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{102}", - }); + })); } - if first_char == 'A' && try_read("grave;") { - return Some(CharRef { + if first_char == 'A' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{c0}", - }); + })); } - if first_char == 'A' && try_read("ssign;") { - return Some(CharRef { + if first_char == 'A' && try_read("ssign;")? { + return Ok(Some(CharRef { name: "ssign;", characters: "\u{2254}", - }); + })); } - if first_char == 'A' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'A' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{c3}", - }); + })); } - if first_char == 'B' && try_read("arwed;") { - return Some(CharRef { + if first_char == 'B' && try_read("arwed;")? { + return Ok(Some(CharRef { name: "arwed;", characters: "\u{2306}", - }); + })); } - if first_char == 'B' && try_read("umpeq;") { - return Some(CharRef { + if first_char == 'B' && try_read("umpeq;")? { + return Ok(Some(CharRef { name: "umpeq;", characters: "\u{224e}", - }); + })); } - if first_char == 'C' && try_read("acute;") { - return Some(CharRef { + if first_char == 'C' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{106}", - }); + })); } - if first_char == 'C' && try_read("caron;") { - return Some(CharRef { + if first_char == 'C' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{10c}", - }); + })); } - if first_char == 'C' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'C' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{c7}", - }); + })); } - if first_char == 'C' && try_read("olone;") { - return Some(CharRef { + if first_char == 'C' && try_read("olone;")? { + return Ok(Some(CharRef { name: "olone;", characters: "\u{2a74}", - }); + })); } - if first_char == 'C' && try_read("onint;") { - return Some(CharRef { + if first_char == 'C' && try_read("onint;")? { + return Ok(Some(CharRef { name: "onint;", characters: "\u{222f}", - }); + })); } - if first_char == 'C' && try_read("upCap;") { - return Some(CharRef { + if first_char == 'C' && try_read("upCap;")? { + return Ok(Some(CharRef { name: "upCap;", characters: "\u{224d}", - }); + })); } - if first_char == 'D' && try_read("agger;") { - return Some(CharRef { + if first_char == 'D' && try_read("agger;")? { + return Ok(Some(CharRef { name: "agger;", characters: "\u{2021}", - }); + })); } - if first_char == 'D' && try_read("caron;") { - return Some(CharRef { + if first_char == 'D' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{10e}", - }); + })); } - if first_char == 'D' && try_read("otDot;") { - return Some(CharRef { + if first_char == 'D' && try_read("otDot;")? { + return Ok(Some(CharRef { name: "otDot;", characters: "\u{20dc}", - }); + })); } - if first_char == 'D' && try_read("strok;") { - return Some(CharRef { + if first_char == 'D' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{110}", - }); + })); } - if first_char == 'E' && try_read("acute;") { - return Some(CharRef { + if first_char == 'E' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{c9}", - }); + })); } - if first_char == 'E' && try_read("caron;") { - return Some(CharRef { + if first_char == 'E' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{11a}", - }); + })); } - if first_char == 'E' && try_read("grave;") { - return Some(CharRef { + if first_char == 'E' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{c8}", - }); + })); } - if first_char == 'E' && try_read("xists;") { - return Some(CharRef { + if first_char == 'E' && try_read("xists;")? { + return Ok(Some(CharRef { name: "xists;", characters: "\u{2203}", - }); + })); } - if first_char == 'F' && try_read("orAll;") { - return Some(CharRef { + if first_char == 'F' && try_read("orAll;")? { + return Ok(Some(CharRef { name: "orAll;", characters: "\u{2200}", - }); + })); } - if first_char == 'G' && try_read("ammad;") { - return Some(CharRef { + if first_char == 'G' && try_read("ammad;")? { + return Ok(Some(CharRef { name: "ammad;", characters: "\u{3dc}", - }); + })); } - if first_char == 'G' && try_read("breve;") { - return Some(CharRef { + if first_char == 'G' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{11e}", - }); + })); } - if first_char == 'G' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'G' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{122}", - }); + })); } - if first_char == 'H' && try_read("ARDcy;") { - return Some(CharRef { + if first_char == 'H' && try_read("ARDcy;")? { + return Ok(Some(CharRef { name: "ARDcy;", characters: "\u{42a}", - }); + })); } - if first_char == 'H' && try_read("strok;") { - return Some(CharRef { + if first_char == 'H' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{126}", - }); + })); } - if first_char == 'I' && try_read("acute;") { - return Some(CharRef { + if first_char == 'I' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{cd}", - }); + })); } - if first_char == 'I' && try_read("grave;") { - return Some(CharRef { + if first_char == 'I' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{cc}", - }); + })); } - if first_char == 'I' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'I' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{128}", - }); + })); } - if first_char == 'J' && try_read("sercy;") { - return Some(CharRef { + if first_char == 'J' && try_read("sercy;")? { + return Ok(Some(CharRef { name: "sercy;", characters: "\u{408}", - }); + })); } - if first_char == 'K' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'K' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{136}", - }); + })); } - if first_char == 'L' && try_read("acute;") { - return Some(CharRef { + if first_char == 'L' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{139}", - }); + })); } - if first_char == 'L' && try_read("ambda;") { - return Some(CharRef { + if first_char == 'L' && try_read("ambda;")? { + return Ok(Some(CharRef { name: "ambda;", characters: "\u{39b}", - }); + })); } - if first_char == 'L' && try_read("caron;") { - return Some(CharRef { + if first_char == 'L' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{13d}", - }); + })); } - if first_char == 'L' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'L' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{13b}", - }); + })); } - if first_char == 'L' && try_read("midot;") { - return Some(CharRef { + if first_char == 'L' && try_read("midot;")? { + return Ok(Some(CharRef { name: "midot;", characters: "\u{13f}", - }); + })); } - if first_char == 'L' && try_read("strok;") { - return Some(CharRef { + if first_char == 'L' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{141}", - }); + })); } - if first_char == 'N' && try_read("acute;") { - return Some(CharRef { + if first_char == 'N' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{143}", - }); + })); } - if first_char == 'N' && try_read("caron;") { - return Some(CharRef { + if first_char == 'N' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{147}", - }); + })); } - if first_char == 'N' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'N' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{145}", - }); + })); } - if first_char == 'N' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'N' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{d1}", - }); + })); } - if first_char == 'O' && try_read("acute;") { - return Some(CharRef { + if first_char == 'O' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{d3}", - }); + })); } - if first_char == 'O' && try_read("dblac;") { - return Some(CharRef { + if first_char == 'O' && try_read("dblac;")? { + return Ok(Some(CharRef { name: "dblac;", characters: "\u{150}", - }); + })); } - if first_char == 'O' && try_read("grave;") { - return Some(CharRef { + if first_char == 'O' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{d2}", - }); + })); } - if first_char == 'O' && try_read("slash;") { - return Some(CharRef { + if first_char == 'O' && try_read("slash;")? { + return Ok(Some(CharRef { name: "slash;", characters: "\u{d8}", - }); + })); } - if first_char == 'O' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'O' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{d5}", - }); + })); } - if first_char == 'O' && try_read("times;") { - return Some(CharRef { + if first_char == 'O' && try_read("times;")? { + return Ok(Some(CharRef { name: "times;", characters: "\u{2a37}", - }); + })); } - if first_char == 'R' && try_read("acute;") { - return Some(CharRef { + if first_char == 'R' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{154}", - }); + })); } - if first_char == 'R' && try_read("arrtl;") { - return Some(CharRef { + if first_char == 'R' && try_read("arrtl;")? { + return Ok(Some(CharRef { name: "arrtl;", characters: "\u{2916}", - }); + })); } - if first_char == 'R' && try_read("caron;") { - return Some(CharRef { + if first_char == 'R' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{158}", - }); + })); } - if first_char == 'R' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'R' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{156}", - }); + })); } - if first_char == 'S' && try_read("HCHcy;") { - return Some(CharRef { + if first_char == 'S' && try_read("HCHcy;")? { + return Ok(Some(CharRef { name: "HCHcy;", characters: "\u{429}", - }); + })); } - if first_char == 'S' && try_read("OFTcy;") { - return Some(CharRef { + if first_char == 'S' && try_read("OFTcy;")? { + return Ok(Some(CharRef { name: "OFTcy;", characters: "\u{42c}", - }); + })); } - if first_char == 'S' && try_read("acute;") { - return Some(CharRef { + if first_char == 'S' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{15a}", - }); + })); } - if first_char == 'S' && try_read("caron;") { - return Some(CharRef { + if first_char == 'S' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{160}", - }); + })); } - if first_char == 'S' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'S' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{15e}", - }); + })); } - if first_char == 'S' && try_read("quare;") { - return Some(CharRef { + if first_char == 'S' && try_read("quare;")? { + return Ok(Some(CharRef { name: "quare;", characters: "\u{25a1}", - }); + })); } - if first_char == 'S' && try_read("ubset;") { - return Some(CharRef { + if first_char == 'S' && try_read("ubset;")? { + return Ok(Some(CharRef { name: "ubset;", characters: "\u{22d0}", - }); + })); } - if first_char == 'S' && try_read("upset;") { - return Some(CharRef { + if first_char == 'S' && try_read("upset;")? { + return Ok(Some(CharRef { name: "upset;", characters: "\u{22d1}", - }); + })); } - if first_char == 'T' && try_read("caron;") { - return Some(CharRef { + if first_char == 'T' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{164}", - }); + })); } - if first_char == 'T' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'T' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{162}", - }); + })); } - if first_char == 'T' && try_read("strok;") { - return Some(CharRef { + if first_char == 'T' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{166}", - }); + })); } - if first_char == 'U' && try_read("acute;") { - return Some(CharRef { + if first_char == 'U' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{da}", - }); + })); } - if first_char == 'U' && try_read("breve;") { - return Some(CharRef { + if first_char == 'U' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{16c}", - }); + })); } - if first_char == 'U' && try_read("dblac;") { - return Some(CharRef { + if first_char == 'U' && try_read("dblac;")? { + return Ok(Some(CharRef { name: "dblac;", characters: "\u{170}", - }); + })); } - if first_char == 'U' && try_read("grave;") { - return Some(CharRef { + if first_char == 'U' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{d9}", - }); + })); } - if first_char == 'U' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'U' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{168}", - }); + })); } - if first_char == 'V' && try_read("dashl;") { - return Some(CharRef { + if first_char == 'V' && try_read("dashl;")? { + return Ok(Some(CharRef { name: "dashl;", characters: "\u{2ae6}", - }); + })); } - if first_char == 'V' && try_read("erbar;") { - return Some(CharRef { + if first_char == 'V' && try_read("erbar;")? { + return Ok(Some(CharRef { name: "erbar;", characters: "\u{2016}", - }); + })); } - if first_char == 'V' && try_read("vdash;") { - return Some(CharRef { + if first_char == 'V' && try_read("vdash;")? { + return Ok(Some(CharRef { name: "vdash;", characters: "\u{22aa}", - }); + })); } - if first_char == 'Y' && try_read("acute;") { - return Some(CharRef { + if first_char == 'Y' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{dd}", - }); + })); } - if first_char == 'Z' && try_read("acute;") { - return Some(CharRef { + if first_char == 'Z' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{179}", - }); + })); } - if first_char == 'Z' && try_read("caron;") { - return Some(CharRef { + if first_char == 'Z' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{17d}", - }); + })); } - if first_char == 'a' && try_read("acute;") { - return Some(CharRef { + if first_char == 'a' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{e1}", - }); + })); } - if first_char == 'a' && try_read("breve;") { - return Some(CharRef { + if first_char == 'a' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{103}", - }); + })); } - if first_char == 'a' && try_read("grave;") { - return Some(CharRef { + if first_char == 'a' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{e0}", - }); + })); } - if first_char == 'a' && try_read("ndand;") { - return Some(CharRef { + if first_char == 'a' && try_read("ndand;")? { + return Ok(Some(CharRef { name: "ndand;", characters: "\u{2a55}", - }); + })); } - if first_char == 'a' && try_read("ngmsd;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngmsd;")? { + return Ok(Some(CharRef { name: "ngmsd;", characters: "\u{2221}", - }); + })); } - if first_char == 'a' && try_read("ngsph;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngsph;")? { + return Ok(Some(CharRef { name: "ngsph;", characters: "\u{2222}", - }); + })); } - if first_char == 'a' && try_read("pacir;") { - return Some(CharRef { + if first_char == 'a' && try_read("pacir;")? { + return Ok(Some(CharRef { name: "pacir;", characters: "\u{2a6f}", - }); + })); } - if first_char == 'a' && try_read("pprox;") { - return Some(CharRef { + if first_char == 'a' && try_read("pprox;")? { + return Ok(Some(CharRef { name: "pprox;", characters: "\u{2248}", - }); + })); } - if first_char == 'a' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'a' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{e3}", - }); + })); } - if first_char == 'b' && try_read("arvee;") { - return Some(CharRef { + if first_char == 'b' && try_read("arvee;")? { + return Ok(Some(CharRef { name: "arvee;", characters: "\u{22bd}", - }); + })); } - if first_char == 'b' && try_read("arwed;") { - return Some(CharRef { + if first_char == 'b' && try_read("arwed;")? { + return Ok(Some(CharRef { name: "arwed;", characters: "\u{2305}", - }); + })); } - if first_char == 'b' && try_read("ecaus;") { - return Some(CharRef { + if first_char == 'b' && try_read("ecaus;")? { + return Ok(Some(CharRef { name: "ecaus;", characters: "\u{2235}", - }); + })); } - if first_char == 'b' && try_read("ernou;") { - return Some(CharRef { + if first_char == 'b' && try_read("ernou;")? { + return Ok(Some(CharRef { name: "ernou;", characters: "\u{212c}", - }); + })); } - if first_char == 'b' && try_read("igcap;") { - return Some(CharRef { + if first_char == 'b' && try_read("igcap;")? { + return Ok(Some(CharRef { name: "igcap;", characters: "\u{22c2}", - }); + })); } - if first_char == 'b' && try_read("igcup;") { - return Some(CharRef { + if first_char == 'b' && try_read("igcup;")? { + return Ok(Some(CharRef { name: "igcup;", characters: "\u{22c3}", - }); + })); } - if first_char == 'b' && try_read("igvee;") { - return Some(CharRef { + if first_char == 'b' && try_read("igvee;")? { + return Ok(Some(CharRef { name: "igvee;", characters: "\u{22c1}", - }); + })); } - if first_char == 'b' && try_read("karow;") { - return Some(CharRef { + if first_char == 'b' && try_read("karow;")? { + return Ok(Some(CharRef { name: "karow;", characters: "\u{290d}", - }); + })); } - if first_char == 'b' && try_read("ottom;") { - return Some(CharRef { + if first_char == 'b' && try_read("ottom;")? { + return Ok(Some(CharRef { name: "ottom;", characters: "\u{22a5}", - }); + })); } - if first_char == 'b' && try_read("owtie;") { - return Some(CharRef { + if first_char == 'b' && try_read("owtie;")? { + return Ok(Some(CharRef { name: "owtie;", characters: "\u{22c8}", - }); + })); } - if first_char == 'b' && try_read("oxbox;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxbox;")? { + return Ok(Some(CharRef { name: "oxbox;", characters: "\u{29c9}", - }); + })); } - if first_char == 'b' && try_read("prime;") { - return Some(CharRef { + if first_char == 'b' && try_read("prime;")? { + return Ok(Some(CharRef { name: "prime;", characters: "\u{2035}", - }); + })); } - if first_char == 'b' && try_read("rvbar;") { - return Some(CharRef { + if first_char == 'b' && try_read("rvbar;")? { + return Ok(Some(CharRef { name: "rvbar;", characters: "\u{a6}", - }); + })); } - if first_char == 'b' && try_read("ullet;") { - return Some(CharRef { + if first_char == 'b' && try_read("ullet;")? { + return Ok(Some(CharRef { name: "ullet;", characters: "\u{2022}", - }); + })); } - if first_char == 'b' && try_read("umpeq;") { - return Some(CharRef { + if first_char == 'b' && try_read("umpeq;")? { + return Ok(Some(CharRef { name: "umpeq;", characters: "\u{224f}", - }); + })); } - if first_char == 'c' && try_read("acute;") { - return Some(CharRef { + if first_char == 'c' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{107}", - }); + })); } - if first_char == 'c' && try_read("apand;") { - return Some(CharRef { + if first_char == 'c' && try_read("apand;")? { + return Ok(Some(CharRef { name: "apand;", characters: "\u{2a44}", - }); + })); } - if first_char == 'c' && try_read("apcap;") { - return Some(CharRef { + if first_char == 'c' && try_read("apcap;")? { + return Ok(Some(CharRef { name: "apcap;", characters: "\u{2a4b}", - }); + })); } - if first_char == 'c' && try_read("apcup;") { - return Some(CharRef { + if first_char == 'c' && try_read("apcup;")? { + return Ok(Some(CharRef { name: "apcup;", characters: "\u{2a47}", - }); + })); } - if first_char == 'c' && try_read("apdot;") { - return Some(CharRef { + if first_char == 'c' && try_read("apdot;")? { + return Ok(Some(CharRef { name: "apdot;", characters: "\u{2a40}", - }); + })); } - if first_char == 'c' && try_read("caron;") { - return Some(CharRef { + if first_char == 'c' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{10d}", - }); + })); } - if first_char == 'c' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'c' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{e7}", - }); + })); } - if first_char == 'c' && try_read("irceq;") { - return Some(CharRef { + if first_char == 'c' && try_read("irceq;")? { + return Ok(Some(CharRef { name: "irceq;", characters: "\u{2257}", - }); + })); } - if first_char == 'c' && try_read("irmid;") { - return Some(CharRef { + if first_char == 'c' && try_read("irmid;")? { + return Ok(Some(CharRef { name: "irmid;", characters: "\u{2aef}", - }); + })); } - if first_char == 'c' && try_read("olone;") { - return Some(CharRef { + if first_char == 'c' && try_read("olone;")? { + return Ok(Some(CharRef { name: "olone;", characters: "\u{2254}", - }); + })); } - if first_char == 'c' && try_read("ommat;") { - return Some(CharRef { + if first_char == 'c' && try_read("ommat;")? { + return Ok(Some(CharRef { name: "ommat;", characters: "\u{40}", - }); + })); } - if first_char == 'c' && try_read("ompfn;") { - return Some(CharRef { + if first_char == 'c' && try_read("ompfn;")? { + return Ok(Some(CharRef { name: "ompfn;", characters: "\u{2218}", - }); + })); } - if first_char == 'c' && try_read("onint;") { - return Some(CharRef { + if first_char == 'c' && try_read("onint;")? { + return Ok(Some(CharRef { name: "onint;", characters: "\u{222e}", - }); + })); } - if first_char == 'c' && try_read("oprod;") { - return Some(CharRef { + if first_char == 'c' && try_read("oprod;")? { + return Ok(Some(CharRef { name: "oprod;", characters: "\u{2210}", - }); + })); } - if first_char == 'c' && try_read("opysr;") { - return Some(CharRef { + if first_char == 'c' && try_read("opysr;")? { + return Ok(Some(CharRef { name: "opysr;", characters: "\u{2117}", - }); + })); } - if first_char == 'c' && try_read("ularr;") { - return Some(CharRef { + if first_char == 'c' && try_read("ularr;")? { + return Ok(Some(CharRef { name: "ularr;", characters: "\u{21b6}", - }); + })); } - if first_char == 'c' && try_read("upcap;") { - return Some(CharRef { + if first_char == 'c' && try_read("upcap;")? { + return Ok(Some(CharRef { name: "upcap;", characters: "\u{2a46}", - }); + })); } - if first_char == 'c' && try_read("upcup;") { - return Some(CharRef { + if first_char == 'c' && try_read("upcup;")? { + return Ok(Some(CharRef { name: "upcup;", characters: "\u{2a4a}", - }); + })); } - if first_char == 'c' && try_read("updot;") { - return Some(CharRef { + if first_char == 'c' && try_read("updot;")? { + return Ok(Some(CharRef { name: "updot;", characters: "\u{228d}", - }); + })); } - if first_char == 'c' && try_read("urarr;") { - return Some(CharRef { + if first_char == 'c' && try_read("urarr;")? { + return Ok(Some(CharRef { name: "urarr;", characters: "\u{21b7}", - }); + })); } - if first_char == 'c' && try_read("urren;") { - return Some(CharRef { + if first_char == 'c' && try_read("urren;")? { + return Ok(Some(CharRef { name: "urren;", characters: "\u{a4}", - }); + })); } - if first_char == 'c' && try_read("ylcty;") { - return Some(CharRef { + if first_char == 'c' && try_read("ylcty;")? { + return Ok(Some(CharRef { name: "ylcty;", characters: "\u{232d}", - }); + })); } - if first_char == 'd' && try_read("agger;") { - return Some(CharRef { + if first_char == 'd' && try_read("agger;")? { + return Ok(Some(CharRef { name: "agger;", characters: "\u{2020}", - }); + })); } - if first_char == 'd' && try_read("aleth;") { - return Some(CharRef { + if first_char == 'd' && try_read("aleth;")? { + return Ok(Some(CharRef { name: "aleth;", characters: "\u{2138}", - }); + })); } - if first_char == 'd' && try_read("caron;") { - return Some(CharRef { + if first_char == 'd' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{10f}", - }); + })); } - if first_char == 'd' && try_read("fisht;") { - return Some(CharRef { + if first_char == 'd' && try_read("fisht;")? { + return Ok(Some(CharRef { name: "fisht;", characters: "\u{297f}", - }); + })); } - if first_char == 'd' && try_read("ivide;") { - return Some(CharRef { + if first_char == 'd' && try_read("ivide;")? { + return Ok(Some(CharRef { name: "ivide;", characters: "\u{f7}", - }); + })); } - if first_char == 'd' && try_read("ivonx;") { - return Some(CharRef { + if first_char == 'd' && try_read("ivonx;")? { + return Ok(Some(CharRef { name: "ivonx;", characters: "\u{22c7}", - }); + })); } - if first_char == 'd' && try_read("lcorn;") { - return Some(CharRef { + if first_char == 'd' && try_read("lcorn;")? { + return Ok(Some(CharRef { name: "lcorn;", characters: "\u{231e}", - }); + })); } - if first_char == 'd' && try_read("lcrop;") { - return Some(CharRef { + if first_char == 'd' && try_read("lcrop;")? { + return Ok(Some(CharRef { name: "lcrop;", characters: "\u{230d}", - }); + })); } - if first_char == 'd' && try_read("ollar;") { - return Some(CharRef { + if first_char == 'd' && try_read("ollar;")? { + return Ok(Some(CharRef { name: "ollar;", characters: "\u{24}", - }); + })); } - if first_char == 'd' && try_read("rcorn;") { - return Some(CharRef { + if first_char == 'd' && try_read("rcorn;")? { + return Ok(Some(CharRef { name: "rcorn;", characters: "\u{231f}", - }); + })); } - if first_char == 'd' && try_read("rcrop;") { - return Some(CharRef { + if first_char == 'd' && try_read("rcrop;")? { + return Ok(Some(CharRef { name: "rcrop;", characters: "\u{230c}", - }); + })); } - if first_char == 'd' && try_read("strok;") { - return Some(CharRef { + if first_char == 'd' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{111}", - }); + })); } - if first_char == 'e' && try_read("acute;") { - return Some(CharRef { + if first_char == 'e' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{e9}", - }); + })); } - if first_char == 'e' && try_read("aster;") { - return Some(CharRef { + if first_char == 'e' && try_read("aster;")? { + return Ok(Some(CharRef { name: "aster;", characters: "\u{2a6e}", - }); + })); } - if first_char == 'e' && try_read("caron;") { - return Some(CharRef { + if first_char == 'e' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{11b}", - }); + })); } - if first_char == 'e' && try_read("colon;") { - return Some(CharRef { + if first_char == 'e' && try_read("colon;")? { + return Ok(Some(CharRef { name: "colon;", characters: "\u{2255}", - }); + })); } - if first_char == 'e' && try_read("grave;") { - return Some(CharRef { + if first_char == 'e' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{e8}", - }); + })); } - if first_char == 'e' && try_read("gsdot;") { - return Some(CharRef { + if first_char == 'e' && try_read("gsdot;")? { + return Ok(Some(CharRef { name: "gsdot;", characters: "\u{2a98}", - }); + })); } - if first_char == 'e' && try_read("lsdot;") { - return Some(CharRef { + if first_char == 'e' && try_read("lsdot;")? { + return Ok(Some(CharRef { name: "lsdot;", characters: "\u{2a97}", - }); + })); } - if first_char == 'e' && try_read("mptyv;") { - return Some(CharRef { + if first_char == 'e' && try_read("mptyv;")? { + return Ok(Some(CharRef { name: "mptyv;", characters: "\u{2205}", - }); + })); } - if first_char == 'e' && try_read("msp13;") { - return Some(CharRef { + if first_char == 'e' && try_read("msp13;")? { + return Ok(Some(CharRef { name: "msp13;", characters: "\u{2004}", - }); + })); } - if first_char == 'e' && try_read("msp14;") { - return Some(CharRef { + if first_char == 'e' && try_read("msp14;")? { + return Ok(Some(CharRef { name: "msp14;", characters: "\u{2005}", - }); + })); } - if first_char == 'e' && try_read("parsl;") { - return Some(CharRef { + if first_char == 'e' && try_read("parsl;")? { + return Ok(Some(CharRef { name: "parsl;", characters: "\u{29e3}", - }); + })); } - if first_char == 'e' && try_read("qcirc;") { - return Some(CharRef { + if first_char == 'e' && try_read("qcirc;")? { + return Ok(Some(CharRef { name: "qcirc;", characters: "\u{2256}", - }); + })); } - if first_char == 'e' && try_read("quals;") { - return Some(CharRef { + if first_char == 'e' && try_read("quals;")? { + return Ok(Some(CharRef { name: "quals;", characters: "\u{3d}", - }); + })); } - if first_char == 'e' && try_read("quest;") { - return Some(CharRef { + if first_char == 'e' && try_read("quest;")? { + return Ok(Some(CharRef { name: "quest;", characters: "\u{225f}", - }); + })); } - if first_char == 'f' && try_read("emale;") { - return Some(CharRef { + if first_char == 'f' && try_read("emale;")? { + return Ok(Some(CharRef { name: "emale;", characters: "\u{2640}", - }); + })); } - if first_char == 'f' && try_read("filig;") { - return Some(CharRef { + if first_char == 'f' && try_read("filig;")? { + return Ok(Some(CharRef { name: "filig;", characters: "\u{fb03}", - }); + })); } - if first_char == 'f' && try_read("fllig;") { - return Some(CharRef { + if first_char == 'f' && try_read("fllig;")? { + return Ok(Some(CharRef { name: "fllig;", characters: "\u{fb04}", - }); + })); } - if first_char == 'f' && try_read("orall;") { - return Some(CharRef { + if first_char == 'f' && try_read("orall;")? { + return Ok(Some(CharRef { name: "orall;", characters: "\u{2200}", - }); + })); } - if first_char == 'f' && try_read("rac12;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac12;")? { + return Ok(Some(CharRef { name: "rac12;", characters: "\u{bd}", - }); + })); } - if first_char == 'f' && try_read("rac13;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac13;")? { + return Ok(Some(CharRef { name: "rac13;", characters: "\u{2153}", - }); + })); } - if first_char == 'f' && try_read("rac14;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac14;")? { + return Ok(Some(CharRef { name: "rac14;", characters: "\u{bc}", - }); + })); } - if first_char == 'f' && try_read("rac15;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac15;")? { + return Ok(Some(CharRef { name: "rac15;", characters: "\u{2155}", - }); + })); } - if first_char == 'f' && try_read("rac16;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac16;")? { + return Ok(Some(CharRef { name: "rac16;", characters: "\u{2159}", - }); + })); } - if first_char == 'f' && try_read("rac18;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac18;")? { + return Ok(Some(CharRef { name: "rac18;", characters: "\u{215b}", - }); + })); } - if first_char == 'f' && try_read("rac23;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac23;")? { + return Ok(Some(CharRef { name: "rac23;", characters: "\u{2154}", - }); + })); } - if first_char == 'f' && try_read("rac25;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac25;")? { + return Ok(Some(CharRef { name: "rac25;", characters: "\u{2156}", - }); + })); } - if first_char == 'f' && try_read("rac34;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac34;")? { + return Ok(Some(CharRef { name: "rac34;", characters: "\u{be}", - }); + })); } - if first_char == 'f' && try_read("rac35;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac35;")? { + return Ok(Some(CharRef { name: "rac35;", characters: "\u{2157}", - }); + })); } - if first_char == 'f' && try_read("rac38;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac38;")? { + return Ok(Some(CharRef { name: "rac38;", characters: "\u{215c}", - }); + })); } - if first_char == 'f' && try_read("rac45;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac45;")? { + return Ok(Some(CharRef { name: "rac45;", characters: "\u{2158}", - }); + })); } - if first_char == 'f' && try_read("rac56;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac56;")? { + return Ok(Some(CharRef { name: "rac56;", characters: "\u{215a}", - }); + })); } - if first_char == 'f' && try_read("rac58;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac58;")? { + return Ok(Some(CharRef { name: "rac58;", characters: "\u{215d}", - }); + })); } - if first_char == 'f' && try_read("rac78;") { - return Some(CharRef { + if first_char == 'f' && try_read("rac78;")? { + return Ok(Some(CharRef { name: "rac78;", characters: "\u{215e}", - }); + })); } - if first_char == 'g' && try_read("acute;") { - return Some(CharRef { + if first_char == 'g' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{1f5}", - }); + })); } - if first_char == 'g' && try_read("ammad;") { - return Some(CharRef { + if first_char == 'g' && try_read("ammad;")? { + return Ok(Some(CharRef { name: "ammad;", characters: "\u{3dd}", - }); + })); } - if first_char == 'g' && try_read("breve;") { - return Some(CharRef { + if first_char == 'g' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{11f}", - }); + })); } - if first_char == 'g' && try_read("esdot;") { - return Some(CharRef { + if first_char == 'g' && try_read("esdot;")? { + return Ok(Some(CharRef { name: "esdot;", characters: "\u{2a80}", - }); + })); } - if first_char == 'g' && try_read("esles;") { - return Some(CharRef { + if first_char == 'g' && try_read("esles;")? { + return Ok(Some(CharRef { name: "esles;", characters: "\u{2a94}", - }); + })); } - if first_char == 'g' && try_read("tlPar;") { - return Some(CharRef { + if first_char == 'g' && try_read("tlPar;")? { + return Ok(Some(CharRef { name: "tlPar;", characters: "\u{2995}", - }); + })); } - if first_char == 'g' && try_read("trarr;") { - return Some(CharRef { + if first_char == 'g' && try_read("trarr;")? { + return Ok(Some(CharRef { name: "trarr;", characters: "\u{2978}", - }); + })); } - if first_char == 'g' && try_read("trdot;") { - return Some(CharRef { + if first_char == 'g' && try_read("trdot;")? { + return Ok(Some(CharRef { name: "trdot;", characters: "\u{22d7}", - }); + })); } - if first_char == 'g' && try_read("trsim;") { - return Some(CharRef { + if first_char == 'g' && try_read("trsim;")? { + return Ok(Some(CharRef { name: "trsim;", characters: "\u{2273}", - }); + })); } - if first_char == 'h' && try_read("airsp;") { - return Some(CharRef { + if first_char == 'h' && try_read("airsp;")? { + return Ok(Some(CharRef { name: "airsp;", characters: "\u{200a}", - }); + })); } - if first_char == 'h' && try_read("amilt;") { - return Some(CharRef { + if first_char == 'h' && try_read("amilt;")? { + return Ok(Some(CharRef { name: "amilt;", characters: "\u{210b}", - }); + })); } - if first_char == 'h' && try_read("ardcy;") { - return Some(CharRef { + if first_char == 'h' && try_read("ardcy;")? { + return Ok(Some(CharRef { name: "ardcy;", characters: "\u{44a}", - }); + })); } - if first_char == 'h' && try_read("earts;") { - return Some(CharRef { + if first_char == 'h' && try_read("earts;")? { + return Ok(Some(CharRef { name: "earts;", characters: "\u{2665}", - }); + })); } - if first_char == 'h' && try_read("ellip;") { - return Some(CharRef { + if first_char == 'h' && try_read("ellip;")? { + return Ok(Some(CharRef { name: "ellip;", characters: "\u{2026}", - }); + })); } - if first_char == 'h' && try_read("ercon;") { - return Some(CharRef { + if first_char == 'h' && try_read("ercon;")? { + return Ok(Some(CharRef { name: "ercon;", characters: "\u{22b9}", - }); + })); } - if first_char == 'h' && try_read("omtht;") { - return Some(CharRef { + if first_char == 'h' && try_read("omtht;")? { + return Ok(Some(CharRef { name: "omtht;", characters: "\u{223b}", - }); + })); } - if first_char == 'h' && try_read("orbar;") { - return Some(CharRef { + if first_char == 'h' && try_read("orbar;")? { + return Ok(Some(CharRef { name: "orbar;", characters: "\u{2015}", - }); + })); } - if first_char == 'h' && try_read("slash;") { - return Some(CharRef { + if first_char == 'h' && try_read("slash;")? { + return Ok(Some(CharRef { name: "slash;", characters: "\u{210f}", - }); + })); } - if first_char == 'h' && try_read("strok;") { - return Some(CharRef { + if first_char == 'h' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{127}", - }); + })); } - if first_char == 'h' && try_read("ybull;") { - return Some(CharRef { + if first_char == 'h' && try_read("ybull;")? { + return Ok(Some(CharRef { name: "ybull;", characters: "\u{2043}", - }); + })); } - if first_char == 'h' && try_read("yphen;") { - return Some(CharRef { + if first_char == 'h' && try_read("yphen;")? { + return Ok(Some(CharRef { name: "yphen;", characters: "\u{2010}", - }); + })); } - if first_char == 'i' && try_read("acute;") { - return Some(CharRef { + if first_char == 'i' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{ed}", - }); + })); } - if first_char == 'i' && try_read("grave;") { - return Some(CharRef { + if first_char == 'i' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{ec}", - }); + })); } - if first_char == 'i' && try_read("iiint;") { - return Some(CharRef { + if first_char == 'i' && try_read("iiint;")? { + return Ok(Some(CharRef { name: "iiint;", characters: "\u{2a0c}", - }); + })); } - if first_char == 'i' && try_read("infin;") { - return Some(CharRef { + if first_char == 'i' && try_read("infin;")? { + return Ok(Some(CharRef { name: "infin;", characters: "\u{29dc}", - }); + })); } - if first_char == 'i' && try_read("ncare;") { - return Some(CharRef { + if first_char == 'i' && try_read("ncare;")? { + return Ok(Some(CharRef { name: "ncare;", characters: "\u{2105}", - }); + })); } - if first_char == 'i' && try_read("nodot;") { - return Some(CharRef { + if first_char == 'i' && try_read("nodot;")? { + return Ok(Some(CharRef { name: "nodot;", characters: "\u{131}", - }); + })); } - if first_char == 'i' && try_read("ntcal;") { - return Some(CharRef { + if first_char == 'i' && try_read("ntcal;")? { + return Ok(Some(CharRef { name: "ntcal;", characters: "\u{22ba}", - }); + })); } - if first_char == 'i' && try_read("quest;") { - return Some(CharRef { + if first_char == 'i' && try_read("quest;")? { + return Ok(Some(CharRef { name: "quest;", characters: "\u{bf}", - }); + })); } - if first_char == 'i' && try_read("sinsv;") { - return Some(CharRef { + if first_char == 'i' && try_read("sinsv;")? { + return Ok(Some(CharRef { name: "sinsv;", characters: "\u{22f3}", - }); + })); } - if first_char == 'i' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'i' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{129}", - }); + })); } - if first_char == 'j' && try_read("sercy;") { - return Some(CharRef { + if first_char == 'j' && try_read("sercy;")? { + return Ok(Some(CharRef { name: "sercy;", characters: "\u{458}", - }); + })); } - if first_char == 'k' && try_read("appav;") { - return Some(CharRef { + if first_char == 'k' && try_read("appav;")? { + return Ok(Some(CharRef { name: "appav;", characters: "\u{3f0}", - }); + })); } - if first_char == 'k' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'k' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{137}", - }); + })); } - if first_char == 'k' && try_read("green;") { - return Some(CharRef { + if first_char == 'k' && try_read("green;")? { + return Ok(Some(CharRef { name: "green;", characters: "\u{138}", - }); + })); } - if first_char == 'l' && try_read("Atail;") { - return Some(CharRef { + if first_char == 'l' && try_read("Atail;")? { + return Ok(Some(CharRef { name: "Atail;", characters: "\u{291b}", - }); + })); } - if first_char == 'l' && try_read("acute;") { - return Some(CharRef { + if first_char == 'l' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{13a}", - }); + })); } - if first_char == 'l' && try_read("agran;") { - return Some(CharRef { + if first_char == 'l' && try_read("agran;")? { + return Ok(Some(CharRef { name: "agran;", characters: "\u{2112}", - }); + })); } - if first_char == 'l' && try_read("ambda;") { - return Some(CharRef { + if first_char == 'l' && try_read("ambda;")? { + return Ok(Some(CharRef { name: "ambda;", characters: "\u{3bb}", - }); + })); } - if first_char == 'l' && try_read("angle;") { - return Some(CharRef { + if first_char == 'l' && try_read("angle;")? { + return Ok(Some(CharRef { name: "angle;", characters: "\u{27e8}", - }); + })); } - if first_char == 'l' && try_read("arrfs;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrfs;")? { + return Ok(Some(CharRef { name: "arrfs;", characters: "\u{291d}", - }); + })); } - if first_char == 'l' && try_read("arrhk;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrhk;")? { + return Ok(Some(CharRef { name: "arrhk;", characters: "\u{21a9}", - }); + })); } - if first_char == 'l' && try_read("arrlp;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrlp;")? { + return Ok(Some(CharRef { name: "arrlp;", characters: "\u{21ab}", - }); + })); } - if first_char == 'l' && try_read("arrpl;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrpl;")? { + return Ok(Some(CharRef { name: "arrpl;", characters: "\u{2939}", - }); + })); } - if first_char == 'l' && try_read("arrtl;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrtl;")? { + return Ok(Some(CharRef { name: "arrtl;", characters: "\u{21a2}", - }); + })); } - if first_char == 'l' && try_read("atail;") { - return Some(CharRef { + if first_char == 'l' && try_read("atail;")? { + return Ok(Some(CharRef { name: "atail;", characters: "\u{2919}", - }); + })); } - if first_char == 'l' && try_read("brace;") { - return Some(CharRef { + if first_char == 'l' && try_read("brace;")? { + return Ok(Some(CharRef { name: "brace;", characters: "\u{7b}", - }); + })); } - if first_char == 'l' && try_read("brack;") { - return Some(CharRef { + if first_char == 'l' && try_read("brack;")? { + return Ok(Some(CharRef { name: "brack;", characters: "\u{5b}", - }); + })); } - if first_char == 'l' && try_read("caron;") { - return Some(CharRef { + if first_char == 'l' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{13e}", - }); + })); } - if first_char == 'l' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'l' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{13c}", - }); + })); } - if first_char == 'l' && try_read("dquor;") { - return Some(CharRef { + if first_char == 'l' && try_read("dquor;")? { + return Ok(Some(CharRef { name: "dquor;", characters: "\u{201e}", - }); + })); } - if first_char == 'l' && try_read("esdot;") { - return Some(CharRef { + if first_char == 'l' && try_read("esdot;")? { + return Ok(Some(CharRef { name: "esdot;", characters: "\u{2a7f}", - }); + })); } - if first_char == 'l' && try_read("esges;") { - return Some(CharRef { + if first_char == 'l' && try_read("esges;")? { + return Ok(Some(CharRef { name: "esges;", characters: "\u{2a93}", - }); + })); } - if first_char == 'l' && try_read("fisht;") { - return Some(CharRef { + if first_char == 'l' && try_read("fisht;")? { + return Ok(Some(CharRef { name: "fisht;", characters: "\u{297c}", - }); + })); } - if first_char == 'l' && try_read("floor;") { - return Some(CharRef { + if first_char == 'l' && try_read("floor;")? { + return Ok(Some(CharRef { name: "floor;", characters: "\u{230a}", - }); + })); } - if first_char == 'l' && try_read("harul;") { - return Some(CharRef { + if first_char == 'l' && try_read("harul;")? { + return Ok(Some(CharRef { name: "harul;", characters: "\u{296a}", - }); + })); } - if first_char == 'l' && try_read("lhard;") { - return Some(CharRef { + if first_char == 'l' && try_read("lhard;")? { + return Ok(Some(CharRef { name: "lhard;", characters: "\u{296b}", - }); + })); } - if first_char == 'l' && try_read("midot;") { - return Some(CharRef { + if first_char == 'l' && try_read("midot;")? { + return Ok(Some(CharRef { name: "midot;", characters: "\u{140}", - }); + })); } - if first_char == 'l' && try_read("moust;") { - return Some(CharRef { + if first_char == 'l' && try_read("moust;")? { + return Ok(Some(CharRef { name: "moust;", characters: "\u{23b0}", - }); + })); } - if first_char == 'l' && try_read("oplus;") { - return Some(CharRef { + if first_char == 'l' && try_read("oplus;")? { + return Ok(Some(CharRef { name: "oplus;", characters: "\u{2a2d}", - }); + })); } - if first_char == 'l' && try_read("owast;") { - return Some(CharRef { + if first_char == 'l' && try_read("owast;")? { + return Ok(Some(CharRef { name: "owast;", characters: "\u{2217}", - }); + })); } - if first_char == 'l' && try_read("owbar;") { - return Some(CharRef { + if first_char == 'l' && try_read("owbar;")? { + return Ok(Some(CharRef { name: "owbar;", characters: "\u{5f}", - }); + })); } - if first_char == 'l' && try_read("parlt;") { - return Some(CharRef { + if first_char == 'l' && try_read("parlt;")? { + return Ok(Some(CharRef { name: "parlt;", characters: "\u{2993}", - }); + })); } - if first_char == 'l' && try_read("rhard;") { - return Some(CharRef { + if first_char == 'l' && try_read("rhard;")? { + return Ok(Some(CharRef { name: "rhard;", characters: "\u{296d}", - }); + })); } - if first_char == 'l' && try_read("saquo;") { - return Some(CharRef { + if first_char == 'l' && try_read("saquo;")? { + return Ok(Some(CharRef { name: "saquo;", characters: "\u{2039}", - }); + })); } - if first_char == 'l' && try_read("squor;") { - return Some(CharRef { + if first_char == 'l' && try_read("squor;")? { + return Ok(Some(CharRef { name: "squor;", characters: "\u{201a}", - }); + })); } - if first_char == 'l' && try_read("strok;") { - return Some(CharRef { + if first_char == 'l' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{142}", - }); + })); } - if first_char == 'l' && try_read("three;") { - return Some(CharRef { + if first_char == 'l' && try_read("three;")? { + return Ok(Some(CharRef { name: "three;", characters: "\u{22cb}", - }); + })); } - if first_char == 'l' && try_read("times;") { - return Some(CharRef { + if first_char == 'l' && try_read("times;")? { + return Ok(Some(CharRef { name: "times;", characters: "\u{22c9}", - }); + })); } - if first_char == 'l' && try_read("tlarr;") { - return Some(CharRef { + if first_char == 'l' && try_read("tlarr;")? { + return Ok(Some(CharRef { name: "tlarr;", characters: "\u{2976}", - }); + })); } - if first_char == 'l' && try_read("trPar;") { - return Some(CharRef { + if first_char == 'l' && try_read("trPar;")? { + return Ok(Some(CharRef { name: "trPar;", characters: "\u{2996}", - }); + })); } - if first_char == 'm' && try_read("apsto;") { - return Some(CharRef { + if first_char == 'm' && try_read("apsto;")? { + return Ok(Some(CharRef { name: "apsto;", characters: "\u{21a6}", - }); + })); } - if first_char == 'm' && try_read("arker;") { - return Some(CharRef { + if first_char == 'm' && try_read("arker;")? { + return Ok(Some(CharRef { name: "arker;", characters: "\u{25ae}", - }); + })); } - if first_char == 'm' && try_read("comma;") { - return Some(CharRef { + if first_char == 'm' && try_read("comma;")? { + return Ok(Some(CharRef { name: "comma;", characters: "\u{2a29}", - }); + })); } - if first_char == 'm' && try_read("idast;") { - return Some(CharRef { + if first_char == 'm' && try_read("idast;")? { + return Ok(Some(CharRef { name: "idast;", characters: "\u{2a}", - }); + })); } - if first_char == 'm' && try_read("idcir;") { - return Some(CharRef { + if first_char == 'm' && try_read("idcir;")? { + return Ok(Some(CharRef { name: "idcir;", characters: "\u{2af0}", - }); + })); } - if first_char == 'm' && try_read("iddot;") { - return Some(CharRef { + if first_char == 'm' && try_read("iddot;")? { + return Ok(Some(CharRef { name: "iddot;", characters: "\u{b7}", - }); + })); } - if first_char == 'm' && try_read("inusb;") { - return Some(CharRef { + if first_char == 'm' && try_read("inusb;")? { + return Ok(Some(CharRef { name: "inusb;", characters: "\u{229f}", - }); + })); } - if first_char == 'm' && try_read("inusd;") { - return Some(CharRef { + if first_char == 'm' && try_read("inusd;")? { + return Ok(Some(CharRef { name: "inusd;", characters: "\u{2238}", - }); + })); } - if first_char == 'm' && try_read("nplus;") { - return Some(CharRef { + if first_char == 'm' && try_read("nplus;")? { + return Ok(Some(CharRef { name: "nplus;", characters: "\u{2213}", - }); + })); } - if first_char == 'm' && try_read("odels;") { - return Some(CharRef { + if first_char == 'm' && try_read("odels;")? { + return Ok(Some(CharRef { name: "odels;", characters: "\u{22a7}", - }); + })); } - if first_char == 'm' && try_read("stpos;") { - return Some(CharRef { + if first_char == 'm' && try_read("stpos;")? { + return Ok(Some(CharRef { name: "stpos;", characters: "\u{223e}", - }); + })); } - if first_char == 'n' && try_read("VDash;") { - return Some(CharRef { + if first_char == 'n' && try_read("VDash;")? { + return Ok(Some(CharRef { name: "VDash;", characters: "\u{22af}", - }); + })); } - if first_char == 'n' && try_read("Vdash;") { - return Some(CharRef { + if first_char == 'n' && try_read("Vdash;")? { + return Ok(Some(CharRef { name: "Vdash;", characters: "\u{22ae}", - }); + })); } - if first_char == 'n' && try_read("acute;") { - return Some(CharRef { + if first_char == 'n' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{144}", - }); + })); } - if first_char == 'n' && try_read("bumpe;") { - return Some(CharRef { + if first_char == 'n' && try_read("bumpe;")? { + return Ok(Some(CharRef { name: "bumpe;", characters: "\u{224f}\u{338}", - }); + })); } - if first_char == 'n' && try_read("caron;") { - return Some(CharRef { + if first_char == 'n' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{148}", - }); + })); } - if first_char == 'n' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'n' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{146}", - }); + })); } - if first_char == 'n' && try_read("earhk;") { - return Some(CharRef { + if first_char == 'n' && try_read("earhk;")? { + return Ok(Some(CharRef { name: "earhk;", characters: "\u{2924}", - }); + })); } - if first_char == 'n' && try_read("equiv;") { - return Some(CharRef { + if first_char == 'n' && try_read("equiv;")? { + return Ok(Some(CharRef { name: "equiv;", characters: "\u{2262}", - }); + })); } - if first_char == 'n' && try_read("esear;") { - return Some(CharRef { + if first_char == 'n' && try_read("esear;")? { + return Ok(Some(CharRef { name: "esear;", characters: "\u{2928}", - }); + })); } - if first_char == 'n' && try_read("exist;") { - return Some(CharRef { + if first_char == 'n' && try_read("exist;")? { + return Ok(Some(CharRef { name: "exist;", characters: "\u{2204}", - }); + })); } - if first_char == 'n' && try_read("ltrie;") { - return Some(CharRef { + if first_char == 'n' && try_read("ltrie;")? { + return Ok(Some(CharRef { name: "ltrie;", characters: "\u{22ec}", - }); + })); } - if first_char == 'n' && try_read("otinE;") { - return Some(CharRef { + if first_char == 'n' && try_read("otinE;")? { + return Ok(Some(CharRef { name: "otinE;", characters: "\u{22f9}\u{338}", - }); + })); } - if first_char == 'n' && try_read("parsl;") { - return Some(CharRef { + if first_char == 'n' && try_read("parsl;")? { + return Ok(Some(CharRef { name: "parsl;", characters: "\u{2afd}\u{20e5}", - }); + })); } - if first_char == 'n' && try_read("prcue;") { - return Some(CharRef { + if first_char == 'n' && try_read("prcue;")? { + return Ok(Some(CharRef { name: "prcue;", characters: "\u{22e0}", - }); + })); } - if first_char == 'n' && try_read("rarrc;") { - return Some(CharRef { + if first_char == 'n' && try_read("rarrc;")? { + return Ok(Some(CharRef { name: "rarrc;", characters: "\u{2933}\u{338}", - }); + })); } - if first_char == 'n' && try_read("rarrw;") { - return Some(CharRef { + if first_char == 'n' && try_read("rarrw;")? { + return Ok(Some(CharRef { name: "rarrw;", characters: "\u{219d}\u{338}", - }); + })); } - if first_char == 'n' && try_read("rtrie;") { - return Some(CharRef { + if first_char == 'n' && try_read("rtrie;")? { + return Ok(Some(CharRef { name: "rtrie;", characters: "\u{22ed}", - }); + })); } - if first_char == 'n' && try_read("sccue;") { - return Some(CharRef { + if first_char == 'n' && try_read("sccue;")? { + return Ok(Some(CharRef { name: "sccue;", characters: "\u{22e1}", - }); + })); } - if first_char == 'n' && try_read("simeq;") { - return Some(CharRef { + if first_char == 'n' && try_read("simeq;")? { + return Ok(Some(CharRef { name: "simeq;", characters: "\u{2244}", - }); + })); } - if first_char == 'n' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'n' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{f1}", - }); + })); } - if first_char == 'n' && try_read("umero;") { - return Some(CharRef { + if first_char == 'n' && try_read("umero;")? { + return Ok(Some(CharRef { name: "umero;", characters: "\u{2116}", - }); + })); } - if first_char == 'n' && try_read("vDash;") { - return Some(CharRef { + if first_char == 'n' && try_read("vDash;")? { + return Ok(Some(CharRef { name: "vDash;", characters: "\u{22ad}", - }); + })); } - if first_char == 'n' && try_read("vHarr;") { - return Some(CharRef { + if first_char == 'n' && try_read("vHarr;")? { + return Ok(Some(CharRef { name: "vHarr;", characters: "\u{2904}", - }); + })); } - if first_char == 'n' && try_read("vdash;") { - return Some(CharRef { + if first_char == 'n' && try_read("vdash;")? { + return Ok(Some(CharRef { name: "vdash;", characters: "\u{22ac}", - }); + })); } - if first_char == 'n' && try_read("vlArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("vlArr;")? { + return Ok(Some(CharRef { name: "vlArr;", characters: "\u{2902}", - }); + })); } - if first_char == 'n' && try_read("vrArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("vrArr;")? { + return Ok(Some(CharRef { name: "vrArr;", characters: "\u{2903}", - }); + })); } - if first_char == 'n' && try_read("warhk;") { - return Some(CharRef { + if first_char == 'n' && try_read("warhk;")? { + return Ok(Some(CharRef { name: "warhk;", characters: "\u{2923}", - }); + })); } - if first_char == 'n' && try_read("wnear;") { - return Some(CharRef { + if first_char == 'n' && try_read("wnear;")? { + return Ok(Some(CharRef { name: "wnear;", characters: "\u{2927}", - }); + })); } - if first_char == 'o' && try_read("acute;") { - return Some(CharRef { + if first_char == 'o' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{f3}", - }); + })); } - if first_char == 'o' && try_read("dblac;") { - return Some(CharRef { + if first_char == 'o' && try_read("dblac;")? { + return Ok(Some(CharRef { name: "dblac;", characters: "\u{151}", - }); + })); } - if first_char == 'o' && try_read("dsold;") { - return Some(CharRef { + if first_char == 'o' && try_read("dsold;")? { + return Ok(Some(CharRef { name: "dsold;", characters: "\u{29bc}", - }); + })); } - if first_char == 'o' && try_read("grave;") { - return Some(CharRef { + if first_char == 'o' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{f2}", - }); + })); } - if first_char == 'o' && try_read("minus;") { - return Some(CharRef { + if first_char == 'o' && try_read("minus;")? { + return Ok(Some(CharRef { name: "minus;", characters: "\u{2296}", - }); + })); } - if first_char == 'o' && try_read("rigof;") { - return Some(CharRef { + if first_char == 'o' && try_read("rigof;")? { + return Ok(Some(CharRef { name: "rigof;", characters: "\u{22b6}", - }); + })); } - if first_char == 'o' && try_read("slash;") { - return Some(CharRef { + if first_char == 'o' && try_read("slash;")? { + return Ok(Some(CharRef { name: "slash;", characters: "\u{f8}", - }); + })); } - if first_char == 'o' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'o' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{f5}", - }); + })); } - if first_char == 'o' && try_read("times;") { - return Some(CharRef { + if first_char == 'o' && try_read("times;")? { + return Ok(Some(CharRef { name: "times;", characters: "\u{2297}", - }); + })); } - if first_char == 'p' && try_read("arsim;") { - return Some(CharRef { + if first_char == 'p' && try_read("arsim;")? { + return Ok(Some(CharRef { name: "arsim;", characters: "\u{2af3}", - }); + })); } - if first_char == 'p' && try_read("ercnt;") { - return Some(CharRef { + if first_char == 'p' && try_read("ercnt;")? { + return Ok(Some(CharRef { name: "ercnt;", characters: "\u{25}", - }); + })); } - if first_char == 'p' && try_read("eriod;") { - return Some(CharRef { + if first_char == 'p' && try_read("eriod;")? { + return Ok(Some(CharRef { name: "eriod;", characters: "\u{2e}", - }); + })); } - if first_char == 'p' && try_read("ermil;") { - return Some(CharRef { + if first_char == 'p' && try_read("ermil;")? { + return Ok(Some(CharRef { name: "ermil;", characters: "\u{2030}", - }); + })); } - if first_char == 'p' && try_read("hmmat;") { - return Some(CharRef { + if first_char == 'p' && try_read("hmmat;")? { + return Ok(Some(CharRef { name: "hmmat;", characters: "\u{2133}", - }); + })); } - if first_char == 'p' && try_read("lanck;") { - return Some(CharRef { + if first_char == 'p' && try_read("lanck;")? { + return Ok(Some(CharRef { name: "lanck;", characters: "\u{210f}", - }); + })); } - if first_char == 'p' && try_read("lankv;") { - return Some(CharRef { + if first_char == 'p' && try_read("lankv;")? { + return Ok(Some(CharRef { name: "lankv;", characters: "\u{210f}", - }); + })); } - if first_char == 'p' && try_read("lusdo;") { - return Some(CharRef { + if first_char == 'p' && try_read("lusdo;")? { + return Ok(Some(CharRef { name: "lusdo;", characters: "\u{2214}", - }); + })); } - if first_char == 'p' && try_read("lusdu;") { - return Some(CharRef { + if first_char == 'p' && try_read("lusdu;")? { + return Ok(Some(CharRef { name: "lusdu;", characters: "\u{2a25}", - }); + })); } - if first_char == 'p' && try_read("lusmn;") { - return Some(CharRef { + if first_char == 'p' && try_read("lusmn;")? { + return Ok(Some(CharRef { name: "lusmn;", characters: "\u{b1}", - }); + })); } - if first_char == 'p' && try_read("receq;") { - return Some(CharRef { + if first_char == 'p' && try_read("receq;")? { + return Ok(Some(CharRef { name: "receq;", characters: "\u{2aaf}", - }); + })); } - if first_char == 'p' && try_read("rimes;") { - return Some(CharRef { + if first_char == 'p' && try_read("rimes;")? { + return Ok(Some(CharRef { name: "rimes;", characters: "\u{2119}", - }); + })); } - if first_char == 'p' && try_read("rnsim;") { - return Some(CharRef { + if first_char == 'p' && try_read("rnsim;")? { + return Ok(Some(CharRef { name: "rnsim;", characters: "\u{22e8}", - }); + })); } - if first_char == 'p' && try_read("ropto;") { - return Some(CharRef { + if first_char == 'p' && try_read("ropto;")? { + return Ok(Some(CharRef { name: "ropto;", characters: "\u{221d}", - }); + })); } - if first_char == 'p' && try_read("rurel;") { - return Some(CharRef { + if first_char == 'p' && try_read("rurel;")? { + return Ok(Some(CharRef { name: "rurel;", characters: "\u{22b0}", - }); + })); } - if first_char == 'p' && try_read("uncsp;") { - return Some(CharRef { + if first_char == 'p' && try_read("uncsp;")? { + return Ok(Some(CharRef { name: "uncsp;", characters: "\u{2008}", - }); + })); } - if first_char == 'q' && try_read("prime;") { - return Some(CharRef { + if first_char == 'q' && try_read("prime;")? { + return Ok(Some(CharRef { name: "prime;", characters: "\u{2057}", - }); + })); } - if first_char == 'r' && try_read("Atail;") { - return Some(CharRef { + if first_char == 'r' && try_read("Atail;")? { + return Ok(Some(CharRef { name: "Atail;", characters: "\u{291c}", - }); + })); } - if first_char == 'r' && try_read("acute;") { - return Some(CharRef { + if first_char == 'r' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{155}", - }); + })); } - if first_char == 'r' && try_read("angle;") { - return Some(CharRef { + if first_char == 'r' && try_read("angle;")? { + return Ok(Some(CharRef { name: "angle;", characters: "\u{27e9}", - }); + })); } - if first_char == 'r' && try_read("arrap;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrap;")? { + return Ok(Some(CharRef { name: "arrap;", characters: "\u{2975}", - }); + })); } - if first_char == 'r' && try_read("arrfs;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrfs;")? { + return Ok(Some(CharRef { name: "arrfs;", characters: "\u{291e}", - }); + })); } - if first_char == 'r' && try_read("arrhk;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrhk;")? { + return Ok(Some(CharRef { name: "arrhk;", characters: "\u{21aa}", - }); + })); } - if first_char == 'r' && try_read("arrlp;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrlp;")? { + return Ok(Some(CharRef { name: "arrlp;", characters: "\u{21ac}", - }); + })); } - if first_char == 'r' && try_read("arrpl;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrpl;")? { + return Ok(Some(CharRef { name: "arrpl;", characters: "\u{2945}", - }); + })); } - if first_char == 'r' && try_read("arrtl;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrtl;")? { + return Ok(Some(CharRef { name: "arrtl;", characters: "\u{21a3}", - }); + })); } - if first_char == 'r' && try_read("atail;") { - return Some(CharRef { + if first_char == 'r' && try_read("atail;")? { + return Ok(Some(CharRef { name: "atail;", characters: "\u{291a}", - }); + })); } - if first_char == 'r' && try_read("brace;") { - return Some(CharRef { + if first_char == 'r' && try_read("brace;")? { + return Ok(Some(CharRef { name: "brace;", characters: "\u{7d}", - }); + })); } - if first_char == 'r' && try_read("brack;") { - return Some(CharRef { + if first_char == 'r' && try_read("brack;")? { + return Ok(Some(CharRef { name: "brack;", characters: "\u{5d}", - }); + })); } - if first_char == 'r' && try_read("caron;") { - return Some(CharRef { + if first_char == 'r' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{159}", - }); + })); } - if first_char == 'r' && try_read("cedil;") { - return Some(CharRef { + if first_char == 'r' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{157}", - }); + })); } - if first_char == 'r' && try_read("dquor;") { - return Some(CharRef { + if first_char == 'r' && try_read("dquor;")? { + return Ok(Some(CharRef { name: "dquor;", characters: "\u{201d}", - }); + })); } - if first_char == 'r' && try_read("fisht;") { - return Some(CharRef { + if first_char == 'r' && try_read("fisht;")? { + return Ok(Some(CharRef { name: "fisht;", characters: "\u{297d}", - }); + })); } - if first_char == 'r' && try_read("floor;") { - return Some(CharRef { + if first_char == 'r' && try_read("floor;")? { + return Ok(Some(CharRef { name: "floor;", characters: "\u{230b}", - }); + })); } - if first_char == 'r' && try_read("harul;") { - return Some(CharRef { + if first_char == 'r' && try_read("harul;")? { + return Ok(Some(CharRef { name: "harul;", characters: "\u{296c}", - }); + })); } - if first_char == 'r' && try_read("moust;") { - return Some(CharRef { + if first_char == 'r' && try_read("moust;")? { + return Ok(Some(CharRef { name: "moust;", characters: "\u{23b1}", - }); + })); } - if first_char == 'r' && try_read("oplus;") { - return Some(CharRef { + if first_char == 'r' && try_read("oplus;")? { + return Ok(Some(CharRef { name: "oplus;", characters: "\u{2a2e}", - }); + })); } - if first_char == 'r' && try_read("pargt;") { - return Some(CharRef { + if first_char == 'r' && try_read("pargt;")? { + return Ok(Some(CharRef { name: "pargt;", characters: "\u{2994}", - }); + })); } - if first_char == 'r' && try_read("saquo;") { - return Some(CharRef { + if first_char == 'r' && try_read("saquo;")? { + return Ok(Some(CharRef { name: "saquo;", characters: "\u{203a}", - }); + })); } - if first_char == 'r' && try_read("squor;") { - return Some(CharRef { + if first_char == 'r' && try_read("squor;")? { + return Ok(Some(CharRef { name: "squor;", characters: "\u{2019}", - }); + })); } - if first_char == 'r' && try_read("three;") { - return Some(CharRef { + if first_char == 'r' && try_read("three;")? { + return Ok(Some(CharRef { name: "three;", characters: "\u{22cc}", - }); + })); } - if first_char == 'r' && try_read("times;") { - return Some(CharRef { + if first_char == 'r' && try_read("times;")? { + return Ok(Some(CharRef { name: "times;", characters: "\u{22ca}", - }); + })); } - if first_char == 's' && try_read("acute;") { - return Some(CharRef { + if first_char == 's' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{15b}", - }); + })); } - if first_char == 's' && try_read("caron;") { - return Some(CharRef { + if first_char == 's' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{161}", - }); + })); } - if first_char == 's' && try_read("cedil;") { - return Some(CharRef { + if first_char == 's' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{15f}", - }); + })); } - if first_char == 's' && try_read("cnsim;") { - return Some(CharRef { + if first_char == 's' && try_read("cnsim;")? { + return Ok(Some(CharRef { name: "cnsim;", characters: "\u{22e9}", - }); + })); } - if first_char == 's' && try_read("earhk;") { - return Some(CharRef { + if first_char == 's' && try_read("earhk;")? { + return Ok(Some(CharRef { name: "earhk;", characters: "\u{2925}", - }); + })); } - if first_char == 's' && try_read("eswar;") { - return Some(CharRef { + if first_char == 's' && try_read("eswar;")? { + return Ok(Some(CharRef { name: "eswar;", characters: "\u{2929}", - }); + })); } - if first_char == 's' && try_read("frown;") { - return Some(CharRef { + if first_char == 's' && try_read("frown;")? { + return Ok(Some(CharRef { name: "frown;", characters: "\u{2322}", - }); + })); } - if first_char == 's' && try_read("hchcy;") { - return Some(CharRef { + if first_char == 's' && try_read("hchcy;")? { + return Ok(Some(CharRef { name: "hchcy;", characters: "\u{449}", - }); + })); } - if first_char == 's' && try_read("igmaf;") { - return Some(CharRef { + if first_char == 's' && try_read("igmaf;")? { + return Ok(Some(CharRef { name: "igmaf;", characters: "\u{3c2}", - }); + })); } - if first_char == 's' && try_read("igmav;") { - return Some(CharRef { + if first_char == 's' && try_read("igmav;")? { + return Ok(Some(CharRef { name: "igmav;", characters: "\u{3c2}", - }); + })); } - if first_char == 's' && try_read("imdot;") { - return Some(CharRef { + if first_char == 's' && try_read("imdot;")? { + return Ok(Some(CharRef { name: "imdot;", characters: "\u{2a6a}", - }); + })); } - if first_char == 's' && try_read("mashp;") { - return Some(CharRef { + if first_char == 's' && try_read("mashp;")? { + return Ok(Some(CharRef { name: "mashp;", characters: "\u{2a33}", - }); + })); } - if first_char == 's' && try_read("oftcy;") { - return Some(CharRef { + if first_char == 's' && try_read("oftcy;")? { + return Ok(Some(CharRef { name: "oftcy;", characters: "\u{44c}", - }); + })); } - if first_char == 's' && try_read("olbar;") { - return Some(CharRef { + if first_char == 's' && try_read("olbar;")? { + return Ok(Some(CharRef { name: "olbar;", characters: "\u{233f}", - }); + })); } - if first_char == 's' && try_read("pades;") { - return Some(CharRef { + if first_char == 's' && try_read("pades;")? { + return Ok(Some(CharRef { name: "pades;", characters: "\u{2660}", - }); + })); } - if first_char == 's' && try_read("qcaps;") { - return Some(CharRef { + if first_char == 's' && try_read("qcaps;")? { + return Ok(Some(CharRef { name: "qcaps;", characters: "\u{2293}\u{fe00}", - }); + })); } - if first_char == 's' && try_read("qcups;") { - return Some(CharRef { + if first_char == 's' && try_read("qcups;")? { + return Ok(Some(CharRef { name: "qcups;", characters: "\u{2294}\u{fe00}", - }); + })); } - if first_char == 's' && try_read("qsube;") { - return Some(CharRef { + if first_char == 's' && try_read("qsube;")? { + return Ok(Some(CharRef { name: "qsube;", characters: "\u{2291}", - }); + })); } - if first_char == 's' && try_read("qsupe;") { - return Some(CharRef { + if first_char == 's' && try_read("qsupe;")? { + return Ok(Some(CharRef { name: "qsupe;", characters: "\u{2292}", - }); + })); } - if first_char == 's' && try_read("quare;") { - return Some(CharRef { + if first_char == 's' && try_read("quare;")? { + return Ok(Some(CharRef { name: "quare;", characters: "\u{25a1}", - }); + })); } - if first_char == 's' && try_read("quarf;") { - return Some(CharRef { + if first_char == 's' && try_read("quarf;")? { + return Ok(Some(CharRef { name: "quarf;", characters: "\u{25aa}", - }); + })); } - if first_char == 's' && try_read("setmn;") { - return Some(CharRef { + if first_char == 's' && try_read("setmn;")? { + return Ok(Some(CharRef { name: "setmn;", characters: "\u{2216}", - }); + })); } - if first_char == 's' && try_read("smile;") { - return Some(CharRef { + if first_char == 's' && try_read("smile;")? { + return Ok(Some(CharRef { name: "smile;", characters: "\u{2323}", - }); + })); } - if first_char == 's' && try_read("starf;") { - return Some(CharRef { + if first_char == 's' && try_read("starf;")? { + return Ok(Some(CharRef { name: "starf;", characters: "\u{22c6}", - }); + })); } - if first_char == 's' && try_read("ubdot;") { - return Some(CharRef { + if first_char == 's' && try_read("ubdot;")? { + return Ok(Some(CharRef { name: "ubdot;", characters: "\u{2abd}", - }); + })); } - if first_char == 's' && try_read("ubset;") { - return Some(CharRef { + if first_char == 's' && try_read("ubset;")? { + return Ok(Some(CharRef { name: "ubset;", characters: "\u{2282}", - }); + })); } - if first_char == 's' && try_read("ubsim;") { - return Some(CharRef { + if first_char == 's' && try_read("ubsim;")? { + return Ok(Some(CharRef { name: "ubsim;", characters: "\u{2ac7}", - }); + })); } - if first_char == 's' && try_read("ubsub;") { - return Some(CharRef { + if first_char == 's' && try_read("ubsub;")? { + return Ok(Some(CharRef { name: "ubsub;", characters: "\u{2ad5}", - }); + })); } - if first_char == 's' && try_read("ubsup;") { - return Some(CharRef { + if first_char == 's' && try_read("ubsup;")? { + return Ok(Some(CharRef { name: "ubsup;", characters: "\u{2ad3}", - }); + })); } - if first_char == 's' && try_read("ucceq;") { - return Some(CharRef { + if first_char == 's' && try_read("ucceq;")? { + return Ok(Some(CharRef { name: "ucceq;", characters: "\u{2ab0}", - }); + })); } - if first_char == 's' && try_read("updot;") { - return Some(CharRef { + if first_char == 's' && try_read("updot;")? { + return Ok(Some(CharRef { name: "updot;", characters: "\u{2abe}", - }); + })); } - if first_char == 's' && try_read("upset;") { - return Some(CharRef { + if first_char == 's' && try_read("upset;")? { + return Ok(Some(CharRef { name: "upset;", characters: "\u{2283}", - }); + })); } - if first_char == 's' && try_read("upsim;") { - return Some(CharRef { + if first_char == 's' && try_read("upsim;")? { + return Ok(Some(CharRef { name: "upsim;", characters: "\u{2ac8}", - }); + })); } - if first_char == 's' && try_read("upsub;") { - return Some(CharRef { + if first_char == 's' && try_read("upsub;")? { + return Ok(Some(CharRef { name: "upsub;", characters: "\u{2ad4}", - }); + })); } - if first_char == 's' && try_read("upsup;") { - return Some(CharRef { + if first_char == 's' && try_read("upsup;")? { + return Ok(Some(CharRef { name: "upsup;", characters: "\u{2ad6}", - }); + })); } - if first_char == 's' && try_read("warhk;") { - return Some(CharRef { + if first_char == 's' && try_read("warhk;")? { + return Ok(Some(CharRef { name: "warhk;", characters: "\u{2926}", - }); + })); } - if first_char == 's' && try_read("wnwar;") { - return Some(CharRef { + if first_char == 's' && try_read("wnwar;")? { + return Ok(Some(CharRef { name: "wnwar;", characters: "\u{292a}", - }); + })); } - if first_char == 't' && try_read("arget;") { - return Some(CharRef { + if first_char == 't' && try_read("arget;")? { + return Ok(Some(CharRef { name: "arget;", characters: "\u{2316}", - }); + })); } - if first_char == 't' && try_read("caron;") { - return Some(CharRef { + if first_char == 't' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{165}", - }); + })); } - if first_char == 't' && try_read("cedil;") { - return Some(CharRef { + if first_char == 't' && try_read("cedil;")? { + return Ok(Some(CharRef { name: "cedil;", characters: "\u{163}", - }); + })); } - if first_char == 't' && try_read("elrec;") { - return Some(CharRef { + if first_char == 't' && try_read("elrec;")? { + return Ok(Some(CharRef { name: "elrec;", characters: "\u{2315}", - }); + })); } - if first_char == 't' && try_read("here4;") { - return Some(CharRef { + if first_char == 't' && try_read("here4;")? { + return Ok(Some(CharRef { name: "here4;", characters: "\u{2234}", - }); + })); } - if first_char == 't' && try_read("hetav;") { - return Some(CharRef { + if first_char == 't' && try_read("hetav;")? { + return Ok(Some(CharRef { name: "hetav;", characters: "\u{3d1}", - }); + })); } - if first_char == 't' && try_read("hinsp;") { - return Some(CharRef { + if first_char == 't' && try_read("hinsp;")? { + return Ok(Some(CharRef { name: "hinsp;", characters: "\u{2009}", - }); + })); } - if first_char == 't' && try_read("hksim;") { - return Some(CharRef { + if first_char == 't' && try_read("hksim;")? { + return Ok(Some(CharRef { name: "hksim;", characters: "\u{223c}", - }); + })); } - if first_char == 't' && try_read("imesb;") { - return Some(CharRef { + if first_char == 't' && try_read("imesb;")? { + return Ok(Some(CharRef { name: "imesb;", characters: "\u{22a0}", - }); + })); } - if first_char == 't' && try_read("imesd;") { - return Some(CharRef { + if first_char == 't' && try_read("imesd;")? { + return Ok(Some(CharRef { name: "imesd;", characters: "\u{2a30}", - }); + })); } - if first_char == 't' && try_read("opbot;") { - return Some(CharRef { + if first_char == 't' && try_read("opbot;")? { + return Ok(Some(CharRef { name: "opbot;", characters: "\u{2336}", - }); + })); } - if first_char == 't' && try_read("opcir;") { - return Some(CharRef { + if first_char == 't' && try_read("opcir;")? { + return Ok(Some(CharRef { name: "opcir;", characters: "\u{2af1}", - }); + })); } - if first_char == 't' && try_read("prime;") { - return Some(CharRef { + if first_char == 't' && try_read("prime;")? { + return Ok(Some(CharRef { name: "prime;", characters: "\u{2034}", - }); + })); } - if first_char == 't' && try_read("ridot;") { - return Some(CharRef { + if first_char == 't' && try_read("ridot;")? { + return Ok(Some(CharRef { name: "ridot;", characters: "\u{25ec}", - }); + })); } - if first_char == 't' && try_read("strok;") { - return Some(CharRef { + if first_char == 't' && try_read("strok;")? { + return Ok(Some(CharRef { name: "strok;", characters: "\u{167}", - }); + })); } - if first_char == 'u' && try_read("acute;") { - return Some(CharRef { + if first_char == 'u' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{fa}", - }); + })); } - if first_char == 'u' && try_read("breve;") { - return Some(CharRef { + if first_char == 'u' && try_read("breve;")? { + return Ok(Some(CharRef { name: "breve;", characters: "\u{16d}", - }); + })); } - if first_char == 'u' && try_read("dblac;") { - return Some(CharRef { + if first_char == 'u' && try_read("dblac;")? { + return Ok(Some(CharRef { name: "dblac;", characters: "\u{171}", - }); + })); } - if first_char == 'u' && try_read("fisht;") { - return Some(CharRef { + if first_char == 'u' && try_read("fisht;")? { + return Ok(Some(CharRef { name: "fisht;", characters: "\u{297e}", - }); + })); } - if first_char == 'u' && try_read("grave;") { - return Some(CharRef { + if first_char == 'u' && try_read("grave;")? { + return Ok(Some(CharRef { name: "grave;", characters: "\u{f9}", - }); + })); } - if first_char == 'u' && try_read("lcorn;") { - return Some(CharRef { + if first_char == 'u' && try_read("lcorn;")? { + return Ok(Some(CharRef { name: "lcorn;", characters: "\u{231c}", - }); + })); } - if first_char == 'u' && try_read("lcrop;") { - return Some(CharRef { + if first_char == 'u' && try_read("lcrop;")? { + return Ok(Some(CharRef { name: "lcrop;", characters: "\u{230f}", - }); + })); } - if first_char == 'u' && try_read("rcorn;") { - return Some(CharRef { + if first_char == 'u' && try_read("rcorn;")? { + return Ok(Some(CharRef { name: "rcorn;", characters: "\u{231d}", - }); + })); } - if first_char == 'u' && try_read("rcrop;") { - return Some(CharRef { + if first_char == 'u' && try_read("rcrop;")? { + return Ok(Some(CharRef { name: "rcrop;", characters: "\u{230e}", - }); + })); } - if first_char == 'u' && try_read("tilde;") { - return Some(CharRef { + if first_char == 'u' && try_read("tilde;")? { + return Ok(Some(CharRef { name: "tilde;", characters: "\u{169}", - }); + })); } - if first_char == 'v' && try_read("angrt;") { - return Some(CharRef { + if first_char == 'v' && try_read("angrt;")? { + return Ok(Some(CharRef { name: "angrt;", characters: "\u{299c}", - }); + })); } - if first_char == 'v' && try_read("arphi;") { - return Some(CharRef { + if first_char == 'v' && try_read("arphi;")? { + return Ok(Some(CharRef { name: "arphi;", characters: "\u{3d5}", - }); + })); } - if first_char == 'v' && try_read("arrho;") { - return Some(CharRef { + if first_char == 'v' && try_read("arrho;")? { + return Ok(Some(CharRef { name: "arrho;", characters: "\u{3f1}", - }); + })); } - if first_char == 'v' && try_read("eebar;") { - return Some(CharRef { + if first_char == 'v' && try_read("eebar;")? { + return Ok(Some(CharRef { name: "eebar;", characters: "\u{22bb}", - }); + })); } - if first_char == 'v' && try_read("ellip;") { - return Some(CharRef { + if first_char == 'v' && try_read("ellip;")? { + return Ok(Some(CharRef { name: "ellip;", characters: "\u{22ee}", - }); + })); } - if first_char == 'v' && try_read("erbar;") { - return Some(CharRef { + if first_char == 'v' && try_read("erbar;")? { + return Ok(Some(CharRef { name: "erbar;", characters: "\u{7c}", - }); + })); } - if first_char == 'v' && try_read("subnE;") { - return Some(CharRef { + if first_char == 'v' && try_read("subnE;")? { + return Ok(Some(CharRef { name: "subnE;", characters: "\u{2acb}\u{fe00}", - }); + })); } - if first_char == 'v' && try_read("subne;") { - return Some(CharRef { + if first_char == 'v' && try_read("subne;")? { + return Ok(Some(CharRef { name: "subne;", characters: "\u{228a}\u{fe00}", - }); + })); } - if first_char == 'v' && try_read("supnE;") { - return Some(CharRef { + if first_char == 'v' && try_read("supnE;")? { + return Ok(Some(CharRef { name: "supnE;", characters: "\u{2acc}\u{fe00}", - }); + })); } - if first_char == 'v' && try_read("supne;") { - return Some(CharRef { + if first_char == 'v' && try_read("supne;")? { + return Ok(Some(CharRef { name: "supne;", characters: "\u{228b}\u{fe00}", - }); + })); } - if first_char == 'w' && try_read("edbar;") { - return Some(CharRef { + if first_char == 'w' && try_read("edbar;")? { + return Ok(Some(CharRef { name: "edbar;", characters: "\u{2a5f}", - }); + })); } - if first_char == 'w' && try_read("edgeq;") { - return Some(CharRef { + if first_char == 'w' && try_read("edgeq;")? { + return Ok(Some(CharRef { name: "edgeq;", characters: "\u{2259}", - }); + })); } - if first_char == 'w' && try_read("eierp;") { - return Some(CharRef { + if first_char == 'w' && try_read("eierp;")? { + return Ok(Some(CharRef { name: "eierp;", characters: "\u{2118}", - }); + })); } - if first_char == 'w' && try_read("reath;") { - return Some(CharRef { + if first_char == 'w' && try_read("reath;")? { + return Ok(Some(CharRef { name: "reath;", characters: "\u{2240}", - }); + })); } - if first_char == 'x' && try_read("oplus;") { - return Some(CharRef { + if first_char == 'x' && try_read("oplus;")? { + return Ok(Some(CharRef { name: "oplus;", characters: "\u{2a01}", - }); + })); } - if first_char == 'x' && try_read("otime;") { - return Some(CharRef { + if first_char == 'x' && try_read("otime;")? { + return Ok(Some(CharRef { name: "otime;", characters: "\u{2a02}", - }); + })); } - if first_char == 'x' && try_read("sqcup;") { - return Some(CharRef { + if first_char == 'x' && try_read("sqcup;")? { + return Ok(Some(CharRef { name: "sqcup;", characters: "\u{2a06}", - }); + })); } - if first_char == 'x' && try_read("uplus;") { - return Some(CharRef { + if first_char == 'x' && try_read("uplus;")? { + return Ok(Some(CharRef { name: "uplus;", characters: "\u{2a04}", - }); + })); } - if first_char == 'x' && try_read("wedge;") { - return Some(CharRef { + if first_char == 'x' && try_read("wedge;")? { + return Ok(Some(CharRef { name: "wedge;", characters: "\u{22c0}", - }); + })); } - if first_char == 'y' && try_read("acute;") { - return Some(CharRef { + if first_char == 'y' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{fd}", - }); + })); } - if first_char == 'z' && try_read("acute;") { - return Some(CharRef { + if first_char == 'z' && try_read("acute;")? { + return Ok(Some(CharRef { name: "acute;", characters: "\u{17a}", - }); + })); } - if first_char == 'z' && try_read("caron;") { - return Some(CharRef { + if first_char == 'z' && try_read("caron;")? { + return Ok(Some(CharRef { name: "caron;", characters: "\u{17e}", - }); + })); } - if first_char == 'z' && try_read("eetrf;") { - return Some(CharRef { + if first_char == 'z' && try_read("eetrf;")? { + return Ok(Some(CharRef { name: "eetrf;", characters: "\u{2128}", - }); + })); } - if first_char == 'A' && try_read("Elig;") { - return Some(CharRef { + if first_char == 'A' && try_read("Elig;")? { + return Ok(Some(CharRef { name: "Elig;", characters: "\u{c6}", - }); + })); } - if first_char == 'A' && try_read("acute") { - return Some(CharRef { + if first_char == 'A' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{c1}", - }); + })); } - if first_char == 'A' && try_read("circ;") { - return Some(CharRef { + if first_char == 'A' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{c2}", - }); + })); } - if first_char == 'A' && try_read("grave") { - return Some(CharRef { + if first_char == 'A' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{c0}", - }); + })); } - if first_char == 'A' && try_read("lpha;") { - return Some(CharRef { + if first_char == 'A' && try_read("lpha;")? { + return Ok(Some(CharRef { name: "lpha;", characters: "\u{391}", - }); + })); } - if first_char == 'A' && try_read("macr;") { - return Some(CharRef { + if first_char == 'A' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{100}", - }); + })); } - if first_char == 'A' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'A' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{104}", - }); + })); } - if first_char == 'A' && try_read("ring;") { - return Some(CharRef { + if first_char == 'A' && try_read("ring;")? { + return Ok(Some(CharRef { name: "ring;", characters: "\u{c5}", - }); + })); } - if first_char == 'A' && try_read("tilde") { - return Some(CharRef { + if first_char == 'A' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{c3}", - }); + })); } - if first_char == 'B' && try_read("reve;") { - return Some(CharRef { + if first_char == 'B' && try_read("reve;")? { + return Ok(Some(CharRef { name: "reve;", characters: "\u{2d8}", - }); + })); } - if first_char == 'C' && try_read("cedil") { - return Some(CharRef { + if first_char == 'C' && try_read("cedil")? { + return Ok(Some(CharRef { name: "cedil", characters: "\u{c7}", - }); + })); } - if first_char == 'C' && try_read("circ;") { - return Some(CharRef { + if first_char == 'C' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{108}", - }); + })); } - if first_char == 'C' && try_read("olon;") { - return Some(CharRef { + if first_char == 'C' && try_read("olon;")? { + return Ok(Some(CharRef { name: "olon;", characters: "\u{2237}", - }); + })); } - if first_char == 'C' && try_read("ross;") { - return Some(CharRef { + if first_char == 'C' && try_read("ross;")? { + return Ok(Some(CharRef { name: "ross;", characters: "\u{2a2f}", - }); + })); } - if first_char == 'D' && try_read("ashv;") { - return Some(CharRef { + if first_char == 'D' && try_read("ashv;")? { + return Ok(Some(CharRef { name: "ashv;", characters: "\u{2ae4}", - }); + })); } - if first_char == 'D' && try_read("elta;") { - return Some(CharRef { + if first_char == 'D' && try_read("elta;")? { + return Ok(Some(CharRef { name: "elta;", characters: "\u{394}", - }); + })); } - if first_char == 'E' && try_read("acute") { - return Some(CharRef { + if first_char == 'E' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{c9}", - }); + })); } - if first_char == 'E' && try_read("circ;") { - return Some(CharRef { + if first_char == 'E' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{ca}", - }); + })); } - if first_char == 'E' && try_read("grave") { - return Some(CharRef { + if first_char == 'E' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{c8}", - }); + })); } - if first_char == 'E' && try_read("macr;") { - return Some(CharRef { + if first_char == 'E' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{112}", - }); + })); } - if first_char == 'E' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'E' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{118}", - }); + })); } - if first_char == 'E' && try_read("qual;") { - return Some(CharRef { + if first_char == 'E' && try_read("qual;")? { + return Ok(Some(CharRef { name: "qual;", characters: "\u{2a75}", - }); + })); } - if first_char == 'G' && try_read("amma;") { - return Some(CharRef { + if first_char == 'G' && try_read("amma;")? { + return Ok(Some(CharRef { name: "amma;", characters: "\u{393}", - }); + })); } - if first_char == 'G' && try_read("circ;") { - return Some(CharRef { + if first_char == 'G' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{11c}", - }); + })); } - if first_char == 'H' && try_read("acek;") { - return Some(CharRef { + if first_char == 'H' && try_read("acek;")? { + return Ok(Some(CharRef { name: "acek;", characters: "\u{2c7}", - }); + })); } - if first_char == 'H' && try_read("circ;") { - return Some(CharRef { + if first_char == 'H' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{124}", - }); + })); } - if first_char == 'I' && try_read("Jlig;") { - return Some(CharRef { + if first_char == 'I' && try_read("Jlig;")? { + return Ok(Some(CharRef { name: "Jlig;", characters: "\u{132}", - }); + })); } - if first_char == 'I' && try_read("acute") { - return Some(CharRef { + if first_char == 'I' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{cd}", - }); + })); } - if first_char == 'I' && try_read("circ;") { - return Some(CharRef { + if first_char == 'I' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{ce}", - }); + })); } - if first_char == 'I' && try_read("grave") { - return Some(CharRef { + if first_char == 'I' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{cc}", - }); + })); } - if first_char == 'I' && try_read("macr;") { - return Some(CharRef { + if first_char == 'I' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{12a}", - }); + })); } - if first_char == 'I' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'I' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{12e}", - }); + })); } - if first_char == 'I' && try_read("ukcy;") { - return Some(CharRef { + if first_char == 'I' && try_read("ukcy;")? { + return Ok(Some(CharRef { name: "ukcy;", characters: "\u{406}", - }); + })); } - if first_char == 'J' && try_read("circ;") { - return Some(CharRef { + if first_char == 'J' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{134}", - }); + })); } - if first_char == 'J' && try_read("ukcy;") { - return Some(CharRef { + if first_char == 'J' && try_read("ukcy;")? { + return Ok(Some(CharRef { name: "ukcy;", characters: "\u{404}", - }); + })); } - if first_char == 'K' && try_read("appa;") { - return Some(CharRef { + if first_char == 'K' && try_read("appa;")? { + return Ok(Some(CharRef { name: "appa;", characters: "\u{39a}", - }); + })); } - if first_char == 'N' && try_read("tilde") { - return Some(CharRef { + if first_char == 'N' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{d1}", - }); + })); } - if first_char == 'O' && try_read("Elig;") { - return Some(CharRef { + if first_char == 'O' && try_read("Elig;")? { + return Ok(Some(CharRef { name: "Elig;", characters: "\u{152}", - }); + })); } - if first_char == 'O' && try_read("acute") { - return Some(CharRef { + if first_char == 'O' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{d3}", - }); + })); } - if first_char == 'O' && try_read("circ;") { - return Some(CharRef { + if first_char == 'O' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{d4}", - }); + })); } - if first_char == 'O' && try_read("grave") { - return Some(CharRef { + if first_char == 'O' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{d2}", - }); + })); } - if first_char == 'O' && try_read("macr;") { - return Some(CharRef { + if first_char == 'O' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{14c}", - }); + })); } - if first_char == 'O' && try_read("mega;") { - return Some(CharRef { + if first_char == 'O' && try_read("mega;")? { + return Ok(Some(CharRef { name: "mega;", characters: "\u{3a9}", - }); + })); } - if first_char == 'O' && try_read("slash") { - return Some(CharRef { + if first_char == 'O' && try_read("slash")? { + return Ok(Some(CharRef { name: "slash", characters: "\u{d8}", - }); + })); } - if first_char == 'O' && try_read("tilde") { - return Some(CharRef { + if first_char == 'O' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{d5}", - }); + })); } - if first_char == 'P' && try_read("rime;") { - return Some(CharRef { + if first_char == 'P' && try_read("rime;")? { + return Ok(Some(CharRef { name: "rime;", characters: "\u{2033}", - }); + })); } - if first_char == 'R' && try_read("Barr;") { - return Some(CharRef { + if first_char == 'R' && try_read("Barr;")? { + return Ok(Some(CharRef { name: "Barr;", characters: "\u{2910}", - }); + })); } - if first_char == 'S' && try_read("circ;") { - return Some(CharRef { + if first_char == 'S' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{15c}", - }); + })); } - if first_char == 'S' && try_read("igma;") { - return Some(CharRef { + if first_char == 'S' && try_read("igma;")? { + return Ok(Some(CharRef { name: "igma;", characters: "\u{3a3}", - }); + })); } - if first_char == 'T' && try_read("HORN;") { - return Some(CharRef { + if first_char == 'T' && try_read("HORN;")? { + return Ok(Some(CharRef { name: "HORN;", characters: "\u{de}", - }); + })); } - if first_char == 'T' && try_read("RADE;") { - return Some(CharRef { + if first_char == 'T' && try_read("RADE;")? { + return Ok(Some(CharRef { name: "RADE;", characters: "\u{2122}", - }); + })); } - if first_char == 'T' && try_read("SHcy;") { - return Some(CharRef { + if first_char == 'T' && try_read("SHcy;")? { + return Ok(Some(CharRef { name: "SHcy;", characters: "\u{40b}", - }); + })); } - if first_char == 'T' && try_read("heta;") { - return Some(CharRef { + if first_char == 'T' && try_read("heta;")? { + return Ok(Some(CharRef { name: "heta;", characters: "\u{398}", - }); + })); } - if first_char == 'T' && try_read("ilde;") { - return Some(CharRef { + if first_char == 'T' && try_read("ilde;")? { + return Ok(Some(CharRef { name: "ilde;", characters: "\u{223c}", - }); + })); } - if first_char == 'U' && try_read("acute") { - return Some(CharRef { + if first_char == 'U' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{da}", - }); + })); } - if first_char == 'U' && try_read("brcy;") { - return Some(CharRef { + if first_char == 'U' && try_read("brcy;")? { + return Ok(Some(CharRef { name: "brcy;", characters: "\u{40e}", - }); + })); } - if first_char == 'U' && try_read("circ;") { - return Some(CharRef { + if first_char == 'U' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{db}", - }); + })); } - if first_char == 'U' && try_read("grave") { - return Some(CharRef { + if first_char == 'U' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{d9}", - }); + })); } - if first_char == 'U' && try_read("macr;") { - return Some(CharRef { + if first_char == 'U' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{16a}", - }); + })); } - if first_char == 'U' && try_read("nion;") { - return Some(CharRef { + if first_char == 'U' && try_read("nion;")? { + return Ok(Some(CharRef { name: "nion;", characters: "\u{22c3}", - }); + })); } - if first_char == 'U' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'U' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{172}", - }); + })); } - if first_char == 'U' && try_read("pTee;") { - return Some(CharRef { + if first_char == 'U' && try_read("pTee;")? { + return Ok(Some(CharRef { name: "pTee;", characters: "\u{22a5}", - }); + })); } - if first_char == 'U' && try_read("ring;") { - return Some(CharRef { + if first_char == 'U' && try_read("ring;")? { + return Ok(Some(CharRef { name: "ring;", characters: "\u{16e}", - }); + })); } - if first_char == 'V' && try_read("Dash;") { - return Some(CharRef { + if first_char == 'V' && try_read("Dash;")? { + return Ok(Some(CharRef { name: "Dash;", characters: "\u{22ab}", - }); + })); } - if first_char == 'V' && try_read("dash;") { - return Some(CharRef { + if first_char == 'V' && try_read("dash;")? { + return Ok(Some(CharRef { name: "dash;", characters: "\u{22a9}", - }); + })); } - if first_char == 'W' && try_read("circ;") { - return Some(CharRef { + if first_char == 'W' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{174}", - }); + })); } - if first_char == 'W' && try_read("edge;") { - return Some(CharRef { + if first_char == 'W' && try_read("edge;")? { + return Ok(Some(CharRef { name: "edge;", characters: "\u{22c0}", - }); + })); } - if first_char == 'Y' && try_read("acute") { - return Some(CharRef { + if first_char == 'Y' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{dd}", - }); + })); } - if first_char == 'Y' && try_read("circ;") { - return Some(CharRef { + if first_char == 'Y' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{176}", - }); + })); } - if first_char == 'a' && try_read("acute") { - return Some(CharRef { + if first_char == 'a' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{e1}", - }); + })); } - if first_char == 'a' && try_read("circ;") { - return Some(CharRef { + if first_char == 'a' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{e2}", - }); + })); } - if first_char == 'a' && try_read("cute;") { - return Some(CharRef { + if first_char == 'a' && try_read("cute;")? { + return Ok(Some(CharRef { name: "cute;", characters: "\u{b4}", - }); + })); } - if first_char == 'a' && try_read("elig;") { - return Some(CharRef { + if first_char == 'a' && try_read("elig;")? { + return Ok(Some(CharRef { name: "elig;", characters: "\u{e6}", - }); + })); } - if first_char == 'a' && try_read("grave") { - return Some(CharRef { + if first_char == 'a' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{e0}", - }); + })); } - if first_char == 'a' && try_read("leph;") { - return Some(CharRef { + if first_char == 'a' && try_read("leph;")? { + return Ok(Some(CharRef { name: "leph;", characters: "\u{2135}", - }); + })); } - if first_char == 'a' && try_read("lpha;") { - return Some(CharRef { + if first_char == 'a' && try_read("lpha;")? { + return Ok(Some(CharRef { name: "lpha;", characters: "\u{3b1}", - }); + })); } - if first_char == 'a' && try_read("macr;") { - return Some(CharRef { + if first_char == 'a' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{101}", - }); + })); } - if first_char == 'a' && try_read("malg;") { - return Some(CharRef { + if first_char == 'a' && try_read("malg;")? { + return Ok(Some(CharRef { name: "malg;", characters: "\u{2a3f}", - }); + })); } - if first_char == 'a' && try_read("ngle;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngle;")? { + return Ok(Some(CharRef { name: "ngle;", characters: "\u{2220}", - }); + })); } - if first_char == 'a' && try_read("ngrt;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngrt;")? { + return Ok(Some(CharRef { name: "ngrt;", characters: "\u{221f}", - }); + })); } - if first_char == 'a' && try_read("ngst;") { - return Some(CharRef { + if first_char == 'a' && try_read("ngst;")? { + return Ok(Some(CharRef { name: "ngst;", characters: "\u{c5}", - }); + })); } - if first_char == 'a' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'a' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{105}", - }); + })); } - if first_char == 'a' && try_read("ring;") { - return Some(CharRef { + if first_char == 'a' && try_read("ring;")? { + return Ok(Some(CharRef { name: "ring;", characters: "\u{e5}", - }); + })); } - if first_char == 'a' && try_read("symp;") { - return Some(CharRef { + if first_char == 'a' && try_read("symp;")? { + return Ok(Some(CharRef { name: "symp;", characters: "\u{2248}", - }); + })); } - if first_char == 'a' && try_read("tilde") { - return Some(CharRef { + if first_char == 'a' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{e3}", - }); + })); } - if first_char == 'a' && try_read("wint;") { - return Some(CharRef { + if first_char == 'a' && try_read("wint;")? { + return Ok(Some(CharRef { name: "wint;", characters: "\u{2a11}", - }); + })); } - if first_char == 'b' && try_read("cong;") { - return Some(CharRef { + if first_char == 'b' && try_read("cong;")? { + return Ok(Some(CharRef { name: "cong;", characters: "\u{224c}", - }); + })); } - if first_char == 'b' && try_read("dquo;") { - return Some(CharRef { + if first_char == 'b' && try_read("dquo;")? { + return Ok(Some(CharRef { name: "dquo;", characters: "\u{201e}", - }); + })); } - if first_char == 'b' && try_read("epsi;") { - return Some(CharRef { + if first_char == 'b' && try_read("epsi;")? { + return Ok(Some(CharRef { name: "epsi;", characters: "\u{3f6}", - }); + })); } - if first_char == 'b' && try_read("lank;") { - return Some(CharRef { + if first_char == 'b' && try_read("lank;")? { + return Ok(Some(CharRef { name: "lank;", characters: "\u{2423}", - }); + })); } - if first_char == 'b' && try_read("lk12;") { - return Some(CharRef { + if first_char == 'b' && try_read("lk12;")? { + return Ok(Some(CharRef { name: "lk12;", characters: "\u{2592}", - }); + })); } - if first_char == 'b' && try_read("lk14;") { - return Some(CharRef { + if first_char == 'b' && try_read("lk14;")? { + return Ok(Some(CharRef { name: "lk14;", characters: "\u{2591}", - }); + })); } - if first_char == 'b' && try_read("lk34;") { - return Some(CharRef { + if first_char == 'b' && try_read("lk34;")? { + return Ok(Some(CharRef { name: "lk34;", characters: "\u{2593}", - }); + })); } - if first_char == 'b' && try_read("lock;") { - return Some(CharRef { + if first_char == 'b' && try_read("lock;")? { + return Ok(Some(CharRef { name: "lock;", characters: "\u{2588}", - }); + })); } - if first_char == 'b' && try_read("oxDL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxDL;")? { + return Ok(Some(CharRef { name: "oxDL;", characters: "\u{2557}", - }); + })); } - if first_char == 'b' && try_read("oxDR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxDR;")? { + return Ok(Some(CharRef { name: "oxDR;", characters: "\u{2554}", - }); + })); } - if first_char == 'b' && try_read("oxDl;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxDl;")? { + return Ok(Some(CharRef { name: "oxDl;", characters: "\u{2556}", - }); + })); } - if first_char == 'b' && try_read("oxDr;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxDr;")? { + return Ok(Some(CharRef { name: "oxDr;", characters: "\u{2553}", - }); + })); } - if first_char == 'b' && try_read("oxHD;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxHD;")? { + return Ok(Some(CharRef { name: "oxHD;", characters: "\u{2566}", - }); + })); } - if first_char == 'b' && try_read("oxHU;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxHU;")? { + return Ok(Some(CharRef { name: "oxHU;", characters: "\u{2569}", - }); + })); } - if first_char == 'b' && try_read("oxHd;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxHd;")? { + return Ok(Some(CharRef { name: "oxHd;", characters: "\u{2564}", - }); + })); } - if first_char == 'b' && try_read("oxHu;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxHu;")? { + return Ok(Some(CharRef { name: "oxHu;", characters: "\u{2567}", - }); + })); } - if first_char == 'b' && try_read("oxUL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxUL;")? { + return Ok(Some(CharRef { name: "oxUL;", characters: "\u{255d}", - }); + })); } - if first_char == 'b' && try_read("oxUR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxUR;")? { + return Ok(Some(CharRef { name: "oxUR;", characters: "\u{255a}", - }); + })); } - if first_char == 'b' && try_read("oxUl;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxUl;")? { + return Ok(Some(CharRef { name: "oxUl;", characters: "\u{255c}", - }); + })); } - if first_char == 'b' && try_read("oxUr;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxUr;")? { + return Ok(Some(CharRef { name: "oxUr;", characters: "\u{2559}", - }); + })); } - if first_char == 'b' && try_read("oxVH;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVH;")? { + return Ok(Some(CharRef { name: "oxVH;", characters: "\u{256c}", - }); + })); } - if first_char == 'b' && try_read("oxVL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVL;")? { + return Ok(Some(CharRef { name: "oxVL;", characters: "\u{2563}", - }); + })); } - if first_char == 'b' && try_read("oxVR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVR;")? { + return Ok(Some(CharRef { name: "oxVR;", characters: "\u{2560}", - }); + })); } - if first_char == 'b' && try_read("oxVh;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVh;")? { + return Ok(Some(CharRef { name: "oxVh;", characters: "\u{256b}", - }); + })); } - if first_char == 'b' && try_read("oxVl;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVl;")? { + return Ok(Some(CharRef { name: "oxVl;", characters: "\u{2562}", - }); + })); } - if first_char == 'b' && try_read("oxVr;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxVr;")? { + return Ok(Some(CharRef { name: "oxVr;", characters: "\u{255f}", - }); + })); } - if first_char == 'b' && try_read("oxdL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxdL;")? { + return Ok(Some(CharRef { name: "oxdL;", characters: "\u{2555}", - }); + })); } - if first_char == 'b' && try_read("oxdR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxdR;")? { + return Ok(Some(CharRef { name: "oxdR;", characters: "\u{2552}", - }); + })); } - if first_char == 'b' && try_read("oxdl;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxdl;")? { + return Ok(Some(CharRef { name: "oxdl;", characters: "\u{2510}", - }); + })); } - if first_char == 'b' && try_read("oxdr;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxdr;")? { + return Ok(Some(CharRef { name: "oxdr;", characters: "\u{250c}", - }); + })); } - if first_char == 'b' && try_read("oxhD;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxhD;")? { + return Ok(Some(CharRef { name: "oxhD;", characters: "\u{2565}", - }); + })); } - if first_char == 'b' && try_read("oxhU;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxhU;")? { + return Ok(Some(CharRef { name: "oxhU;", characters: "\u{2568}", - }); + })); } - if first_char == 'b' && try_read("oxhd;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxhd;")? { + return Ok(Some(CharRef { name: "oxhd;", characters: "\u{252c}", - }); + })); } - if first_char == 'b' && try_read("oxhu;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxhu;")? { + return Ok(Some(CharRef { name: "oxhu;", characters: "\u{2534}", - }); + })); } - if first_char == 'b' && try_read("oxuL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxuL;")? { + return Ok(Some(CharRef { name: "oxuL;", characters: "\u{255b}", - }); + })); } - if first_char == 'b' && try_read("oxuR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxuR;")? { + return Ok(Some(CharRef { name: "oxuR;", characters: "\u{2558}", - }); + })); } - if first_char == 'b' && try_read("oxul;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxul;")? { + return Ok(Some(CharRef { name: "oxul;", characters: "\u{2518}", - }); + })); } - if first_char == 'b' && try_read("oxur;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxur;")? { + return Ok(Some(CharRef { name: "oxur;", characters: "\u{2514}", - }); + })); } - if first_char == 'b' && try_read("oxvH;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvH;")? { + return Ok(Some(CharRef { name: "oxvH;", characters: "\u{256a}", - }); + })); } - if first_char == 'b' && try_read("oxvL;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvL;")? { + return Ok(Some(CharRef { name: "oxvL;", characters: "\u{2561}", - }); + })); } - if first_char == 'b' && try_read("oxvR;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvR;")? { + return Ok(Some(CharRef { name: "oxvR;", characters: "\u{255e}", - }); + })); } - if first_char == 'b' && try_read("oxvh;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvh;")? { + return Ok(Some(CharRef { name: "oxvh;", characters: "\u{253c}", - }); + })); } - if first_char == 'b' && try_read("oxvl;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvl;")? { + return Ok(Some(CharRef { name: "oxvl;", characters: "\u{2524}", - }); + })); } - if first_char == 'b' && try_read("oxvr;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxvr;")? { + return Ok(Some(CharRef { name: "oxvr;", characters: "\u{251c}", - }); + })); } - if first_char == 'b' && try_read("reve;") { - return Some(CharRef { + if first_char == 'b' && try_read("reve;")? { + return Ok(Some(CharRef { name: "reve;", characters: "\u{2d8}", - }); + })); } - if first_char == 'b' && try_read("rvbar") { - return Some(CharRef { + if first_char == 'b' && try_read("rvbar")? { + return Ok(Some(CharRef { name: "rvbar", characters: "\u{a6}", - }); + })); } - if first_char == 'b' && try_read("semi;") { - return Some(CharRef { + if first_char == 'b' && try_read("semi;")? { + return Ok(Some(CharRef { name: "semi;", characters: "\u{204f}", - }); + })); } - if first_char == 'b' && try_read("sime;") { - return Some(CharRef { + if first_char == 'b' && try_read("sime;")? { + return Ok(Some(CharRef { name: "sime;", characters: "\u{22cd}", - }); + })); } - if first_char == 'b' && try_read("solb;") { - return Some(CharRef { + if first_char == 'b' && try_read("solb;")? { + return Ok(Some(CharRef { name: "solb;", characters: "\u{29c5}", - }); + })); } - if first_char == 'b' && try_read("umpE;") { - return Some(CharRef { + if first_char == 'b' && try_read("umpE;")? { + return Ok(Some(CharRef { name: "umpE;", characters: "\u{2aae}", - }); + })); } - if first_char == 'b' && try_read("umpe;") { - return Some(CharRef { + if first_char == 'b' && try_read("umpe;")? { + return Ok(Some(CharRef { name: "umpe;", characters: "\u{224f}", - }); + })); } - if first_char == 'c' && try_read("aret;") { - return Some(CharRef { + if first_char == 'c' && try_read("aret;")? { + return Ok(Some(CharRef { name: "aret;", characters: "\u{2041}", - }); + })); } - if first_char == 'c' && try_read("aron;") { - return Some(CharRef { + if first_char == 'c' && try_read("aron;")? { + return Ok(Some(CharRef { name: "aron;", characters: "\u{2c7}", - }); + })); } - if first_char == 'c' && try_read("caps;") { - return Some(CharRef { + if first_char == 'c' && try_read("caps;")? { + return Ok(Some(CharRef { name: "caps;", characters: "\u{2a4d}", - }); + })); } - if first_char == 'c' && try_read("cedil") { - return Some(CharRef { + if first_char == 'c' && try_read("cedil")? { + return Ok(Some(CharRef { name: "cedil", characters: "\u{e7}", - }); + })); } - if first_char == 'c' && try_read("circ;") { - return Some(CharRef { + if first_char == 'c' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{109}", - }); + })); } - if first_char == 'c' && try_read("cups;") { - return Some(CharRef { + if first_char == 'c' && try_read("cups;")? { + return Ok(Some(CharRef { name: "cups;", characters: "\u{2a4c}", - }); + })); } - if first_char == 'c' && try_read("edil;") { - return Some(CharRef { + if first_char == 'c' && try_read("edil;")? { + return Ok(Some(CharRef { name: "edil;", characters: "\u{b8}", - }); + })); } - if first_char == 'c' && try_read("heck;") { - return Some(CharRef { + if first_char == 'c' && try_read("heck;")? { + return Ok(Some(CharRef { name: "heck;", characters: "\u{2713}", - }); + })); } - if first_char == 'c' && try_read("lubs;") { - return Some(CharRef { + if first_char == 'c' && try_read("lubs;")? { + return Ok(Some(CharRef { name: "lubs;", characters: "\u{2663}", - }); + })); } - if first_char == 'c' && try_read("olon;") { - return Some(CharRef { + if first_char == 'c' && try_read("olon;")? { + return Ok(Some(CharRef { name: "olon;", characters: "\u{3a}", - }); + })); } - if first_char == 'c' && try_read("omma;") { - return Some(CharRef { + if first_char == 'c' && try_read("omma;")? { + return Ok(Some(CharRef { name: "omma;", characters: "\u{2c}", - }); + })); } - if first_char == 'c' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'c' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{21b5}", - }); + })); } - if first_char == 'c' && try_read("ross;") { - return Some(CharRef { + if first_char == 'c' && try_read("ross;")? { + return Ok(Some(CharRef { name: "ross;", characters: "\u{2717}", - }); + })); } - if first_char == 'c' && try_read("sube;") { - return Some(CharRef { + if first_char == 'c' && try_read("sube;")? { + return Ok(Some(CharRef { name: "sube;", characters: "\u{2ad1}", - }); + })); } - if first_char == 'c' && try_read("supe;") { - return Some(CharRef { + if first_char == 'c' && try_read("supe;")? { + return Ok(Some(CharRef { name: "supe;", characters: "\u{2ad2}", - }); + })); } - if first_char == 'c' && try_read("tdot;") { - return Some(CharRef { + if first_char == 'c' && try_read("tdot;")? { + return Ok(Some(CharRef { name: "tdot;", characters: "\u{22ef}", - }); + })); } - if first_char == 'c' && try_read("uepr;") { - return Some(CharRef { + if first_char == 'c' && try_read("uepr;")? { + return Ok(Some(CharRef { name: "uepr;", characters: "\u{22de}", - }); + })); } - if first_char == 'c' && try_read("uesc;") { - return Some(CharRef { + if first_char == 'c' && try_read("uesc;")? { + return Ok(Some(CharRef { name: "uesc;", characters: "\u{22df}", - }); + })); } - if first_char == 'c' && try_read("upor;") { - return Some(CharRef { + if first_char == 'c' && try_read("upor;")? { + return Ok(Some(CharRef { name: "upor;", characters: "\u{2a45}", - }); + })); } - if first_char == 'c' && try_read("urren") { - return Some(CharRef { + if first_char == 'c' && try_read("urren")? { + return Ok(Some(CharRef { name: "urren", characters: "\u{a4}", - }); + })); } - if first_char == 'c' && try_read("uvee;") { - return Some(CharRef { + if first_char == 'c' && try_read("uvee;")? { + return Ok(Some(CharRef { name: "uvee;", characters: "\u{22ce}", - }); + })); } - if first_char == 'c' && try_read("uwed;") { - return Some(CharRef { + if first_char == 'c' && try_read("uwed;")? { + return Ok(Some(CharRef { name: "uwed;", characters: "\u{22cf}", - }); + })); } - if first_char == 'c' && try_read("wint;") { - return Some(CharRef { + if first_char == 'c' && try_read("wint;")? { + return Ok(Some(CharRef { name: "wint;", characters: "\u{2231}", - }); + })); } - if first_char == 'd' && try_read("ashv;") { - return Some(CharRef { + if first_char == 'd' && try_read("ashv;")? { + return Ok(Some(CharRef { name: "ashv;", characters: "\u{22a3}", - }); + })); } - if first_char == 'd' && try_read("blac;") { - return Some(CharRef { + if first_char == 'd' && try_read("blac;")? { + return Ok(Some(CharRef { name: "blac;", characters: "\u{2dd}", - }); + })); } - if first_char == 'd' && try_read("darr;") { - return Some(CharRef { + if first_char == 'd' && try_read("darr;")? { + return Ok(Some(CharRef { name: "darr;", characters: "\u{21ca}", - }); + })); } - if first_char == 'd' && try_read("elta;") { - return Some(CharRef { + if first_char == 'd' && try_read("elta;")? { + return Ok(Some(CharRef { name: "elta;", characters: "\u{3b4}", - }); + })); } - if first_char == 'd' && try_read("harl;") { - return Some(CharRef { + if first_char == 'd' && try_read("harl;")? { + return Ok(Some(CharRef { name: "harl;", characters: "\u{21c3}", - }); + })); } - if first_char == 'd' && try_read("harr;") { - return Some(CharRef { + if first_char == 'd' && try_read("harr;")? { + return Ok(Some(CharRef { name: "harr;", characters: "\u{21c2}", - }); + })); } - if first_char == 'd' && try_read("iams;") { - return Some(CharRef { + if first_char == 'd' && try_read("iams;")? { + return Ok(Some(CharRef { name: "iams;", characters: "\u{2666}", - }); + })); } - if first_char == 'd' && try_read("isin;") { - return Some(CharRef { + if first_char == 'd' && try_read("isin;")? { + return Ok(Some(CharRef { name: "isin;", characters: "\u{22f2}", - }); + })); } - if first_char == 'd' && try_read("ivide") { - return Some(CharRef { + if first_char == 'd' && try_read("ivide")? { + return Ok(Some(CharRef { name: "ivide", characters: "\u{f7}", - }); + })); } - if first_char == 'd' && try_read("oteq;") { - return Some(CharRef { + if first_char == 'd' && try_read("oteq;")? { + return Ok(Some(CharRef { name: "oteq;", characters: "\u{2250}", - }); + })); } - if first_char == 'd' && try_read("tdot;") { - return Some(CharRef { + if first_char == 'd' && try_read("tdot;")? { + return Ok(Some(CharRef { name: "tdot;", characters: "\u{22f1}", - }); + })); } - if first_char == 'd' && try_read("trif;") { - return Some(CharRef { + if first_char == 'd' && try_read("trif;")? { + return Ok(Some(CharRef { name: "trif;", characters: "\u{25be}", - }); + })); } - if first_char == 'd' && try_read("uarr;") { - return Some(CharRef { + if first_char == 'd' && try_read("uarr;")? { + return Ok(Some(CharRef { name: "uarr;", characters: "\u{21f5}", - }); + })); } - if first_char == 'd' && try_read("uhar;") { - return Some(CharRef { + if first_char == 'd' && try_read("uhar;")? { + return Ok(Some(CharRef { name: "uhar;", characters: "\u{296f}", - }); + })); } - if first_char == 'e' && try_read("DDot;") { - return Some(CharRef { + if first_char == 'e' && try_read("DDot;")? { + return Ok(Some(CharRef { name: "DDot;", characters: "\u{2a77}", - }); + })); } - if first_char == 'e' && try_read("acute") { - return Some(CharRef { + if first_char == 'e' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{e9}", - }); + })); } - if first_char == 'e' && try_read("circ;") { - return Some(CharRef { + if first_char == 'e' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{ea}", - }); + })); } - if first_char == 'e' && try_read("fDot;") { - return Some(CharRef { + if first_char == 'e' && try_read("fDot;")? { + return Ok(Some(CharRef { name: "fDot;", characters: "\u{2252}", - }); + })); } - if first_char == 'e' && try_read("grave") { - return Some(CharRef { + if first_char == 'e' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{e8}", - }); + })); } - if first_char == 'e' && try_read("macr;") { - return Some(CharRef { + if first_char == 'e' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{113}", - }); + })); } - if first_char == 'e' && try_read("mpty;") { - return Some(CharRef { + if first_char == 'e' && try_read("mpty;")? { + return Ok(Some(CharRef { name: "mpty;", characters: "\u{2205}", - }); + })); } - if first_char == 'e' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'e' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{119}", - }); + })); } - if first_char == 'e' && try_read("plus;") { - return Some(CharRef { + if first_char == 'e' && try_read("plus;")? { + return Ok(Some(CharRef { name: "plus;", characters: "\u{2a71}", - }); + })); } - if first_char == 'e' && try_read("psiv;") { - return Some(CharRef { + if first_char == 'e' && try_read("psiv;")? { + return Ok(Some(CharRef { name: "psiv;", characters: "\u{3f5}", - }); + })); } - if first_char == 'e' && try_read("qsim;") { - return Some(CharRef { + if first_char == 'e' && try_read("qsim;")? { + return Ok(Some(CharRef { name: "qsim;", characters: "\u{2242}", - }); + })); } - if first_char == 'e' && try_read("quiv;") { - return Some(CharRef { + if first_char == 'e' && try_read("quiv;")? { + return Ok(Some(CharRef { name: "quiv;", characters: "\u{2261}", - }); + })); } - if first_char == 'e' && try_read("rDot;") { - return Some(CharRef { + if first_char == 'e' && try_read("rDot;")? { + return Ok(Some(CharRef { name: "rDot;", characters: "\u{2253}", - }); + })); } - if first_char == 'e' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'e' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{2971}", - }); + })); } - if first_char == 'e' && try_read("sdot;") { - return Some(CharRef { + if first_char == 'e' && try_read("sdot;")? { + return Ok(Some(CharRef { name: "sdot;", characters: "\u{2250}", - }); + })); } - if first_char == 'e' && try_read("xist;") { - return Some(CharRef { + if first_char == 'e' && try_read("xist;")? { + return Ok(Some(CharRef { name: "xist;", characters: "\u{2203}", - }); + })); } - if first_char == 'f' && try_read("flig;") { - return Some(CharRef { + if first_char == 'f' && try_read("flig;")? { + return Ok(Some(CharRef { name: "flig;", characters: "\u{fb00}", - }); + })); } - if first_char == 'f' && try_read("ilig;") { - return Some(CharRef { + if first_char == 'f' && try_read("ilig;")? { + return Ok(Some(CharRef { name: "ilig;", characters: "\u{fb01}", - }); + })); } - if first_char == 'f' && try_read("jlig;") { - return Some(CharRef { + if first_char == 'f' && try_read("jlig;")? { + return Ok(Some(CharRef { name: "jlig;", characters: "\u{66}\u{6a}", - }); + })); } - if first_char == 'f' && try_read("llig;") { - return Some(CharRef { + if first_char == 'f' && try_read("llig;")? { + return Ok(Some(CharRef { name: "llig;", characters: "\u{fb02}", - }); + })); } - if first_char == 'f' && try_read("ltns;") { - return Some(CharRef { + if first_char == 'f' && try_read("ltns;")? { + return Ok(Some(CharRef { name: "ltns;", characters: "\u{25b1}", - }); + })); } - if first_char == 'f' && try_read("orkv;") { - return Some(CharRef { + if first_char == 'f' && try_read("orkv;")? { + return Ok(Some(CharRef { name: "orkv;", characters: "\u{2ad9}", - }); + })); } - if first_char == 'f' && try_read("rac12") { - return Some(CharRef { + if first_char == 'f' && try_read("rac12")? { + return Ok(Some(CharRef { name: "rac12", characters: "\u{bd}", - }); + })); } - if first_char == 'f' && try_read("rac14") { - return Some(CharRef { + if first_char == 'f' && try_read("rac14")? { + return Ok(Some(CharRef { name: "rac14", characters: "\u{bc}", - }); + })); } - if first_char == 'f' && try_read("rac34") { - return Some(CharRef { + if first_char == 'f' && try_read("rac34")? { + return Ok(Some(CharRef { name: "rac34", characters: "\u{be}", - }); + })); } - if first_char == 'f' && try_read("rasl;") { - return Some(CharRef { + if first_char == 'f' && try_read("rasl;")? { + return Ok(Some(CharRef { name: "rasl;", characters: "\u{2044}", - }); + })); } - if first_char == 'f' && try_read("rown;") { - return Some(CharRef { + if first_char == 'f' && try_read("rown;")? { + return Ok(Some(CharRef { name: "rown;", characters: "\u{2322}", - }); + })); } - if first_char == 'g' && try_read("amma;") { - return Some(CharRef { + if first_char == 'g' && try_read("amma;")? { + return Ok(Some(CharRef { name: "amma;", characters: "\u{3b3}", - }); + })); } - if first_char == 'g' && try_read("circ;") { - return Some(CharRef { + if first_char == 'g' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{11d}", - }); + })); } - if first_char == 'g' && try_read("escc;") { - return Some(CharRef { + if first_char == 'g' && try_read("escc;")? { + return Ok(Some(CharRef { name: "escc;", characters: "\u{2aa9}", - }); + })); } - if first_char == 'g' && try_read("imel;") { - return Some(CharRef { + if first_char == 'g' && try_read("imel;")? { + return Ok(Some(CharRef { name: "imel;", characters: "\u{2137}", - }); + })); } - if first_char == 'g' && try_read("neqq;") { - return Some(CharRef { + if first_char == 'g' && try_read("neqq;")? { + return Ok(Some(CharRef { name: "neqq;", characters: "\u{2269}", - }); + })); } - if first_char == 'g' && try_read("nsim;") { - return Some(CharRef { + if first_char == 'g' && try_read("nsim;")? { + return Ok(Some(CharRef { name: "nsim;", characters: "\u{22e7}", - }); + })); } - if first_char == 'g' && try_read("rave;") { - return Some(CharRef { + if first_char == 'g' && try_read("rave;")? { + return Ok(Some(CharRef { name: "rave;", characters: "\u{60}", - }); + })); } - if first_char == 'g' && try_read("sime;") { - return Some(CharRef { + if first_char == 'g' && try_read("sime;")? { + return Ok(Some(CharRef { name: "sime;", characters: "\u{2a8e}", - }); + })); } - if first_char == 'g' && try_read("siml;") { - return Some(CharRef { + if first_char == 'g' && try_read("siml;")? { + return Ok(Some(CharRef { name: "siml;", characters: "\u{2a90}", - }); + })); } - if first_char == 'g' && try_read("tcir;") { - return Some(CharRef { + if first_char == 'g' && try_read("tcir;")? { + return Ok(Some(CharRef { name: "tcir;", characters: "\u{2a7a}", - }); + })); } - if first_char == 'g' && try_read("tdot;") { - return Some(CharRef { + if first_char == 'g' && try_read("tdot;")? { + return Ok(Some(CharRef { name: "tdot;", characters: "\u{22d7}", - }); + })); } - if first_char == 'h' && try_read("arrw;") { - return Some(CharRef { + if first_char == 'h' && try_read("arrw;")? { + return Ok(Some(CharRef { name: "arrw;", characters: "\u{21ad}", - }); + })); } - if first_char == 'h' && try_read("circ;") { - return Some(CharRef { + if first_char == 'h' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{125}", - }); + })); } - if first_char == 'h' && try_read("oarr;") { - return Some(CharRef { + if first_char == 'h' && try_read("oarr;")? { + return Ok(Some(CharRef { name: "oarr;", characters: "\u{21ff}", - }); + })); } - if first_char == 'i' && try_read("acute") { - return Some(CharRef { + if first_char == 'i' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{ed}", - }); + })); } - if first_char == 'i' && try_read("circ;") { - return Some(CharRef { + if first_char == 'i' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{ee}", - }); + })); } - if first_char == 'i' && try_read("excl;") { - return Some(CharRef { + if first_char == 'i' && try_read("excl;")? { + return Ok(Some(CharRef { name: "excl;", characters: "\u{a1}", - }); + })); } - if first_char == 'i' && try_read("grave") { - return Some(CharRef { + if first_char == 'i' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{ec}", - }); + })); } - if first_char == 'i' && try_read("iint;") { - return Some(CharRef { + if first_char == 'i' && try_read("iint;")? { + return Ok(Some(CharRef { name: "iint;", characters: "\u{222d}", - }); + })); } - if first_char == 'i' && try_read("iota;") { - return Some(CharRef { + if first_char == 'i' && try_read("iota;")? { + return Ok(Some(CharRef { name: "iota;", characters: "\u{2129}", - }); + })); } - if first_char == 'i' && try_read("jlig;") { - return Some(CharRef { + if first_char == 'i' && try_read("jlig;")? { + return Ok(Some(CharRef { name: "jlig;", characters: "\u{133}", - }); + })); } - if first_char == 'i' && try_read("macr;") { - return Some(CharRef { + if first_char == 'i' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{12b}", - }); + })); } - if first_char == 'i' && try_read("mage;") { - return Some(CharRef { + if first_char == 'i' && try_read("mage;")? { + return Ok(Some(CharRef { name: "mage;", characters: "\u{2111}", - }); + })); } - if first_char == 'i' && try_read("math;") { - return Some(CharRef { + if first_char == 'i' && try_read("math;")? { + return Ok(Some(CharRef { name: "math;", characters: "\u{131}", - }); + })); } - if first_char == 'i' && try_read("mped;") { - return Some(CharRef { + if first_char == 'i' && try_read("mped;")? { + return Ok(Some(CharRef { name: "mped;", characters: "\u{1b5}", - }); + })); } - if first_char == 'i' && try_read("nfin;") { - return Some(CharRef { + if first_char == 'i' && try_read("nfin;")? { + return Ok(Some(CharRef { name: "nfin;", characters: "\u{221e}", - }); + })); } - if first_char == 'i' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'i' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{12f}", - }); + })); } - if first_char == 'i' && try_read("prod;") { - return Some(CharRef { + if first_char == 'i' && try_read("prod;")? { + return Ok(Some(CharRef { name: "prod;", characters: "\u{2a3c}", - }); + })); } - if first_char == 'i' && try_read("quest") { - return Some(CharRef { + if first_char == 'i' && try_read("quest")? { + return Ok(Some(CharRef { name: "quest", characters: "\u{bf}", - }); + })); } - if first_char == 'i' && try_read("sinE;") { - return Some(CharRef { + if first_char == 'i' && try_read("sinE;")? { + return Ok(Some(CharRef { name: "sinE;", characters: "\u{22f9}", - }); + })); } - if first_char == 'i' && try_read("sins;") { - return Some(CharRef { + if first_char == 'i' && try_read("sins;")? { + return Ok(Some(CharRef { name: "sins;", characters: "\u{22f4}", - }); + })); } - if first_char == 'i' && try_read("sinv;") { - return Some(CharRef { + if first_char == 'i' && try_read("sinv;")? { + return Ok(Some(CharRef { name: "sinv;", characters: "\u{2208}", - }); + })); } - if first_char == 'i' && try_read("ukcy;") { - return Some(CharRef { + if first_char == 'i' && try_read("ukcy;")? { + return Ok(Some(CharRef { name: "ukcy;", characters: "\u{456}", - }); + })); } - if first_char == 'j' && try_read("circ;") { - return Some(CharRef { + if first_char == 'j' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{135}", - }); + })); } - if first_char == 'j' && try_read("math;") { - return Some(CharRef { + if first_char == 'j' && try_read("math;")? { + return Ok(Some(CharRef { name: "math;", characters: "\u{237}", - }); + })); } - if first_char == 'j' && try_read("ukcy;") { - return Some(CharRef { + if first_char == 'j' && try_read("ukcy;")? { + return Ok(Some(CharRef { name: "ukcy;", characters: "\u{454}", - }); + })); } - if first_char == 'k' && try_read("appa;") { - return Some(CharRef { + if first_char == 'k' && try_read("appa;")? { + return Ok(Some(CharRef { name: "appa;", characters: "\u{3ba}", - }); + })); } - if first_char == 'l' && try_read("Aarr;") { - return Some(CharRef { + if first_char == 'l' && try_read("Aarr;")? { + return Ok(Some(CharRef { name: "Aarr;", characters: "\u{21da}", - }); + })); } - if first_char == 'l' && try_read("Barr;") { - return Some(CharRef { + if first_char == 'l' && try_read("Barr;")? { + return Ok(Some(CharRef { name: "Barr;", characters: "\u{290e}", - }); + })); } - if first_char == 'l' && try_read("angd;") { - return Some(CharRef { + if first_char == 'l' && try_read("angd;")? { + return Ok(Some(CharRef { name: "angd;", characters: "\u{2991}", - }); + })); } - if first_char == 'l' && try_read("aquo;") { - return Some(CharRef { + if first_char == 'l' && try_read("aquo;")? { + return Ok(Some(CharRef { name: "aquo;", characters: "\u{ab}", - }); + })); } - if first_char == 'l' && try_read("arrb;") { - return Some(CharRef { + if first_char == 'l' && try_read("arrb;")? { + return Ok(Some(CharRef { name: "arrb;", characters: "\u{21e4}", - }); + })); } - if first_char == 'l' && try_read("ates;") { - return Some(CharRef { + if first_char == 'l' && try_read("ates;")? { + return Ok(Some(CharRef { name: "ates;", characters: "\u{2aad}\u{fe00}", - }); + })); } - if first_char == 'l' && try_read("barr;") { - return Some(CharRef { + if first_char == 'l' && try_read("barr;")? { + return Ok(Some(CharRef { name: "barr;", characters: "\u{290c}", - }); + })); } - if first_char == 'l' && try_read("bbrk;") { - return Some(CharRef { + if first_char == 'l' && try_read("bbrk;")? { + return Ok(Some(CharRef { name: "bbrk;", characters: "\u{2772}", - }); + })); } - if first_char == 'l' && try_read("brke;") { - return Some(CharRef { + if first_char == 'l' && try_read("brke;")? { + return Ok(Some(CharRef { name: "brke;", characters: "\u{298b}", - }); + })); } - if first_char == 'l' && try_read("ceil;") { - return Some(CharRef { + if first_char == 'l' && try_read("ceil;")? { + return Ok(Some(CharRef { name: "ceil;", characters: "\u{2308}", - }); + })); } - if first_char == 'l' && try_read("dquo;") { - return Some(CharRef { + if first_char == 'l' && try_read("dquo;")? { + return Ok(Some(CharRef { name: "dquo;", characters: "\u{201c}", - }); + })); } - if first_char == 'l' && try_read("escc;") { - return Some(CharRef { + if first_char == 'l' && try_read("escc;")? { + return Ok(Some(CharRef { name: "escc;", characters: "\u{2aa8}", - }); + })); } - if first_char == 'l' && try_read("hard;") { - return Some(CharRef { + if first_char == 'l' && try_read("hard;")? { + return Ok(Some(CharRef { name: "hard;", characters: "\u{21bd}", - }); + })); } - if first_char == 'l' && try_read("haru;") { - return Some(CharRef { + if first_char == 'l' && try_read("haru;")? { + return Ok(Some(CharRef { name: "haru;", characters: "\u{21bc}", - }); + })); } - if first_char == 'l' && try_read("hblk;") { - return Some(CharRef { + if first_char == 'l' && try_read("hblk;")? { + return Ok(Some(CharRef { name: "hblk;", characters: "\u{2584}", - }); + })); } - if first_char == 'l' && try_read("larr;") { - return Some(CharRef { + if first_char == 'l' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{21c7}", - }); + })); } - if first_char == 'l' && try_read("ltri;") { - return Some(CharRef { + if first_char == 'l' && try_read("ltri;")? { + return Ok(Some(CharRef { name: "ltri;", characters: "\u{25fa}", - }); + })); } - if first_char == 'l' && try_read("neqq;") { - return Some(CharRef { + if first_char == 'l' && try_read("neqq;")? { + return Ok(Some(CharRef { name: "neqq;", characters: "\u{2268}", - }); + })); } - if first_char == 'l' && try_read("nsim;") { - return Some(CharRef { + if first_char == 'l' && try_read("nsim;")? { + return Ok(Some(CharRef { name: "nsim;", characters: "\u{22e6}", - }); + })); } - if first_char == 'l' && try_read("oang;") { - return Some(CharRef { + if first_char == 'l' && try_read("oang;")? { + return Ok(Some(CharRef { name: "oang;", characters: "\u{27ec}", - }); + })); } - if first_char == 'l' && try_read("oarr;") { - return Some(CharRef { + if first_char == 'l' && try_read("oarr;")? { + return Ok(Some(CharRef { name: "oarr;", characters: "\u{21fd}", - }); + })); } - if first_char == 'l' && try_read("obrk;") { - return Some(CharRef { + if first_char == 'l' && try_read("obrk;")? { + return Ok(Some(CharRef { name: "obrk;", characters: "\u{27e6}", - }); + })); } - if first_char == 'l' && try_read("opar;") { - return Some(CharRef { + if first_char == 'l' && try_read("opar;")? { + return Ok(Some(CharRef { name: "opar;", characters: "\u{2985}", - }); + })); } - if first_char == 'l' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'l' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{21c6}", - }); + })); } - if first_char == 'l' && try_read("rhar;") { - return Some(CharRef { + if first_char == 'l' && try_read("rhar;")? { + return Ok(Some(CharRef { name: "rhar;", characters: "\u{21cb}", - }); + })); } - if first_char == 'l' && try_read("rtri;") { - return Some(CharRef { + if first_char == 'l' && try_read("rtri;")? { + return Ok(Some(CharRef { name: "rtri;", characters: "\u{22bf}", - }); + })); } - if first_char == 'l' && try_read("sime;") { - return Some(CharRef { + if first_char == 'l' && try_read("sime;")? { + return Ok(Some(CharRef { name: "sime;", characters: "\u{2a8d}", - }); + })); } - if first_char == 'l' && try_read("simg;") { - return Some(CharRef { + if first_char == 'l' && try_read("simg;")? { + return Ok(Some(CharRef { name: "simg;", characters: "\u{2a8f}", - }); + })); } - if first_char == 'l' && try_read("squo;") { - return Some(CharRef { + if first_char == 'l' && try_read("squo;")? { + return Ok(Some(CharRef { name: "squo;", characters: "\u{2018}", - }); + })); } - if first_char == 'l' && try_read("tcir;") { - return Some(CharRef { + if first_char == 'l' && try_read("tcir;")? { + return Ok(Some(CharRef { name: "tcir;", characters: "\u{2a79}", - }); + })); } - if first_char == 'l' && try_read("tdot;") { - return Some(CharRef { + if first_char == 'l' && try_read("tdot;")? { + return Ok(Some(CharRef { name: "tdot;", characters: "\u{22d6}", - }); + })); } - if first_char == 'l' && try_read("trie;") { - return Some(CharRef { + if first_char == 'l' && try_read("trie;")? { + return Ok(Some(CharRef { name: "trie;", characters: "\u{22b4}", - }); + })); } - if first_char == 'l' && try_read("trif;") { - return Some(CharRef { + if first_char == 'l' && try_read("trif;")? { + return Ok(Some(CharRef { name: "trif;", characters: "\u{25c2}", - }); + })); } - if first_char == 'm' && try_read("DDot;") { - return Some(CharRef { + if first_char == 'm' && try_read("DDot;")? { + return Ok(Some(CharRef { name: "DDot;", characters: "\u{223a}", - }); + })); } - if first_char == 'm' && try_read("dash;") { - return Some(CharRef { + if first_char == 'm' && try_read("dash;")? { + return Ok(Some(CharRef { name: "dash;", characters: "\u{2014}", - }); + })); } - if first_char == 'm' && try_read("icro;") { - return Some(CharRef { + if first_char == 'm' && try_read("icro;")? { + return Ok(Some(CharRef { name: "icro;", characters: "\u{b5}", - }); + })); } - if first_char == 'm' && try_read("iddot") { - return Some(CharRef { + if first_char == 'm' && try_read("iddot")? { + return Ok(Some(CharRef { name: "iddot", characters: "\u{b7}", - }); + })); } - if first_char == 'm' && try_read("inus;") { - return Some(CharRef { + if first_char == 'm' && try_read("inus;")? { + return Ok(Some(CharRef { name: "inus;", characters: "\u{2212}", - }); + })); } - if first_char == 'm' && try_read("umap;") { - return Some(CharRef { + if first_char == 'm' && try_read("umap;")? { + return Ok(Some(CharRef { name: "umap;", characters: "\u{22b8}", - }); + })); } - if first_char == 'n' && try_read("abla;") { - return Some(CharRef { + if first_char == 'n' && try_read("abla;")? { + return Ok(Some(CharRef { name: "abla;", characters: "\u{2207}", - }); + })); } - if first_char == 'n' && try_read("apid;") { - return Some(CharRef { + if first_char == 'n' && try_read("apid;")? { + return Ok(Some(CharRef { name: "apid;", characters: "\u{224b}\u{338}", - }); + })); } - if first_char == 'n' && try_read("apos;") { - return Some(CharRef { + if first_char == 'n' && try_read("apos;")? { + return Ok(Some(CharRef { name: "apos;", characters: "\u{149}", - }); + })); } - if first_char == 'n' && try_read("atur;") { - return Some(CharRef { + if first_char == 'n' && try_read("atur;")? { + return Ok(Some(CharRef { name: "atur;", characters: "\u{266e}", - }); + })); } - if first_char == 'n' && try_read("bump;") { - return Some(CharRef { + if first_char == 'n' && try_read("bump;")? { + return Ok(Some(CharRef { name: "bump;", characters: "\u{224e}\u{338}", - }); + })); } - if first_char == 'n' && try_read("cong;") { - return Some(CharRef { + if first_char == 'n' && try_read("cong;")? { + return Ok(Some(CharRef { name: "cong;", characters: "\u{2247}", - }); + })); } - if first_char == 'n' && try_read("dash;") { - return Some(CharRef { + if first_char == 'n' && try_read("dash;")? { + return Ok(Some(CharRef { name: "dash;", characters: "\u{2013}", - }); + })); } - if first_char == 'n' && try_read("eArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("eArr;")? { + return Ok(Some(CharRef { name: "eArr;", characters: "\u{21d7}", - }); + })); } - if first_char == 'n' && try_read("earr;") { - return Some(CharRef { + if first_char == 'n' && try_read("earr;")? { + return Ok(Some(CharRef { name: "earr;", characters: "\u{2197}", - }); + })); } - if first_char == 'n' && try_read("edot;") { - return Some(CharRef { + if first_char == 'n' && try_read("edot;")? { + return Ok(Some(CharRef { name: "edot;", characters: "\u{2250}\u{338}", - }); + })); } - if first_char == 'n' && try_read("esim;") { - return Some(CharRef { + if first_char == 'n' && try_read("esim;")? { + return Ok(Some(CharRef { name: "esim;", characters: "\u{2242}\u{338}", - }); + })); } - if first_char == 'n' && try_read("geqq;") { - return Some(CharRef { + if first_char == 'n' && try_read("geqq;")? { + return Ok(Some(CharRef { name: "geqq;", characters: "\u{2267}\u{338}", - }); + })); } - if first_char == 'n' && try_read("gsim;") { - return Some(CharRef { + if first_char == 'n' && try_read("gsim;")? { + return Ok(Some(CharRef { name: "gsim;", characters: "\u{2275}", - }); + })); } - if first_char == 'n' && try_read("hArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("hArr;")? { + return Ok(Some(CharRef { name: "hArr;", characters: "\u{21ce}", - }); + })); } - if first_char == 'n' && try_read("harr;") { - return Some(CharRef { + if first_char == 'n' && try_read("harr;")? { + return Ok(Some(CharRef { name: "harr;", characters: "\u{21ae}", - }); + })); } - if first_char == 'n' && try_read("hpar;") { - return Some(CharRef { + if first_char == 'n' && try_read("hpar;")? { + return Ok(Some(CharRef { name: "hpar;", characters: "\u{2af2}", - }); + })); } - if first_char == 'n' && try_read("lArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("lArr;")? { + return Ok(Some(CharRef { name: "lArr;", characters: "\u{21cd}", - }); + })); } - if first_char == 'n' && try_read("larr;") { - return Some(CharRef { + if first_char == 'n' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{219a}", - }); + })); } - if first_char == 'n' && try_read("leqq;") { - return Some(CharRef { + if first_char == 'n' && try_read("leqq;")? { + return Ok(Some(CharRef { name: "leqq;", characters: "\u{2266}\u{338}", - }); + })); } - if first_char == 'n' && try_read("less;") { - return Some(CharRef { + if first_char == 'n' && try_read("less;")? { + return Ok(Some(CharRef { name: "less;", characters: "\u{226e}", - }); + })); } - if first_char == 'n' && try_read("lsim;") { - return Some(CharRef { + if first_char == 'n' && try_read("lsim;")? { + return Ok(Some(CharRef { name: "lsim;", characters: "\u{2274}", - }); + })); } - if first_char == 'n' && try_read("ltri;") { - return Some(CharRef { + if first_char == 'n' && try_read("ltri;")? { + return Ok(Some(CharRef { name: "ltri;", characters: "\u{22ea}", - }); + })); } - if first_char == 'n' && try_read("otin;") { - return Some(CharRef { + if first_char == 'n' && try_read("otin;")? { + return Ok(Some(CharRef { name: "otin;", characters: "\u{2209}", - }); + })); } - if first_char == 'n' && try_read("otni;") { - return Some(CharRef { + if first_char == 'n' && try_read("otni;")? { + return Ok(Some(CharRef { name: "otni;", characters: "\u{220c}", - }); + })); } - if first_char == 'n' && try_read("part;") { - return Some(CharRef { + if first_char == 'n' && try_read("part;")? { + return Ok(Some(CharRef { name: "part;", characters: "\u{2202}\u{338}", - }); + })); } - if first_char == 'n' && try_read("prec;") { - return Some(CharRef { + if first_char == 'n' && try_read("prec;")? { + return Ok(Some(CharRef { name: "prec;", characters: "\u{2280}", - }); + })); } - if first_char == 'n' && try_read("rArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("rArr;")? { + return Ok(Some(CharRef { name: "rArr;", characters: "\u{21cf}", - }); + })); } - if first_char == 'n' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'n' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{219b}", - }); + })); } - if first_char == 'n' && try_read("rtri;") { - return Some(CharRef { + if first_char == 'n' && try_read("rtri;")? { + return Ok(Some(CharRef { name: "rtri;", characters: "\u{22eb}", - }); + })); } - if first_char == 'n' && try_read("sime;") { - return Some(CharRef { + if first_char == 'n' && try_read("sime;")? { + return Ok(Some(CharRef { name: "sime;", characters: "\u{2244}", - }); + })); } - if first_char == 'n' && try_read("smid;") { - return Some(CharRef { + if first_char == 'n' && try_read("smid;")? { + return Ok(Some(CharRef { name: "smid;", characters: "\u{2224}", - }); + })); } - if first_char == 'n' && try_read("spar;") { - return Some(CharRef { + if first_char == 'n' && try_read("spar;")? { + return Ok(Some(CharRef { name: "spar;", characters: "\u{2226}", - }); + })); } - if first_char == 'n' && try_read("subE;") { - return Some(CharRef { + if first_char == 'n' && try_read("subE;")? { + return Ok(Some(CharRef { name: "subE;", characters: "\u{2ac5}\u{338}", - }); + })); } - if first_char == 'n' && try_read("sube;") { - return Some(CharRef { + if first_char == 'n' && try_read("sube;")? { + return Ok(Some(CharRef { name: "sube;", characters: "\u{2288}", - }); + })); } - if first_char == 'n' && try_read("succ;") { - return Some(CharRef { + if first_char == 'n' && try_read("succ;")? { + return Ok(Some(CharRef { name: "succ;", characters: "\u{2281}", - }); + })); } - if first_char == 'n' && try_read("supE;") { - return Some(CharRef { + if first_char == 'n' && try_read("supE;")? { + return Ok(Some(CharRef { name: "supE;", characters: "\u{2ac6}\u{338}", - }); + })); } - if first_char == 'n' && try_read("supe;") { - return Some(CharRef { + if first_char == 'n' && try_read("supe;")? { + return Ok(Some(CharRef { name: "supe;", characters: "\u{2289}", - }); + })); } - if first_char == 'n' && try_read("tilde") { - return Some(CharRef { + if first_char == 'n' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{f1}", - }); + })); } - if first_char == 'n' && try_read("umsp;") { - return Some(CharRef { + if first_char == 'n' && try_read("umsp;")? { + return Ok(Some(CharRef { name: "umsp;", characters: "\u{2007}", - }); + })); } - if first_char == 'n' && try_read("vsim;") { - return Some(CharRef { + if first_char == 'n' && try_read("vsim;")? { + return Ok(Some(CharRef { name: "vsim;", characters: "\u{223c}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("wArr;") { - return Some(CharRef { + if first_char == 'n' && try_read("wArr;")? { + return Ok(Some(CharRef { name: "wArr;", characters: "\u{21d6}", - }); + })); } - if first_char == 'n' && try_read("warr;") { - return Some(CharRef { + if first_char == 'n' && try_read("warr;")? { + return Ok(Some(CharRef { name: "warr;", characters: "\u{2196}", - }); + })); } - if first_char == 'o' && try_read("acute") { - return Some(CharRef { + if first_char == 'o' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{f3}", - }); + })); } - if first_char == 'o' && try_read("circ;") { - return Some(CharRef { + if first_char == 'o' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{f4}", - }); + })); } - if first_char == 'o' && try_read("dash;") { - return Some(CharRef { + if first_char == 'o' && try_read("dash;")? { + return Ok(Some(CharRef { name: "dash;", characters: "\u{229d}", - }); + })); } - if first_char == 'o' && try_read("elig;") { - return Some(CharRef { + if first_char == 'o' && try_read("elig;")? { + return Ok(Some(CharRef { name: "elig;", characters: "\u{153}", - }); + })); } - if first_char == 'o' && try_read("fcir;") { - return Some(CharRef { + if first_char == 'o' && try_read("fcir;")? { + return Ok(Some(CharRef { name: "fcir;", characters: "\u{29bf}", - }); + })); } - if first_char == 'o' && try_read("grave") { - return Some(CharRef { + if first_char == 'o' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{f2}", - }); + })); } - if first_char == 'o' && try_read("hbar;") { - return Some(CharRef { + if first_char == 'o' && try_read("hbar;")? { + return Ok(Some(CharRef { name: "hbar;", characters: "\u{29b5}", - }); + })); } - if first_char == 'o' && try_read("larr;") { - return Some(CharRef { + if first_char == 'o' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{21ba}", - }); + })); } - if first_char == 'o' && try_read("lcir;") { - return Some(CharRef { + if first_char == 'o' && try_read("lcir;")? { + return Ok(Some(CharRef { name: "lcir;", characters: "\u{29be}", - }); + })); } - if first_char == 'o' && try_read("line;") { - return Some(CharRef { + if first_char == 'o' && try_read("line;")? { + return Ok(Some(CharRef { name: "line;", characters: "\u{203e}", - }); + })); } - if first_char == 'o' && try_read("macr;") { - return Some(CharRef { + if first_char == 'o' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{14d}", - }); + })); } - if first_char == 'o' && try_read("mega;") { - return Some(CharRef { + if first_char == 'o' && try_read("mega;")? { + return Ok(Some(CharRef { name: "mega;", characters: "\u{3c9}", - }); + })); } - if first_char == 'o' && try_read("perp;") { - return Some(CharRef { + if first_char == 'o' && try_read("perp;")? { + return Ok(Some(CharRef { name: "perp;", characters: "\u{29b9}", - }); + })); } - if first_char == 'o' && try_read("plus;") { - return Some(CharRef { + if first_char == 'o' && try_read("plus;")? { + return Ok(Some(CharRef { name: "plus;", characters: "\u{2295}", - }); + })); } - if first_char == 'o' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'o' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{21bb}", - }); + })); } - if first_char == 'o' && try_read("rder;") { - return Some(CharRef { + if first_char == 'o' && try_read("rder;")? { + return Ok(Some(CharRef { name: "rder;", characters: "\u{2134}", - }); + })); } - if first_char == 'o' && try_read("slash") { - return Some(CharRef { + if first_char == 'o' && try_read("slash")? { + return Ok(Some(CharRef { name: "slash", characters: "\u{f8}", - }); + })); } - if first_char == 'o' && try_read("tilde") { - return Some(CharRef { + if first_char == 'o' && try_read("tilde")? { + return Ok(Some(CharRef { name: "tilde", characters: "\u{f5}", - }); + })); } - if first_char == 'o' && try_read("vbar;") { - return Some(CharRef { + if first_char == 'o' && try_read("vbar;")? { + return Ok(Some(CharRef { name: "vbar;", characters: "\u{233d}", - }); + })); } - if first_char == 'p' && try_read("arsl;") { - return Some(CharRef { + if first_char == 'p' && try_read("arsl;")? { + return Ok(Some(CharRef { name: "arsl;", characters: "\u{2afd}", - }); + })); } - if first_char == 'p' && try_read("hone;") { - return Some(CharRef { + if first_char == 'p' && try_read("hone;")? { + return Ok(Some(CharRef { name: "hone;", characters: "\u{260e}", - }); + })); } - if first_char == 'p' && try_read("lusb;") { - return Some(CharRef { + if first_char == 'p' && try_read("lusb;")? { + return Ok(Some(CharRef { name: "lusb;", characters: "\u{229e}", - }); + })); } - if first_char == 'p' && try_read("luse;") { - return Some(CharRef { + if first_char == 'p' && try_read("luse;")? { + return Ok(Some(CharRef { name: "luse;", characters: "\u{2a72}", - }); + })); } - if first_char == 'p' && try_read("lusmn") { - return Some(CharRef { + if first_char == 'p' && try_read("lusmn")? { + return Ok(Some(CharRef { name: "lusmn", characters: "\u{b1}", - }); + })); } - if first_char == 'p' && try_read("ound;") { - return Some(CharRef { + if first_char == 'p' && try_read("ound;")? { + return Ok(Some(CharRef { name: "ound;", characters: "\u{a3}", - }); + })); } - if first_char == 'p' && try_read("rcue;") { - return Some(CharRef { + if first_char == 'p' && try_read("rcue;")? { + return Ok(Some(CharRef { name: "rcue;", characters: "\u{227c}", - }); + })); } - if first_char == 'p' && try_read("rime;") { - return Some(CharRef { + if first_char == 'p' && try_read("rime;")? { + return Ok(Some(CharRef { name: "rime;", characters: "\u{2032}", - }); + })); } - if first_char == 'p' && try_read("rnap;") { - return Some(CharRef { + if first_char == 'p' && try_read("rnap;")? { + return Ok(Some(CharRef { name: "rnap;", characters: "\u{2ab9}", - }); + })); } - if first_char == 'p' && try_read("rsim;") { - return Some(CharRef { + if first_char == 'p' && try_read("rsim;")? { + return Ok(Some(CharRef { name: "rsim;", characters: "\u{227e}", - }); + })); } - if first_char == 'q' && try_read("uest;") { - return Some(CharRef { + if first_char == 'q' && try_read("uest;")? { + return Ok(Some(CharRef { name: "uest;", characters: "\u{3f}", - }); + })); } - if first_char == 'r' && try_read("Aarr;") { - return Some(CharRef { + if first_char == 'r' && try_read("Aarr;")? { + return Ok(Some(CharRef { name: "Aarr;", characters: "\u{21db}", - }); + })); } - if first_char == 'r' && try_read("Barr;") { - return Some(CharRef { + if first_char == 'r' && try_read("Barr;")? { + return Ok(Some(CharRef { name: "Barr;", characters: "\u{290f}", - }); + })); } - if first_char == 'r' && try_read("adic;") { - return Some(CharRef { + if first_char == 'r' && try_read("adic;")? { + return Ok(Some(CharRef { name: "adic;", characters: "\u{221a}", - }); + })); } - if first_char == 'r' && try_read("angd;") { - return Some(CharRef { + if first_char == 'r' && try_read("angd;")? { + return Ok(Some(CharRef { name: "angd;", characters: "\u{2992}", - }); + })); } - if first_char == 'r' && try_read("ange;") { - return Some(CharRef { + if first_char == 'r' && try_read("ange;")? { + return Ok(Some(CharRef { name: "ange;", characters: "\u{29a5}", - }); + })); } - if first_char == 'r' && try_read("aquo;") { - return Some(CharRef { + if first_char == 'r' && try_read("aquo;")? { + return Ok(Some(CharRef { name: "aquo;", characters: "\u{bb}", - }); + })); } - if first_char == 'r' && try_read("arrb;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrb;")? { + return Ok(Some(CharRef { name: "arrb;", characters: "\u{21e5}", - }); + })); } - if first_char == 'r' && try_read("arrc;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrc;")? { + return Ok(Some(CharRef { name: "arrc;", characters: "\u{2933}", - }); + })); } - if first_char == 'r' && try_read("arrw;") { - return Some(CharRef { + if first_char == 'r' && try_read("arrw;")? { + return Ok(Some(CharRef { name: "arrw;", characters: "\u{219d}", - }); + })); } - if first_char == 'r' && try_read("atio;") { - return Some(CharRef { + if first_char == 'r' && try_read("atio;")? { + return Ok(Some(CharRef { name: "atio;", characters: "\u{2236}", - }); + })); } - if first_char == 'r' && try_read("barr;") { - return Some(CharRef { + if first_char == 'r' && try_read("barr;")? { + return Ok(Some(CharRef { name: "barr;", characters: "\u{290d}", - }); + })); } - if first_char == 'r' && try_read("bbrk;") { - return Some(CharRef { + if first_char == 'r' && try_read("bbrk;")? { + return Ok(Some(CharRef { name: "bbrk;", characters: "\u{2773}", - }); + })); } - if first_char == 'r' && try_read("brke;") { - return Some(CharRef { + if first_char == 'r' && try_read("brke;")? { + return Ok(Some(CharRef { name: "brke;", characters: "\u{298c}", - }); + })); } - if first_char == 'r' && try_read("ceil;") { - return Some(CharRef { + if first_char == 'r' && try_read("ceil;")? { + return Ok(Some(CharRef { name: "ceil;", characters: "\u{2309}", - }); + })); } - if first_char == 'r' && try_read("dquo;") { - return Some(CharRef { + if first_char == 'r' && try_read("dquo;")? { + return Ok(Some(CharRef { name: "dquo;", characters: "\u{201d}", - }); + })); } - if first_char == 'r' && try_read("eals;") { - return Some(CharRef { + if first_char == 'r' && try_read("eals;")? { + return Ok(Some(CharRef { name: "eals;", characters: "\u{211d}", - }); + })); } - if first_char == 'r' && try_read("hard;") { - return Some(CharRef { + if first_char == 'r' && try_read("hard;")? { + return Ok(Some(CharRef { name: "hard;", characters: "\u{21c1}", - }); + })); } - if first_char == 'r' && try_read("haru;") { - return Some(CharRef { + if first_char == 'r' && try_read("haru;")? { + return Ok(Some(CharRef { name: "haru;", characters: "\u{21c0}", - }); + })); } - if first_char == 'r' && try_read("larr;") { - return Some(CharRef { + if first_char == 'r' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{21c4}", - }); + })); } - if first_char == 'r' && try_read("lhar;") { - return Some(CharRef { + if first_char == 'r' && try_read("lhar;")? { + return Ok(Some(CharRef { name: "lhar;", characters: "\u{21cc}", - }); + })); } - if first_char == 'r' && try_read("nmid;") { - return Some(CharRef { + if first_char == 'r' && try_read("nmid;")? { + return Ok(Some(CharRef { name: "nmid;", characters: "\u{2aee}", - }); + })); } - if first_char == 'r' && try_read("oang;") { - return Some(CharRef { + if first_char == 'r' && try_read("oang;")? { + return Ok(Some(CharRef { name: "oang;", characters: "\u{27ed}", - }); + })); } - if first_char == 'r' && try_read("oarr;") { - return Some(CharRef { + if first_char == 'r' && try_read("oarr;")? { + return Ok(Some(CharRef { name: "oarr;", characters: "\u{21fe}", - }); + })); } - if first_char == 'r' && try_read("obrk;") { - return Some(CharRef { + if first_char == 'r' && try_read("obrk;")? { + return Ok(Some(CharRef { name: "obrk;", characters: "\u{27e7}", - }); + })); } - if first_char == 'r' && try_read("opar;") { - return Some(CharRef { + if first_char == 'r' && try_read("opar;")? { + return Ok(Some(CharRef { name: "opar;", characters: "\u{2986}", - }); + })); } - if first_char == 'r' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'r' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{21c9}", - }); + })); } - if first_char == 'r' && try_read("squo;") { - return Some(CharRef { + if first_char == 'r' && try_read("squo;")? { + return Ok(Some(CharRef { name: "squo;", characters: "\u{2019}", - }); + })); } - if first_char == 'r' && try_read("trie;") { - return Some(CharRef { + if first_char == 'r' && try_read("trie;")? { + return Ok(Some(CharRef { name: "trie;", characters: "\u{22b5}", - }); + })); } - if first_char == 'r' && try_read("trif;") { - return Some(CharRef { + if first_char == 'r' && try_read("trif;")? { + return Ok(Some(CharRef { name: "trif;", characters: "\u{25b8}", - }); + })); } - if first_char == 's' && try_read("bquo;") { - return Some(CharRef { + if first_char == 's' && try_read("bquo;")? { + return Ok(Some(CharRef { name: "bquo;", characters: "\u{201a}", - }); + })); } - if first_char == 's' && try_read("ccue;") { - return Some(CharRef { + if first_char == 's' && try_read("ccue;")? { + return Ok(Some(CharRef { name: "ccue;", characters: "\u{227d}", - }); + })); } - if first_char == 's' && try_read("circ;") { - return Some(CharRef { + if first_char == 's' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{15d}", - }); + })); } - if first_char == 's' && try_read("cnap;") { - return Some(CharRef { + if first_char == 's' && try_read("cnap;")? { + return Ok(Some(CharRef { name: "cnap;", characters: "\u{2aba}", - }); + })); } - if first_char == 's' && try_read("csim;") { - return Some(CharRef { + if first_char == 's' && try_read("csim;")? { + return Ok(Some(CharRef { name: "csim;", characters: "\u{227f}", - }); + })); } - if first_char == 's' && try_read("dotb;") { - return Some(CharRef { + if first_char == 's' && try_read("dotb;")? { + return Ok(Some(CharRef { name: "dotb;", characters: "\u{22a1}", - }); + })); } - if first_char == 's' && try_read("dote;") { - return Some(CharRef { + if first_char == 's' && try_read("dote;")? { + return Ok(Some(CharRef { name: "dote;", characters: "\u{2a66}", - }); + })); } - if first_char == 's' && try_read("eArr;") { - return Some(CharRef { + if first_char == 's' && try_read("eArr;")? { + return Ok(Some(CharRef { name: "eArr;", characters: "\u{21d8}", - }); + })); } - if first_char == 's' && try_read("earr;") { - return Some(CharRef { + if first_char == 's' && try_read("earr;")? { + return Ok(Some(CharRef { name: "earr;", characters: "\u{2198}", - }); + })); } - if first_char == 's' && try_read("etmn;") { - return Some(CharRef { + if first_char == 's' && try_read("etmn;")? { + return Ok(Some(CharRef { name: "etmn;", characters: "\u{2216}", - }); + })); } - if first_char == 's' && try_read("harp;") { - return Some(CharRef { + if first_char == 's' && try_read("harp;")? { + return Ok(Some(CharRef { name: "harp;", characters: "\u{266f}", - }); + })); } - if first_char == 's' && try_read("igma;") { - return Some(CharRef { + if first_char == 's' && try_read("igma;")? { + return Ok(Some(CharRef { name: "igma;", characters: "\u{3c3}", - }); + })); } - if first_char == 's' && try_read("imeq;") { - return Some(CharRef { + if first_char == 's' && try_read("imeq;")? { + return Ok(Some(CharRef { name: "imeq;", characters: "\u{2243}", - }); + })); } - if first_char == 's' && try_read("imgE;") { - return Some(CharRef { + if first_char == 's' && try_read("imgE;")? { + return Ok(Some(CharRef { name: "imgE;", characters: "\u{2aa0}", - }); + })); } - if first_char == 's' && try_read("imlE;") { - return Some(CharRef { + if first_char == 's' && try_read("imlE;")? { + return Ok(Some(CharRef { name: "imlE;", characters: "\u{2a9f}", - }); + })); } - if first_char == 's' && try_read("imne;") { - return Some(CharRef { + if first_char == 's' && try_read("imne;")? { + return Ok(Some(CharRef { name: "imne;", characters: "\u{2246}", - }); + })); } - if first_char == 's' && try_read("larr;") { - return Some(CharRef { + if first_char == 's' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{2190}", - }); + })); } - if first_char == 's' && try_read("mile;") { - return Some(CharRef { + if first_char == 's' && try_read("mile;")? { + return Ok(Some(CharRef { name: "mile;", characters: "\u{2323}", - }); + })); } - if first_char == 's' && try_read("mtes;") { - return Some(CharRef { + if first_char == 's' && try_read("mtes;")? { + return Ok(Some(CharRef { name: "mtes;", characters: "\u{2aac}\u{fe00}", - }); + })); } - if first_char == 's' && try_read("qcap;") { - return Some(CharRef { + if first_char == 's' && try_read("qcap;")? { + return Ok(Some(CharRef { name: "qcap;", characters: "\u{2293}", - }); + })); } - if first_char == 's' && try_read("qcup;") { - return Some(CharRef { + if first_char == 's' && try_read("qcup;")? { + return Ok(Some(CharRef { name: "qcup;", characters: "\u{2294}", - }); + })); } - if first_char == 's' && try_read("qsub;") { - return Some(CharRef { + if first_char == 's' && try_read("qsub;")? { + return Ok(Some(CharRef { name: "qsub;", characters: "\u{228f}", - }); + })); } - if first_char == 's' && try_read("qsup;") { - return Some(CharRef { + if first_char == 's' && try_read("qsup;")? { + return Ok(Some(CharRef { name: "qsup;", characters: "\u{2290}", - }); + })); } - if first_char == 's' && try_read("rarr;") { - return Some(CharRef { + if first_char == 's' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{2192}", - }); + })); } - if first_char == 's' && try_read("tarf;") { - return Some(CharRef { + if first_char == 's' && try_read("tarf;")? { + return Ok(Some(CharRef { name: "tarf;", characters: "\u{2605}", - }); + })); } - if first_char == 's' && try_read("trns;") { - return Some(CharRef { + if first_char == 's' && try_read("trns;")? { + return Ok(Some(CharRef { name: "trns;", characters: "\u{af}", - }); + })); } - if first_char == 's' && try_read("ubnE;") { - return Some(CharRef { + if first_char == 's' && try_read("ubnE;")? { + return Ok(Some(CharRef { name: "ubnE;", characters: "\u{2acb}", - }); + })); } - if first_char == 's' && try_read("ubne;") { - return Some(CharRef { + if first_char == 's' && try_read("ubne;")? { + return Ok(Some(CharRef { name: "ubne;", characters: "\u{228a}", - }); + })); } - if first_char == 's' && try_read("upnE;") { - return Some(CharRef { + if first_char == 's' && try_read("upnE;")? { + return Ok(Some(CharRef { name: "upnE;", characters: "\u{2acc}", - }); + })); } - if first_char == 's' && try_read("upne;") { - return Some(CharRef { + if first_char == 's' && try_read("upne;")? { + return Ok(Some(CharRef { name: "upne;", characters: "\u{228b}", - }); + })); } - if first_char == 's' && try_read("wArr;") { - return Some(CharRef { + if first_char == 's' && try_read("wArr;")? { + return Ok(Some(CharRef { name: "wArr;", characters: "\u{21d9}", - }); + })); } - if first_char == 's' && try_read("warr;") { - return Some(CharRef { + if first_char == 's' && try_read("warr;")? { + return Ok(Some(CharRef { name: "warr;", characters: "\u{2199}", - }); + })); } - if first_char == 's' && try_read("zlig;") { - return Some(CharRef { + if first_char == 's' && try_read("zlig;")? { + return Ok(Some(CharRef { name: "zlig;", characters: "\u{df}", - }); + })); } - if first_char == 't' && try_read("heta;") { - return Some(CharRef { + if first_char == 't' && try_read("heta;")? { + return Ok(Some(CharRef { name: "heta;", characters: "\u{3b8}", - }); + })); } - if first_char == 't' && try_read("hkap;") { - return Some(CharRef { + if first_char == 't' && try_read("hkap;")? { + return Ok(Some(CharRef { name: "hkap;", characters: "\u{2248}", - }); + })); } - if first_char == 't' && try_read("horn;") { - return Some(CharRef { + if first_char == 't' && try_read("horn;")? { + return Ok(Some(CharRef { name: "horn;", characters: "\u{fe}", - }); + })); } - if first_char == 't' && try_read("ilde;") { - return Some(CharRef { + if first_char == 't' && try_read("ilde;")? { + return Ok(Some(CharRef { name: "ilde;", characters: "\u{2dc}", - }); + })); } - if first_char == 't' && try_read("imes;") { - return Some(CharRef { + if first_char == 't' && try_read("imes;")? { + return Ok(Some(CharRef { name: "imes;", characters: "\u{d7}", - }); + })); } - if first_char == 't' && try_read("rade;") { - return Some(CharRef { + if first_char == 't' && try_read("rade;")? { + return Ok(Some(CharRef { name: "rade;", characters: "\u{2122}", - }); + })); } - if first_char == 't' && try_read("risb;") { - return Some(CharRef { + if first_char == 't' && try_read("risb;")? { + return Ok(Some(CharRef { name: "risb;", characters: "\u{29cd}", - }); + })); } - if first_char == 't' && try_read("shcy;") { - return Some(CharRef { + if first_char == 't' && try_read("shcy;")? { + return Ok(Some(CharRef { name: "shcy;", characters: "\u{45b}", - }); + })); } - if first_char == 't' && try_read("wixt;") { - return Some(CharRef { + if first_char == 't' && try_read("wixt;")? { + return Ok(Some(CharRef { name: "wixt;", characters: "\u{226c}", - }); + })); } - if first_char == 'u' && try_read("acute") { - return Some(CharRef { + if first_char == 'u' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{fa}", - }); + })); } - if first_char == 'u' && try_read("brcy;") { - return Some(CharRef { + if first_char == 'u' && try_read("brcy;")? { + return Ok(Some(CharRef { name: "brcy;", characters: "\u{45e}", - }); + })); } - if first_char == 'u' && try_read("circ;") { - return Some(CharRef { + if first_char == 'u' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{fb}", - }); + })); } - if first_char == 'u' && try_read("darr;") { - return Some(CharRef { + if first_char == 'u' && try_read("darr;")? { + return Ok(Some(CharRef { name: "darr;", characters: "\u{21c5}", - }); + })); } - if first_char == 'u' && try_read("dhar;") { - return Some(CharRef { + if first_char == 'u' && try_read("dhar;")? { + return Ok(Some(CharRef { name: "dhar;", characters: "\u{296e}", - }); + })); } - if first_char == 'u' && try_read("grave") { - return Some(CharRef { + if first_char == 'u' && try_read("grave")? { + return Ok(Some(CharRef { name: "grave", characters: "\u{f9}", - }); + })); } - if first_char == 'u' && try_read("harl;") { - return Some(CharRef { + if first_char == 'u' && try_read("harl;")? { + return Ok(Some(CharRef { name: "harl;", characters: "\u{21bf}", - }); + })); } - if first_char == 'u' && try_read("harr;") { - return Some(CharRef { + if first_char == 'u' && try_read("harr;")? { + return Ok(Some(CharRef { name: "harr;", characters: "\u{21be}", - }); + })); } - if first_char == 'u' && try_read("hblk;") { - return Some(CharRef { + if first_char == 'u' && try_read("hblk;")? { + return Ok(Some(CharRef { name: "hblk;", characters: "\u{2580}", - }); + })); } - if first_char == 'u' && try_read("ltri;") { - return Some(CharRef { + if first_char == 'u' && try_read("ltri;")? { + return Ok(Some(CharRef { name: "ltri;", characters: "\u{25f8}", - }); + })); } - if first_char == 'u' && try_read("macr;") { - return Some(CharRef { + if first_char == 'u' && try_read("macr;")? { + return Ok(Some(CharRef { name: "macr;", characters: "\u{16b}", - }); + })); } - if first_char == 'u' && try_read("ogon;") { - return Some(CharRef { + if first_char == 'u' && try_read("ogon;")? { + return Ok(Some(CharRef { name: "ogon;", characters: "\u{173}", - }); + })); } - if first_char == 'u' && try_read("plus;") { - return Some(CharRef { + if first_char == 'u' && try_read("plus;")? { + return Ok(Some(CharRef { name: "plus;", characters: "\u{228e}", - }); + })); } - if first_char == 'u' && try_read("psih;") { - return Some(CharRef { + if first_char == 'u' && try_read("psih;")? { + return Ok(Some(CharRef { name: "psih;", characters: "\u{3d2}", - }); + })); } - if first_char == 'u' && try_read("ring;") { - return Some(CharRef { + if first_char == 'u' && try_read("ring;")? { + return Ok(Some(CharRef { name: "ring;", characters: "\u{16f}", - }); + })); } - if first_char == 'u' && try_read("rtri;") { - return Some(CharRef { + if first_char == 'u' && try_read("rtri;")? { + return Ok(Some(CharRef { name: "rtri;", characters: "\u{25f9}", - }); + })); } - if first_char == 'u' && try_read("tdot;") { - return Some(CharRef { + if first_char == 'u' && try_read("tdot;")? { + return Ok(Some(CharRef { name: "tdot;", characters: "\u{22f0}", - }); + })); } - if first_char == 'u' && try_read("trif;") { - return Some(CharRef { + if first_char == 'u' && try_read("trif;")? { + return Ok(Some(CharRef { name: "trif;", characters: "\u{25b4}", - }); + })); } - if first_char == 'u' && try_read("uarr;") { - return Some(CharRef { + if first_char == 'u' && try_read("uarr;")? { + return Ok(Some(CharRef { name: "uarr;", characters: "\u{21c8}", - }); + })); } - if first_char == 'v' && try_read("Barv;") { - return Some(CharRef { + if first_char == 'v' && try_read("Barv;")? { + return Ok(Some(CharRef { name: "Barv;", characters: "\u{2ae9}", - }); + })); } - if first_char == 'v' && try_read("Dash;") { - return Some(CharRef { + if first_char == 'v' && try_read("Dash;")? { + return Ok(Some(CharRef { name: "Dash;", characters: "\u{22a8}", - }); + })); } - if first_char == 'v' && try_read("arpi;") { - return Some(CharRef { + if first_char == 'v' && try_read("arpi;")? { + return Ok(Some(CharRef { name: "arpi;", characters: "\u{3d6}", - }); + })); } - if first_char == 'v' && try_read("dash;") { - return Some(CharRef { + if first_char == 'v' && try_read("dash;")? { + return Ok(Some(CharRef { name: "dash;", characters: "\u{22a2}", - }); + })); } - if first_char == 'v' && try_read("eeeq;") { - return Some(CharRef { + if first_char == 'v' && try_read("eeeq;")? { + return Ok(Some(CharRef { name: "eeeq;", characters: "\u{225a}", - }); + })); } - if first_char == 'v' && try_read("ltri;") { - return Some(CharRef { + if first_char == 'v' && try_read("ltri;")? { + return Ok(Some(CharRef { name: "ltri;", characters: "\u{22b2}", - }); + })); } - if first_char == 'v' && try_read("nsub;") { - return Some(CharRef { + if first_char == 'v' && try_read("nsub;")? { + return Ok(Some(CharRef { name: "nsub;", characters: "\u{2282}\u{20d2}", - }); + })); } - if first_char == 'v' && try_read("nsup;") { - return Some(CharRef { + if first_char == 'v' && try_read("nsup;")? { + return Ok(Some(CharRef { name: "nsup;", characters: "\u{2283}\u{20d2}", - }); + })); } - if first_char == 'v' && try_read("prop;") { - return Some(CharRef { + if first_char == 'v' && try_read("prop;")? { + return Ok(Some(CharRef { name: "prop;", characters: "\u{221d}", - }); + })); } - if first_char == 'v' && try_read("rtri;") { - return Some(CharRef { + if first_char == 'v' && try_read("rtri;")? { + return Ok(Some(CharRef { name: "rtri;", characters: "\u{22b3}", - }); + })); } - if first_char == 'w' && try_read("circ;") { - return Some(CharRef { + if first_char == 'w' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{175}", - }); + })); } - if first_char == 'w' && try_read("edge;") { - return Some(CharRef { + if first_char == 'w' && try_read("edge;")? { + return Ok(Some(CharRef { name: "edge;", characters: "\u{2227}", - }); + })); } - if first_char == 'x' && try_read("circ;") { - return Some(CharRef { + if first_char == 'x' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{25ef}", - }); + })); } - if first_char == 'x' && try_read("dtri;") { - return Some(CharRef { + if first_char == 'x' && try_read("dtri;")? { + return Ok(Some(CharRef { name: "dtri;", characters: "\u{25bd}", - }); + })); } - if first_char == 'x' && try_read("hArr;") { - return Some(CharRef { + if first_char == 'x' && try_read("hArr;")? { + return Ok(Some(CharRef { name: "hArr;", characters: "\u{27fa}", - }); + })); } - if first_char == 'x' && try_read("harr;") { - return Some(CharRef { + if first_char == 'x' && try_read("harr;")? { + return Ok(Some(CharRef { name: "harr;", characters: "\u{27f7}", - }); + })); } - if first_char == 'x' && try_read("lArr;") { - return Some(CharRef { + if first_char == 'x' && try_read("lArr;")? { + return Ok(Some(CharRef { name: "lArr;", characters: "\u{27f8}", - }); + })); } - if first_char == 'x' && try_read("larr;") { - return Some(CharRef { + if first_char == 'x' && try_read("larr;")? { + return Ok(Some(CharRef { name: "larr;", characters: "\u{27f5}", - }); + })); } - if first_char == 'x' && try_read("odot;") { - return Some(CharRef { + if first_char == 'x' && try_read("odot;")? { + return Ok(Some(CharRef { name: "odot;", characters: "\u{2a00}", - }); + })); } - if first_char == 'x' && try_read("rArr;") { - return Some(CharRef { + if first_char == 'x' && try_read("rArr;")? { + return Ok(Some(CharRef { name: "rArr;", characters: "\u{27f9}", - }); + })); } - if first_char == 'x' && try_read("rarr;") { - return Some(CharRef { + if first_char == 'x' && try_read("rarr;")? { + return Ok(Some(CharRef { name: "rarr;", characters: "\u{27f6}", - }); + })); } - if first_char == 'x' && try_read("utri;") { - return Some(CharRef { + if first_char == 'x' && try_read("utri;")? { + return Ok(Some(CharRef { name: "utri;", characters: "\u{25b3}", - }); + })); } - if first_char == 'y' && try_read("acute") { - return Some(CharRef { + if first_char == 'y' && try_read("acute")? { + return Ok(Some(CharRef { name: "acute", characters: "\u{fd}", - }); + })); } - if first_char == 'y' && try_read("circ;") { - return Some(CharRef { + if first_char == 'y' && try_read("circ;")? { + return Ok(Some(CharRef { name: "circ;", characters: "\u{177}", - }); + })); } - if first_char == 'A' && try_read("Elig") { - return Some(CharRef { + if first_char == 'A' && try_read("Elig")? { + return Ok(Some(CharRef { name: "Elig", characters: "\u{c6}", - }); + })); } - if first_char == 'A' && try_read("circ") { - return Some(CharRef { + if first_char == 'A' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{c2}", - }); + })); } - if first_char == 'A' && try_read("opf;") { - return Some(CharRef { + if first_char == 'A' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d538}", - }); + })); } - if first_char == 'A' && try_read("ring") { - return Some(CharRef { + if first_char == 'A' && try_read("ring")? { + return Ok(Some(CharRef { name: "ring", characters: "\u{c5}", - }); + })); } - if first_char == 'A' && try_read("scr;") { - return Some(CharRef { + if first_char == 'A' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d49c}", - }); + })); } - if first_char == 'A' && try_read("uml;") { - return Some(CharRef { + if first_char == 'A' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{c4}", - }); + })); } - if first_char == 'B' && try_read("arv;") { - return Some(CharRef { + if first_char == 'B' && try_read("arv;")? { + return Ok(Some(CharRef { name: "arv;", characters: "\u{2ae7}", - }); + })); } - if first_char == 'B' && try_read("eta;") { - return Some(CharRef { + if first_char == 'B' && try_read("eta;")? { + return Ok(Some(CharRef { name: "eta;", characters: "\u{392}", - }); + })); } - if first_char == 'B' && try_read("opf;") { - return Some(CharRef { + if first_char == 'B' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d539}", - }); + })); } - if first_char == 'B' && try_read("scr;") { - return Some(CharRef { + if first_char == 'B' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{212c}", - }); + })); } - if first_char == 'C' && try_read("Hcy;") { - return Some(CharRef { + if first_char == 'C' && try_read("Hcy;")? { + return Ok(Some(CharRef { name: "Hcy;", characters: "\u{427}", - }); + })); } - if first_char == 'C' && try_read("OPY;") { - return Some(CharRef { + if first_char == 'C' && try_read("OPY;")? { + return Ok(Some(CharRef { name: "OPY;", characters: "\u{a9}", - }); + })); } - if first_char == 'C' && try_read("dot;") { - return Some(CharRef { + if first_char == 'C' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{10a}", - }); + })); } - if first_char == 'C' && try_read("opf;") { - return Some(CharRef { + if first_char == 'C' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{2102}", - }); + })); } - if first_char == 'C' && try_read("scr;") { - return Some(CharRef { + if first_char == 'C' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d49e}", - }); + })); } - if first_char == 'D' && try_read("Jcy;") { - return Some(CharRef { + if first_char == 'D' && try_read("Jcy;")? { + return Ok(Some(CharRef { name: "Jcy;", characters: "\u{402}", - }); + })); } - if first_char == 'D' && try_read("Scy;") { - return Some(CharRef { + if first_char == 'D' && try_read("Scy;")? { + return Ok(Some(CharRef { name: "Scy;", characters: "\u{405}", - }); + })); } - if first_char == 'D' && try_read("Zcy;") { - return Some(CharRef { + if first_char == 'D' && try_read("Zcy;")? { + return Ok(Some(CharRef { name: "Zcy;", characters: "\u{40f}", - }); + })); } - if first_char == 'D' && try_read("arr;") { - return Some(CharRef { + if first_char == 'D' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{21a1}", - }); + })); } - if first_char == 'D' && try_read("opf;") { - return Some(CharRef { + if first_char == 'D' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d53b}", - }); + })); } - if first_char == 'D' && try_read("scr;") { - return Some(CharRef { + if first_char == 'D' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d49f}", - }); + })); } - if first_char == 'E' && try_read("circ") { - return Some(CharRef { + if first_char == 'E' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{ca}", - }); + })); } - if first_char == 'E' && try_read("dot;") { - return Some(CharRef { + if first_char == 'E' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{116}", - }); + })); } - if first_char == 'E' && try_read("opf;") { - return Some(CharRef { + if first_char == 'E' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d53c}", - }); + })); } - if first_char == 'E' && try_read("scr;") { - return Some(CharRef { + if first_char == 'E' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2130}", - }); + })); } - if first_char == 'E' && try_read("sim;") { - return Some(CharRef { + if first_char == 'E' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{2a73}", - }); + })); } - if first_char == 'E' && try_read("uml;") { - return Some(CharRef { + if first_char == 'E' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{cb}", - }); + })); } - if first_char == 'F' && try_read("opf;") { - return Some(CharRef { + if first_char == 'F' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d53d}", - }); + })); } - if first_char == 'F' && try_read("scr;") { - return Some(CharRef { + if first_char == 'F' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2131}", - }); + })); } - if first_char == 'G' && try_read("Jcy;") { - return Some(CharRef { + if first_char == 'G' && try_read("Jcy;")? { + return Ok(Some(CharRef { name: "Jcy;", characters: "\u{403}", - }); + })); } - if first_char == 'G' && try_read("dot;") { - return Some(CharRef { + if first_char == 'G' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{120}", - }); + })); } - if first_char == 'G' && try_read("opf;") { - return Some(CharRef { + if first_char == 'G' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d53e}", - }); + })); } - if first_char == 'G' && try_read("scr;") { - return Some(CharRef { + if first_char == 'G' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4a2}", - }); + })); } - if first_char == 'H' && try_read("opf;") { - return Some(CharRef { + if first_char == 'H' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{210d}", - }); + })); } - if first_char == 'H' && try_read("scr;") { - return Some(CharRef { + if first_char == 'H' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{210b}", - }); + })); } - if first_char == 'I' && try_read("Ecy;") { - return Some(CharRef { + if first_char == 'I' && try_read("Ecy;")? { + return Ok(Some(CharRef { name: "Ecy;", characters: "\u{415}", - }); + })); } - if first_char == 'I' && try_read("Ocy;") { - return Some(CharRef { + if first_char == 'I' && try_read("Ocy;")? { + return Ok(Some(CharRef { name: "Ocy;", characters: "\u{401}", - }); + })); } - if first_char == 'I' && try_read("circ") { - return Some(CharRef { + if first_char == 'I' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{ce}", - }); + })); } - if first_char == 'I' && try_read("dot;") { - return Some(CharRef { + if first_char == 'I' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{130}", - }); + })); } - if first_char == 'I' && try_read("opf;") { - return Some(CharRef { + if first_char == 'I' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d540}", - }); + })); } - if first_char == 'I' && try_read("ota;") { - return Some(CharRef { + if first_char == 'I' && try_read("ota;")? { + return Ok(Some(CharRef { name: "ota;", characters: "\u{399}", - }); + })); } - if first_char == 'I' && try_read("scr;") { - return Some(CharRef { + if first_char == 'I' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2110}", - }); + })); } - if first_char == 'I' && try_read("uml;") { - return Some(CharRef { + if first_char == 'I' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{cf}", - }); + })); } - if first_char == 'J' && try_read("opf;") { - return Some(CharRef { + if first_char == 'J' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d541}", - }); + })); } - if first_char == 'J' && try_read("scr;") { - return Some(CharRef { + if first_char == 'J' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4a5}", - }); + })); } - if first_char == 'K' && try_read("Hcy;") { - return Some(CharRef { + if first_char == 'K' && try_read("Hcy;")? { + return Ok(Some(CharRef { name: "Hcy;", characters: "\u{425}", - }); + })); } - if first_char == 'K' && try_read("Jcy;") { - return Some(CharRef { + if first_char == 'K' && try_read("Jcy;")? { + return Ok(Some(CharRef { name: "Jcy;", characters: "\u{40c}", - }); + })); } - if first_char == 'K' && try_read("opf;") { - return Some(CharRef { + if first_char == 'K' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d542}", - }); + })); } - if first_char == 'K' && try_read("scr;") { - return Some(CharRef { + if first_char == 'K' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4a6}", - }); + })); } - if first_char == 'L' && try_read("Jcy;") { - return Some(CharRef { + if first_char == 'L' && try_read("Jcy;")? { + return Ok(Some(CharRef { name: "Jcy;", characters: "\u{409}", - }); + })); } - if first_char == 'L' && try_read("ang;") { - return Some(CharRef { + if first_char == 'L' && try_read("ang;")? { + return Ok(Some(CharRef { name: "ang;", characters: "\u{27ea}", - }); + })); } - if first_char == 'L' && try_read("arr;") { - return Some(CharRef { + if first_char == 'L' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{219e}", - }); + })); } - if first_char == 'L' && try_read("opf;") { - return Some(CharRef { + if first_char == 'L' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d543}", - }); + })); } - if first_char == 'L' && try_read("scr;") { - return Some(CharRef { + if first_char == 'L' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2112}", - }); + })); } - if first_char == 'M' && try_read("opf;") { - return Some(CharRef { + if first_char == 'M' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d544}", - }); + })); } - if first_char == 'M' && try_read("scr;") { - return Some(CharRef { + if first_char == 'M' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2133}", - }); + })); } - if first_char == 'N' && try_read("Jcy;") { - return Some(CharRef { + if first_char == 'N' && try_read("Jcy;")? { + return Ok(Some(CharRef { name: "Jcy;", characters: "\u{40a}", - }); + })); } - if first_char == 'N' && try_read("opf;") { - return Some(CharRef { + if first_char == 'N' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{2115}", - }); + })); } - if first_char == 'N' && try_read("scr;") { - return Some(CharRef { + if first_char == 'N' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4a9}", - }); + })); } - if first_char == 'O' && try_read("circ") { - return Some(CharRef { + if first_char == 'O' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{d4}", - }); + })); } - if first_char == 'O' && try_read("opf;") { - return Some(CharRef { + if first_char == 'O' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d546}", - }); + })); } - if first_char == 'O' && try_read("scr;") { - return Some(CharRef { + if first_char == 'O' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4aa}", - }); + })); } - if first_char == 'O' && try_read("uml;") { - return Some(CharRef { + if first_char == 'O' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{d6}", - }); + })); } - if first_char == 'P' && try_read("opf;") { - return Some(CharRef { + if first_char == 'P' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{2119}", - }); + })); } - if first_char == 'P' && try_read("scr;") { - return Some(CharRef { + if first_char == 'P' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4ab}", - }); + })); } - if first_char == 'Q' && try_read("UOT;") { - return Some(CharRef { + if first_char == 'Q' && try_read("UOT;")? { + return Ok(Some(CharRef { name: "UOT;", characters: "\u{22}", - }); + })); } - if first_char == 'Q' && try_read("opf;") { - return Some(CharRef { + if first_char == 'Q' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{211a}", - }); + })); } - if first_char == 'Q' && try_read("scr;") { - return Some(CharRef { + if first_char == 'Q' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4ac}", - }); + })); } - if first_char == 'R' && try_read("ang;") { - return Some(CharRef { + if first_char == 'R' && try_read("ang;")? { + return Ok(Some(CharRef { name: "ang;", characters: "\u{27eb}", - }); + })); } - if first_char == 'R' && try_read("arr;") { - return Some(CharRef { + if first_char == 'R' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{21a0}", - }); + })); } - if first_char == 'R' && try_read("opf;") { - return Some(CharRef { + if first_char == 'R' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{211d}", - }); + })); } - if first_char == 'R' && try_read("scr;") { - return Some(CharRef { + if first_char == 'R' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{211b}", - }); + })); } - if first_char == 'S' && try_read("Hcy;") { - return Some(CharRef { + if first_char == 'S' && try_read("Hcy;")? { + return Ok(Some(CharRef { name: "Hcy;", characters: "\u{428}", - }); + })); } - if first_char == 'S' && try_read("opf;") { - return Some(CharRef { + if first_char == 'S' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54a}", - }); + })); } - if first_char == 'S' && try_read("qrt;") { - return Some(CharRef { + if first_char == 'S' && try_read("qrt;")? { + return Ok(Some(CharRef { name: "qrt;", characters: "\u{221a}", - }); + })); } - if first_char == 'S' && try_read("scr;") { - return Some(CharRef { + if first_char == 'S' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4ae}", - }); + })); } - if first_char == 'S' && try_read("tar;") { - return Some(CharRef { + if first_char == 'S' && try_read("tar;")? { + return Ok(Some(CharRef { name: "tar;", characters: "\u{22c6}", - }); + })); } - if first_char == 'T' && try_read("HORN") { - return Some(CharRef { + if first_char == 'T' && try_read("HORN")? { + return Ok(Some(CharRef { name: "HORN", characters: "\u{de}", - }); + })); } - if first_char == 'T' && try_read("Scy;") { - return Some(CharRef { + if first_char == 'T' && try_read("Scy;")? { + return Ok(Some(CharRef { name: "Scy;", characters: "\u{426}", - }); + })); } - if first_char == 'T' && try_read("opf;") { - return Some(CharRef { + if first_char == 'T' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54b}", - }); + })); } - if first_char == 'T' && try_read("scr;") { - return Some(CharRef { + if first_char == 'T' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4af}", - }); + })); } - if first_char == 'U' && try_read("arr;") { - return Some(CharRef { + if first_char == 'U' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{219f}", - }); + })); } - if first_char == 'U' && try_read("circ") { - return Some(CharRef { + if first_char == 'U' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{db}", - }); + })); } - if first_char == 'U' && try_read("opf;") { - return Some(CharRef { + if first_char == 'U' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54c}", - }); + })); } - if first_char == 'U' && try_read("psi;") { - return Some(CharRef { + if first_char == 'U' && try_read("psi;")? { + return Ok(Some(CharRef { name: "psi;", characters: "\u{3d2}", - }); + })); } - if first_char == 'U' && try_read("scr;") { - return Some(CharRef { + if first_char == 'U' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b0}", - }); + })); } - if first_char == 'U' && try_read("uml;") { - return Some(CharRef { + if first_char == 'U' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{dc}", - }); + })); } - if first_char == 'V' && try_read("bar;") { - return Some(CharRef { + if first_char == 'V' && try_read("bar;")? { + return Ok(Some(CharRef { name: "bar;", characters: "\u{2aeb}", - }); + })); } - if first_char == 'V' && try_read("ert;") { - return Some(CharRef { + if first_char == 'V' && try_read("ert;")? { + return Ok(Some(CharRef { name: "ert;", characters: "\u{2016}", - }); + })); } - if first_char == 'V' && try_read("opf;") { - return Some(CharRef { + if first_char == 'V' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54d}", - }); + })); } - if first_char == 'V' && try_read("scr;") { - return Some(CharRef { + if first_char == 'V' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b1}", - }); + })); } - if first_char == 'W' && try_read("opf;") { - return Some(CharRef { + if first_char == 'W' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54e}", - }); + })); } - if first_char == 'W' && try_read("scr;") { - return Some(CharRef { + if first_char == 'W' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b2}", - }); + })); } - if first_char == 'X' && try_read("opf;") { - return Some(CharRef { + if first_char == 'X' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d54f}", - }); + })); } - if first_char == 'X' && try_read("scr;") { - return Some(CharRef { + if first_char == 'X' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b3}", - }); + })); } - if first_char == 'Y' && try_read("Acy;") { - return Some(CharRef { + if first_char == 'Y' && try_read("Acy;")? { + return Ok(Some(CharRef { name: "Acy;", characters: "\u{42f}", - }); + })); } - if first_char == 'Y' && try_read("Icy;") { - return Some(CharRef { + if first_char == 'Y' && try_read("Icy;")? { + return Ok(Some(CharRef { name: "Icy;", characters: "\u{407}", - }); + })); } - if first_char == 'Y' && try_read("Ucy;") { - return Some(CharRef { + if first_char == 'Y' && try_read("Ucy;")? { + return Ok(Some(CharRef { name: "Ucy;", characters: "\u{42e}", - }); + })); } - if first_char == 'Y' && try_read("opf;") { - return Some(CharRef { + if first_char == 'Y' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d550}", - }); + })); } - if first_char == 'Y' && try_read("scr;") { - return Some(CharRef { + if first_char == 'Y' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b4}", - }); + })); } - if first_char == 'Y' && try_read("uml;") { - return Some(CharRef { + if first_char == 'Y' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{178}", - }); + })); } - if first_char == 'Z' && try_read("Hcy;") { - return Some(CharRef { + if first_char == 'Z' && try_read("Hcy;")? { + return Ok(Some(CharRef { name: "Hcy;", characters: "\u{416}", - }); + })); } - if first_char == 'Z' && try_read("dot;") { - return Some(CharRef { + if first_char == 'Z' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{17b}", - }); + })); } - if first_char == 'Z' && try_read("eta;") { - return Some(CharRef { + if first_char == 'Z' && try_read("eta;")? { + return Ok(Some(CharRef { name: "eta;", characters: "\u{396}", - }); + })); } - if first_char == 'Z' && try_read("opf;") { - return Some(CharRef { + if first_char == 'Z' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{2124}", - }); + })); } - if first_char == 'Z' && try_read("scr;") { - return Some(CharRef { + if first_char == 'Z' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b5}", - }); + })); } - if first_char == 'a' && try_read("circ") { - return Some(CharRef { + if first_char == 'a' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{e2}", - }); + })); } - if first_char == 'a' && try_read("cute") { - return Some(CharRef { + if first_char == 'a' && try_read("cute")? { + return Ok(Some(CharRef { name: "cute", characters: "\u{b4}", - }); + })); } - if first_char == 'a' && try_read("elig") { - return Some(CharRef { + if first_char == 'a' && try_read("elig")? { + return Ok(Some(CharRef { name: "elig", characters: "\u{e6}", - }); + })); } - if first_char == 'a' && try_read("ndd;") { - return Some(CharRef { + if first_char == 'a' && try_read("ndd;")? { + return Ok(Some(CharRef { name: "ndd;", characters: "\u{2a5c}", - }); + })); } - if first_char == 'a' && try_read("ndv;") { - return Some(CharRef { + if first_char == 'a' && try_read("ndv;")? { + return Ok(Some(CharRef { name: "ndv;", characters: "\u{2a5a}", - }); + })); } - if first_char == 'a' && try_read("nge;") { - return Some(CharRef { + if first_char == 'a' && try_read("nge;")? { + return Ok(Some(CharRef { name: "nge;", characters: "\u{29a4}", - }); + })); } - if first_char == 'a' && try_read("opf;") { - return Some(CharRef { + if first_char == 'a' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d552}", - }); + })); } - if first_char == 'a' && try_read("pid;") { - return Some(CharRef { + if first_char == 'a' && try_read("pid;")? { + return Ok(Some(CharRef { name: "pid;", characters: "\u{224b}", - }); + })); } - if first_char == 'a' && try_read("pos;") { - return Some(CharRef { + if first_char == 'a' && try_read("pos;")? { + return Ok(Some(CharRef { name: "pos;", characters: "\u{27}", - }); + })); } - if first_char == 'a' && try_read("ring") { - return Some(CharRef { + if first_char == 'a' && try_read("ring")? { + return Ok(Some(CharRef { name: "ring", characters: "\u{e5}", - }); + })); } - if first_char == 'a' && try_read("scr;") { - return Some(CharRef { + if first_char == 'a' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b6}", - }); + })); } - if first_char == 'a' && try_read("uml;") { - return Some(CharRef { + if first_char == 'a' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{e4}", - }); + })); } - if first_char == 'b' && try_read("Not;") { - return Some(CharRef { + if first_char == 'b' && try_read("Not;")? { + return Ok(Some(CharRef { name: "Not;", characters: "\u{2aed}", - }); + })); } - if first_char == 'b' && try_read("brk;") { - return Some(CharRef { + if first_char == 'b' && try_read("brk;")? { + return Ok(Some(CharRef { name: "brk;", characters: "\u{23b5}", - }); + })); } - if first_char == 'b' && try_read("eta;") { - return Some(CharRef { + if first_char == 'b' && try_read("eta;")? { + return Ok(Some(CharRef { name: "eta;", characters: "\u{3b2}", - }); + })); } - if first_char == 'b' && try_read("eth;") { - return Some(CharRef { + if first_char == 'b' && try_read("eth;")? { + return Ok(Some(CharRef { name: "eth;", characters: "\u{2136}", - }); + })); } - if first_char == 'b' && try_read("not;") { - return Some(CharRef { + if first_char == 'b' && try_read("not;")? { + return Ok(Some(CharRef { name: "not;", characters: "\u{2310}", - }); + })); } - if first_char == 'b' && try_read("opf;") { - return Some(CharRef { + if first_char == 'b' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d553}", - }); + })); } - if first_char == 'b' && try_read("oxH;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxH;")? { + return Ok(Some(CharRef { name: "oxH;", characters: "\u{2550}", - }); + })); } - if first_char == 'b' && try_read("oxV;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxV;")? { + return Ok(Some(CharRef { name: "oxV;", characters: "\u{2551}", - }); + })); } - if first_char == 'b' && try_read("oxh;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxh;")? { + return Ok(Some(CharRef { name: "oxh;", characters: "\u{2500}", - }); + })); } - if first_char == 'b' && try_read("oxv;") { - return Some(CharRef { + if first_char == 'b' && try_read("oxv;")? { + return Ok(Some(CharRef { name: "oxv;", characters: "\u{2502}", - }); + })); } - if first_char == 'b' && try_read("scr;") { - return Some(CharRef { + if first_char == 'b' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b7}", - }); + })); } - if first_char == 'b' && try_read("sim;") { - return Some(CharRef { + if first_char == 'b' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{223d}", - }); + })); } - if first_char == 'b' && try_read("sol;") { - return Some(CharRef { + if first_char == 'b' && try_read("sol;")? { + return Ok(Some(CharRef { name: "sol;", characters: "\u{5c}", - }); + })); } - if first_char == 'b' && try_read("ull;") { - return Some(CharRef { + if first_char == 'b' && try_read("ull;")? { + return Ok(Some(CharRef { name: "ull;", characters: "\u{2022}", - }); + })); } - if first_char == 'b' && try_read("ump;") { - return Some(CharRef { + if first_char == 'b' && try_read("ump;")? { + return Ok(Some(CharRef { name: "ump;", characters: "\u{224e}", - }); + })); } - if first_char == 'c' && try_read("aps;") { - return Some(CharRef { + if first_char == 'c' && try_read("aps;")? { + return Ok(Some(CharRef { name: "aps;", characters: "\u{2229}\u{fe00}", - }); + })); } - if first_char == 'c' && try_read("dot;") { - return Some(CharRef { + if first_char == 'c' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{10b}", - }); + })); } - if first_char == 'c' && try_read("edil") { - return Some(CharRef { + if first_char == 'c' && try_read("edil")? { + return Ok(Some(CharRef { name: "edil", characters: "\u{b8}", - }); + })); } - if first_char == 'c' && try_read("ent;") { - return Some(CharRef { + if first_char == 'c' && try_read("ent;")? { + return Ok(Some(CharRef { name: "ent;", characters: "\u{a2}", - }); + })); } - if first_char == 'c' && try_read("hcy;") { - return Some(CharRef { + if first_char == 'c' && try_read("hcy;")? { + return Ok(Some(CharRef { name: "hcy;", characters: "\u{447}", - }); + })); } - if first_char == 'c' && try_read("irE;") { - return Some(CharRef { + if first_char == 'c' && try_read("irE;")? { + return Ok(Some(CharRef { name: "irE;", characters: "\u{29c3}", - }); + })); } - if first_char == 'c' && try_read("irc;") { - return Some(CharRef { + if first_char == 'c' && try_read("irc;")? { + return Ok(Some(CharRef { name: "irc;", characters: "\u{2c6}", - }); + })); } - if first_char == 'c' && try_read("ire;") { - return Some(CharRef { + if first_char == 'c' && try_read("ire;")? { + return Ok(Some(CharRef { name: "ire;", characters: "\u{2257}", - }); + })); } - if first_char == 'c' && try_read("omp;") { - return Some(CharRef { + if first_char == 'c' && try_read("omp;")? { + return Ok(Some(CharRef { name: "omp;", characters: "\u{2201}", - }); + })); } - if first_char == 'c' && try_read("ong;") { - return Some(CharRef { + if first_char == 'c' && try_read("ong;")? { + return Ok(Some(CharRef { name: "ong;", characters: "\u{2245}", - }); + })); } - if first_char == 'c' && try_read("opf;") { - return Some(CharRef { + if first_char == 'c' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d554}", - }); + })); } - if first_char == 'c' && try_read("opy;") { - return Some(CharRef { + if first_char == 'c' && try_read("opy;")? { + return Ok(Some(CharRef { name: "opy;", characters: "\u{a9}", - }); + })); } - if first_char == 'c' && try_read("scr;") { - return Some(CharRef { + if first_char == 'c' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b8}", - }); + })); } - if first_char == 'c' && try_read("sub;") { - return Some(CharRef { + if first_char == 'c' && try_read("sub;")? { + return Ok(Some(CharRef { name: "sub;", characters: "\u{2acf}", - }); + })); } - if first_char == 'c' && try_read("sup;") { - return Some(CharRef { + if first_char == 'c' && try_read("sup;")? { + return Ok(Some(CharRef { name: "sup;", characters: "\u{2ad0}", - }); + })); } - if first_char == 'c' && try_read("ups;") { - return Some(CharRef { + if first_char == 'c' && try_read("ups;")? { + return Ok(Some(CharRef { name: "ups;", characters: "\u{222a}\u{fe00}", - }); + })); } - if first_char == 'd' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'd' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d3}", - }); + })); } - if first_char == 'd' && try_read("Har;") { - return Some(CharRef { + if first_char == 'd' && try_read("Har;")? { + return Ok(Some(CharRef { name: "Har;", characters: "\u{2965}", - }); + })); } - if first_char == 'd' && try_read("arr;") { - return Some(CharRef { + if first_char == 'd' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2193}", - }); + })); } - if first_char == 'd' && try_read("ash;") { - return Some(CharRef { + if first_char == 'd' && try_read("ash;")? { + return Ok(Some(CharRef { name: "ash;", characters: "\u{2010}", - }); + })); } - if first_char == 'd' && try_read("iam;") { - return Some(CharRef { + if first_char == 'd' && try_read("iam;")? { + return Ok(Some(CharRef { name: "iam;", characters: "\u{22c4}", - }); + })); } - if first_char == 'd' && try_read("jcy;") { - return Some(CharRef { + if first_char == 'd' && try_read("jcy;")? { + return Ok(Some(CharRef { name: "jcy;", characters: "\u{452}", - }); + })); } - if first_char == 'd' && try_read("opf;") { - return Some(CharRef { + if first_char == 'd' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d555}", - }); + })); } - if first_char == 'd' && try_read("scr;") { - return Some(CharRef { + if first_char == 'd' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4b9}", - }); + })); } - if first_char == 'd' && try_read("scy;") { - return Some(CharRef { + if first_char == 'd' && try_read("scy;")? { + return Ok(Some(CharRef { name: "scy;", characters: "\u{455}", - }); + })); } - if first_char == 'd' && try_read("sol;") { - return Some(CharRef { + if first_char == 'd' && try_read("sol;")? { + return Ok(Some(CharRef { name: "sol;", characters: "\u{29f6}", - }); + })); } - if first_char == 'd' && try_read("tri;") { - return Some(CharRef { + if first_char == 'd' && try_read("tri;")? { + return Ok(Some(CharRef { name: "tri;", characters: "\u{25bf}", - }); + })); } - if first_char == 'd' && try_read("zcy;") { - return Some(CharRef { + if first_char == 'd' && try_read("zcy;")? { + return Ok(Some(CharRef { name: "zcy;", characters: "\u{45f}", - }); + })); } - if first_char == 'e' && try_read("Dot;") { - return Some(CharRef { + if first_char == 'e' && try_read("Dot;")? { + return Ok(Some(CharRef { name: "Dot;", characters: "\u{2251}", - }); + })); } - if first_char == 'e' && try_read("cir;") { - return Some(CharRef { + if first_char == 'e' && try_read("cir;")? { + return Ok(Some(CharRef { name: "cir;", characters: "\u{2256}", - }); + })); } - if first_char == 'e' && try_read("circ") { - return Some(CharRef { + if first_char == 'e' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{ea}", - }); + })); } - if first_char == 'e' && try_read("dot;") { - return Some(CharRef { + if first_char == 'e' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{117}", - }); + })); } - if first_char == 'e' && try_read("msp;") { - return Some(CharRef { + if first_char == 'e' && try_read("msp;")? { + return Ok(Some(CharRef { name: "msp;", characters: "\u{2003}", - }); + })); } - if first_char == 'e' && try_read("nsp;") { - return Some(CharRef { + if first_char == 'e' && try_read("nsp;")? { + return Ok(Some(CharRef { name: "nsp;", characters: "\u{2002}", - }); + })); } - if first_char == 'e' && try_read("opf;") { - return Some(CharRef { + if first_char == 'e' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d556}", - }); + })); } - if first_char == 'e' && try_read("par;") { - return Some(CharRef { + if first_char == 'e' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{22d5}", - }); + })); } - if first_char == 'e' && try_read("psi;") { - return Some(CharRef { + if first_char == 'e' && try_read("psi;")? { + return Ok(Some(CharRef { name: "psi;", characters: "\u{3b5}", - }); + })); } - if first_char == 'e' && try_read("scr;") { - return Some(CharRef { + if first_char == 'e' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{212f}", - }); + })); } - if first_char == 'e' && try_read("sim;") { - return Some(CharRef { + if first_char == 'e' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{2242}", - }); + })); } - if first_char == 'e' && try_read("uml;") { - return Some(CharRef { + if first_char == 'e' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{eb}", - }); + })); } - if first_char == 'e' && try_read("uro;") { - return Some(CharRef { + if first_char == 'e' && try_read("uro;")? { + return Ok(Some(CharRef { name: "uro;", characters: "\u{20ac}", - }); + })); } - if first_char == 'e' && try_read("xcl;") { - return Some(CharRef { + if first_char == 'e' && try_read("xcl;")? { + return Ok(Some(CharRef { name: "xcl;", characters: "\u{21}", - }); + })); } - if first_char == 'f' && try_read("lat;") { - return Some(CharRef { + if first_char == 'f' && try_read("lat;")? { + return Ok(Some(CharRef { name: "lat;", characters: "\u{266d}", - }); + })); } - if first_char == 'f' && try_read("nof;") { - return Some(CharRef { + if first_char == 'f' && try_read("nof;")? { + return Ok(Some(CharRef { name: "nof;", characters: "\u{192}", - }); + })); } - if first_char == 'f' && try_read("opf;") { - return Some(CharRef { + if first_char == 'f' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d557}", - }); + })); } - if first_char == 'f' && try_read("ork;") { - return Some(CharRef { + if first_char == 'f' && try_read("ork;")? { + return Ok(Some(CharRef { name: "ork;", characters: "\u{22d4}", - }); + })); } - if first_char == 'f' && try_read("scr;") { - return Some(CharRef { + if first_char == 'f' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4bb}", - }); + })); } - if first_char == 'g' && try_read("dot;") { - return Some(CharRef { + if first_char == 'g' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{121}", - }); + })); } - if first_char == 'g' && try_read("eqq;") { - return Some(CharRef { + if first_char == 'g' && try_read("eqq;")? { + return Ok(Some(CharRef { name: "eqq;", characters: "\u{2267}", - }); + })); } - if first_char == 'g' && try_read("esl;") { - return Some(CharRef { + if first_char == 'g' && try_read("esl;")? { + return Ok(Some(CharRef { name: "esl;", characters: "\u{22db}\u{fe00}", - }); + })); } - if first_char == 'g' && try_read("jcy;") { - return Some(CharRef { + if first_char == 'g' && try_read("jcy;")? { + return Ok(Some(CharRef { name: "jcy;", characters: "\u{453}", - }); + })); } - if first_char == 'g' && try_read("nap;") { - return Some(CharRef { + if first_char == 'g' && try_read("nap;")? { + return Ok(Some(CharRef { name: "nap;", characters: "\u{2a8a}", - }); + })); } - if first_char == 'g' && try_read("neq;") { - return Some(CharRef { + if first_char == 'g' && try_read("neq;")? { + return Ok(Some(CharRef { name: "neq;", characters: "\u{2a88}", - }); + })); } - if first_char == 'g' && try_read("opf;") { - return Some(CharRef { + if first_char == 'g' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d558}", - }); + })); } - if first_char == 'g' && try_read("scr;") { - return Some(CharRef { + if first_char == 'g' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{210a}", - }); + })); } - if first_char == 'g' && try_read("sim;") { - return Some(CharRef { + if first_char == 'g' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{2273}", - }); + })); } - if first_char == 'g' && try_read("tcc;") { - return Some(CharRef { + if first_char == 'g' && try_read("tcc;")? { + return Ok(Some(CharRef { name: "tcc;", characters: "\u{2aa7}", - }); + })); } - if first_char == 'g' && try_read("vnE;") { - return Some(CharRef { + if first_char == 'g' && try_read("vnE;")? { + return Ok(Some(CharRef { name: "vnE;", characters: "\u{2269}\u{fe00}", - }); + })); } - if first_char == 'h' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'h' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d4}", - }); + })); } - if first_char == 'h' && try_read("alf;") { - return Some(CharRef { + if first_char == 'h' && try_read("alf;")? { + return Ok(Some(CharRef { name: "alf;", characters: "\u{bd}", - }); + })); } - if first_char == 'h' && try_read("arr;") { - return Some(CharRef { + if first_char == 'h' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2194}", - }); + })); } - if first_char == 'h' && try_read("bar;") { - return Some(CharRef { + if first_char == 'h' && try_read("bar;")? { + return Ok(Some(CharRef { name: "bar;", characters: "\u{210f}", - }); + })); } - if first_char == 'h' && try_read("opf;") { - return Some(CharRef { + if first_char == 'h' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d559}", - }); + })); } - if first_char == 'h' && try_read("scr;") { - return Some(CharRef { + if first_char == 'h' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4bd}", - }); + })); } - if first_char == 'i' && try_read("circ") { - return Some(CharRef { + if first_char == 'i' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{ee}", - }); + })); } - if first_char == 'i' && try_read("ecy;") { - return Some(CharRef { + if first_char == 'i' && try_read("ecy;")? { + return Ok(Some(CharRef { name: "ecy;", characters: "\u{435}", - }); + })); } - if first_char == 'i' && try_read("excl") { - return Some(CharRef { + if first_char == 'i' && try_read("excl")? { + return Ok(Some(CharRef { name: "excl", characters: "\u{a1}", - }); + })); } - if first_char == 'i' && try_read("mof;") { - return Some(CharRef { + if first_char == 'i' && try_read("mof;")? { + return Ok(Some(CharRef { name: "mof;", characters: "\u{22b7}", - }); + })); } - if first_char == 'i' && try_read("ocy;") { - return Some(CharRef { + if first_char == 'i' && try_read("ocy;")? { + return Ok(Some(CharRef { name: "ocy;", characters: "\u{451}", - }); + })); } - if first_char == 'i' && try_read("opf;") { - return Some(CharRef { + if first_char == 'i' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55a}", - }); + })); } - if first_char == 'i' && try_read("ota;") { - return Some(CharRef { + if first_char == 'i' && try_read("ota;")? { + return Ok(Some(CharRef { name: "ota;", characters: "\u{3b9}", - }); + })); } - if first_char == 'i' && try_read("scr;") { - return Some(CharRef { + if first_char == 'i' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4be}", - }); + })); } - if first_char == 'i' && try_read("sin;") { - return Some(CharRef { + if first_char == 'i' && try_read("sin;")? { + return Ok(Some(CharRef { name: "sin;", characters: "\u{2208}", - }); + })); } - if first_char == 'i' && try_read("uml;") { - return Some(CharRef { + if first_char == 'i' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{ef}", - }); + })); } - if first_char == 'j' && try_read("opf;") { - return Some(CharRef { + if first_char == 'j' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55b}", - }); + })); } - if first_char == 'j' && try_read("scr;") { - return Some(CharRef { + if first_char == 'j' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4bf}", - }); + })); } - if first_char == 'k' && try_read("hcy;") { - return Some(CharRef { + if first_char == 'k' && try_read("hcy;")? { + return Ok(Some(CharRef { name: "hcy;", characters: "\u{445}", - }); + })); } - if first_char == 'k' && try_read("jcy;") { - return Some(CharRef { + if first_char == 'k' && try_read("jcy;")? { + return Ok(Some(CharRef { name: "jcy;", characters: "\u{45c}", - }); + })); } - if first_char == 'k' && try_read("opf;") { - return Some(CharRef { + if first_char == 'k' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55c}", - }); + })); } - if first_char == 'k' && try_read("scr;") { - return Some(CharRef { + if first_char == 'k' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c0}", - }); + })); } - if first_char == 'l' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'l' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d0}", - }); + })); } - if first_char == 'l' && try_read("Har;") { - return Some(CharRef { + if first_char == 'l' && try_read("Har;")? { + return Ok(Some(CharRef { name: "Har;", characters: "\u{2962}", - }); + })); } - if first_char == 'l' && try_read("ang;") { - return Some(CharRef { + if first_char == 'l' && try_read("ang;")? { + return Ok(Some(CharRef { name: "ang;", characters: "\u{27e8}", - }); + })); } - if first_char == 'l' && try_read("aquo") { - return Some(CharRef { + if first_char == 'l' && try_read("aquo")? { + return Ok(Some(CharRef { name: "aquo", characters: "\u{ab}", - }); + })); } - if first_char == 'l' && try_read("arr;") { - return Some(CharRef { + if first_char == 'l' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2190}", - }); + })); } - if first_char == 'l' && try_read("ate;") { - return Some(CharRef { + if first_char == 'l' && try_read("ate;")? { + return Ok(Some(CharRef { name: "ate;", characters: "\u{2aad}", - }); + })); } - if first_char == 'l' && try_read("cub;") { - return Some(CharRef { + if first_char == 'l' && try_read("cub;")? { + return Ok(Some(CharRef { name: "cub;", characters: "\u{7b}", - }); + })); } - if first_char == 'l' && try_read("dca;") { - return Some(CharRef { + if first_char == 'l' && try_read("dca;")? { + return Ok(Some(CharRef { name: "dca;", characters: "\u{2936}", - }); + })); } - if first_char == 'l' && try_read("dsh;") { - return Some(CharRef { + if first_char == 'l' && try_read("dsh;")? { + return Ok(Some(CharRef { name: "dsh;", characters: "\u{21b2}", - }); + })); } - if first_char == 'l' && try_read("eqq;") { - return Some(CharRef { + if first_char == 'l' && try_read("eqq;")? { + return Ok(Some(CharRef { name: "eqq;", characters: "\u{2266}", - }); + })); } - if first_char == 'l' && try_read("esg;") { - return Some(CharRef { + if first_char == 'l' && try_read("esg;")? { + return Ok(Some(CharRef { name: "esg;", characters: "\u{22da}\u{fe00}", - }); + })); } - if first_char == 'l' && try_read("jcy;") { - return Some(CharRef { + if first_char == 'l' && try_read("jcy;")? { + return Ok(Some(CharRef { name: "jcy;", characters: "\u{459}", - }); + })); } - if first_char == 'l' && try_read("nap;") { - return Some(CharRef { + if first_char == 'l' && try_read("nap;")? { + return Ok(Some(CharRef { name: "nap;", characters: "\u{2a89}", - }); + })); } - if first_char == 'l' && try_read("neq;") { - return Some(CharRef { + if first_char == 'l' && try_read("neq;")? { + return Ok(Some(CharRef { name: "neq;", characters: "\u{2a87}", - }); + })); } - if first_char == 'l' && try_read("opf;") { - return Some(CharRef { + if first_char == 'l' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55d}", - }); + })); } - if first_char == 'l' && try_read("ozf;") { - return Some(CharRef { + if first_char == 'l' && try_read("ozf;")? { + return Ok(Some(CharRef { name: "ozf;", characters: "\u{29eb}", - }); + })); } - if first_char == 'l' && try_read("par;") { - return Some(CharRef { + if first_char == 'l' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{28}", - }); + })); } - if first_char == 'l' && try_read("scr;") { - return Some(CharRef { + if first_char == 'l' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c1}", - }); + })); } - if first_char == 'l' && try_read("sim;") { - return Some(CharRef { + if first_char == 'l' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{2272}", - }); + })); } - if first_char == 'l' && try_read("sqb;") { - return Some(CharRef { + if first_char == 'l' && try_read("sqb;")? { + return Ok(Some(CharRef { name: "sqb;", characters: "\u{5b}", - }); + })); } - if first_char == 'l' && try_read("tcc;") { - return Some(CharRef { + if first_char == 'l' && try_read("tcc;")? { + return Ok(Some(CharRef { name: "tcc;", characters: "\u{2aa6}", - }); + })); } - if first_char == 'l' && try_read("tri;") { - return Some(CharRef { + if first_char == 'l' && try_read("tri;")? { + return Ok(Some(CharRef { name: "tri;", characters: "\u{25c3}", - }); + })); } - if first_char == 'l' && try_read("vnE;") { - return Some(CharRef { + if first_char == 'l' && try_read("vnE;")? { + return Ok(Some(CharRef { name: "vnE;", characters: "\u{2268}\u{fe00}", - }); + })); } - if first_char == 'm' && try_read("acr;") { - return Some(CharRef { + if first_char == 'm' && try_read("acr;")? { + return Ok(Some(CharRef { name: "acr;", characters: "\u{af}", - }); + })); } - if first_char == 'm' && try_read("ale;") { - return Some(CharRef { + if first_char == 'm' && try_read("ale;")? { + return Ok(Some(CharRef { name: "ale;", characters: "\u{2642}", - }); + })); } - if first_char == 'm' && try_read("alt;") { - return Some(CharRef { + if first_char == 'm' && try_read("alt;")? { + return Ok(Some(CharRef { name: "alt;", characters: "\u{2720}", - }); + })); } - if first_char == 'm' && try_read("icro") { - return Some(CharRef { + if first_char == 'm' && try_read("icro")? { + return Ok(Some(CharRef { name: "icro", characters: "\u{b5}", - }); + })); } - if first_char == 'm' && try_read("lcp;") { - return Some(CharRef { + if first_char == 'm' && try_read("lcp;")? { + return Ok(Some(CharRef { name: "lcp;", characters: "\u{2adb}", - }); + })); } - if first_char == 'm' && try_read("ldr;") { - return Some(CharRef { + if first_char == 'm' && try_read("ldr;")? { + return Ok(Some(CharRef { name: "ldr;", characters: "\u{2026}", - }); + })); } - if first_char == 'm' && try_read("opf;") { - return Some(CharRef { + if first_char == 'm' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55e}", - }); + })); } - if first_char == 'm' && try_read("scr;") { - return Some(CharRef { + if first_char == 'm' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c2}", - }); + })); } - if first_char == 'n' && try_read("Gtv;") { - return Some(CharRef { + if first_char == 'n' && try_read("Gtv;")? { + return Ok(Some(CharRef { name: "Gtv;", characters: "\u{226b}\u{338}", - }); + })); } - if first_char == 'n' && try_read("Ltv;") { - return Some(CharRef { + if first_char == 'n' && try_read("Ltv;")? { + return Ok(Some(CharRef { name: "Ltv;", characters: "\u{226a}\u{338}", - }); + })); } - if first_char == 'n' && try_read("ang;") { - return Some(CharRef { + if first_char == 'n' && try_read("ang;")? { + return Ok(Some(CharRef { name: "ang;", characters: "\u{2220}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("apE;") { - return Some(CharRef { + if first_char == 'n' && try_read("apE;")? { + return Ok(Some(CharRef { name: "apE;", characters: "\u{2a70}\u{338}", - }); + })); } - if first_char == 'n' && try_read("bsp;") { - return Some(CharRef { + if first_char == 'n' && try_read("bsp;")? { + return Ok(Some(CharRef { name: "bsp;", characters: "\u{a0}", - }); + })); } - if first_char == 'n' && try_read("cap;") { - return Some(CharRef { + if first_char == 'n' && try_read("cap;")? { + return Ok(Some(CharRef { name: "cap;", characters: "\u{2a43}", - }); + })); } - if first_char == 'n' && try_read("cup;") { - return Some(CharRef { + if first_char == 'n' && try_read("cup;")? { + return Ok(Some(CharRef { name: "cup;", characters: "\u{2a42}", - }); + })); } - if first_char == 'n' && try_read("geq;") { - return Some(CharRef { + if first_char == 'n' && try_read("geq;")? { + return Ok(Some(CharRef { name: "geq;", characters: "\u{2271}", - }); + })); } - if first_char == 'n' && try_read("ges;") { - return Some(CharRef { + if first_char == 'n' && try_read("ges;")? { + return Ok(Some(CharRef { name: "ges;", characters: "\u{2a7e}\u{338}", - }); + })); } - if first_char == 'n' && try_read("gtr;") { - return Some(CharRef { + if first_char == 'n' && try_read("gtr;")? { + return Ok(Some(CharRef { name: "gtr;", characters: "\u{226f}", - }); + })); } - if first_char == 'n' && try_read("isd;") { - return Some(CharRef { + if first_char == 'n' && try_read("isd;")? { + return Ok(Some(CharRef { name: "isd;", characters: "\u{22fa}", - }); + })); } - if first_char == 'n' && try_read("jcy;") { - return Some(CharRef { + if first_char == 'n' && try_read("jcy;")? { + return Ok(Some(CharRef { name: "jcy;", characters: "\u{45a}", - }); + })); } - if first_char == 'n' && try_read("ldr;") { - return Some(CharRef { + if first_char == 'n' && try_read("ldr;")? { + return Ok(Some(CharRef { name: "ldr;", characters: "\u{2025}", - }); + })); } - if first_char == 'n' && try_read("leq;") { - return Some(CharRef { + if first_char == 'n' && try_read("leq;")? { + return Ok(Some(CharRef { name: "leq;", characters: "\u{2270}", - }); + })); } - if first_char == 'n' && try_read("les;") { - return Some(CharRef { + if first_char == 'n' && try_read("les;")? { + return Ok(Some(CharRef { name: "les;", characters: "\u{2a7d}\u{338}", - }); + })); } - if first_char == 'n' && try_read("mid;") { - return Some(CharRef { + if first_char == 'n' && try_read("mid;")? { + return Ok(Some(CharRef { name: "mid;", characters: "\u{2224}", - }); + })); } - if first_char == 'n' && try_read("opf;") { - return Some(CharRef { + if first_char == 'n' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d55f}", - }); + })); } - if first_char == 'n' && try_read("par;") { - return Some(CharRef { + if first_char == 'n' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{2226}", - }); + })); } - if first_char == 'n' && try_read("pre;") { - return Some(CharRef { + if first_char == 'n' && try_read("pre;")? { + return Ok(Some(CharRef { name: "pre;", characters: "\u{2aaf}\u{338}", - }); + })); } - if first_char == 'n' && try_read("sce;") { - return Some(CharRef { + if first_char == 'n' && try_read("sce;")? { + return Ok(Some(CharRef { name: "sce;", characters: "\u{2ab0}\u{338}", - }); + })); } - if first_char == 'n' && try_read("scr;") { - return Some(CharRef { + if first_char == 'n' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c3}", - }); + })); } - if first_char == 'n' && try_read("sim;") { - return Some(CharRef { + if first_char == 'n' && try_read("sim;")? { + return Ok(Some(CharRef { name: "sim;", characters: "\u{2241}", - }); + })); } - if first_char == 'n' && try_read("sub;") { - return Some(CharRef { + if first_char == 'n' && try_read("sub;")? { + return Ok(Some(CharRef { name: "sub;", characters: "\u{2284}", - }); + })); } - if first_char == 'n' && try_read("sup;") { - return Some(CharRef { + if first_char == 'n' && try_read("sup;")? { + return Ok(Some(CharRef { name: "sup;", characters: "\u{2285}", - }); + })); } - if first_char == 'n' && try_read("tgl;") { - return Some(CharRef { + if first_char == 'n' && try_read("tgl;")? { + return Ok(Some(CharRef { name: "tgl;", characters: "\u{2279}", - }); + })); } - if first_char == 'n' && try_read("tlg;") { - return Some(CharRef { + if first_char == 'n' && try_read("tlg;")? { + return Ok(Some(CharRef { name: "tlg;", characters: "\u{2278}", - }); + })); } - if first_char == 'n' && try_read("vap;") { - return Some(CharRef { + if first_char == 'n' && try_read("vap;")? { + return Ok(Some(CharRef { name: "vap;", characters: "\u{224d}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vge;") { - return Some(CharRef { + if first_char == 'n' && try_read("vge;")? { + return Ok(Some(CharRef { name: "vge;", characters: "\u{2265}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vgt;") { - return Some(CharRef { + if first_char == 'n' && try_read("vgt;")? { + return Ok(Some(CharRef { name: "vgt;", characters: "\u{3e}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vle;") { - return Some(CharRef { + if first_char == 'n' && try_read("vle;")? { + return Ok(Some(CharRef { name: "vle;", characters: "\u{2264}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("vlt;") { - return Some(CharRef { + if first_char == 'n' && try_read("vlt;")? { + return Ok(Some(CharRef { name: "vlt;", characters: "\u{3c}\u{20d2}", - }); + })); } - if first_char == 'o' && try_read("ast;") { - return Some(CharRef { + if first_char == 'o' && try_read("ast;")? { + return Ok(Some(CharRef { name: "ast;", characters: "\u{229b}", - }); + })); } - if first_char == 'o' && try_read("cir;") { - return Some(CharRef { + if first_char == 'o' && try_read("cir;")? { + return Ok(Some(CharRef { name: "cir;", characters: "\u{229a}", - }); + })); } - if first_char == 'o' && try_read("circ") { - return Some(CharRef { + if first_char == 'o' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{f4}", - }); + })); } - if first_char == 'o' && try_read("div;") { - return Some(CharRef { + if first_char == 'o' && try_read("div;")? { + return Ok(Some(CharRef { name: "div;", characters: "\u{2a38}", - }); + })); } - if first_char == 'o' && try_read("dot;") { - return Some(CharRef { + if first_char == 'o' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{2299}", - }); + })); } - if first_char == 'o' && try_read("gon;") { - return Some(CharRef { + if first_char == 'o' && try_read("gon;")? { + return Ok(Some(CharRef { name: "gon;", characters: "\u{2db}", - }); + })); } - if first_char == 'o' && try_read("int;") { - return Some(CharRef { + if first_char == 'o' && try_read("int;")? { + return Ok(Some(CharRef { name: "int;", characters: "\u{222e}", - }); + })); } - if first_char == 'o' && try_read("mid;") { - return Some(CharRef { + if first_char == 'o' && try_read("mid;")? { + return Ok(Some(CharRef { name: "mid;", characters: "\u{29b6}", - }); + })); } - if first_char == 'o' && try_read("opf;") { - return Some(CharRef { + if first_char == 'o' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d560}", - }); + })); } - if first_char == 'o' && try_read("par;") { - return Some(CharRef { + if first_char == 'o' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{29b7}", - }); + })); } - if first_char == 'o' && try_read("rdf;") { - return Some(CharRef { + if first_char == 'o' && try_read("rdf;")? { + return Ok(Some(CharRef { name: "rdf;", characters: "\u{aa}", - }); + })); } - if first_char == 'o' && try_read("rdm;") { - return Some(CharRef { + if first_char == 'o' && try_read("rdm;")? { + return Ok(Some(CharRef { name: "rdm;", characters: "\u{ba}", - }); + })); } - if first_char == 'o' && try_read("ror;") { - return Some(CharRef { + if first_char == 'o' && try_read("ror;")? { + return Ok(Some(CharRef { name: "ror;", characters: "\u{2a56}", - }); + })); } - if first_char == 'o' && try_read("scr;") { - return Some(CharRef { + if first_char == 'o' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{2134}", - }); + })); } - if first_char == 'o' && try_read("sol;") { - return Some(CharRef { + if first_char == 'o' && try_read("sol;")? { + return Ok(Some(CharRef { name: "sol;", characters: "\u{2298}", - }); + })); } - if first_char == 'o' && try_read("uml;") { - return Some(CharRef { + if first_char == 'o' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{f6}", - }); + })); } - if first_char == 'p' && try_read("ara;") { - return Some(CharRef { + if first_char == 'p' && try_read("ara;")? { + return Ok(Some(CharRef { name: "ara;", characters: "\u{b6}", - }); + })); } - if first_char == 'p' && try_read("art;") { - return Some(CharRef { + if first_char == 'p' && try_read("art;")? { + return Ok(Some(CharRef { name: "art;", characters: "\u{2202}", - }); + })); } - if first_char == 'p' && try_read("erp;") { - return Some(CharRef { + if first_char == 'p' && try_read("erp;")? { + return Ok(Some(CharRef { name: "erp;", characters: "\u{22a5}", - }); + })); } - if first_char == 'p' && try_read("hiv;") { - return Some(CharRef { + if first_char == 'p' && try_read("hiv;")? { + return Ok(Some(CharRef { name: "hiv;", characters: "\u{3d5}", - }); + })); } - if first_char == 'p' && try_read("lus;") { - return Some(CharRef { + if first_char == 'p' && try_read("lus;")? { + return Ok(Some(CharRef { name: "lus;", characters: "\u{2b}", - }); + })); } - if first_char == 'p' && try_read("opf;") { - return Some(CharRef { + if first_char == 'p' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d561}", - }); + })); } - if first_char == 'p' && try_read("ound") { - return Some(CharRef { + if first_char == 'p' && try_read("ound")? { + return Ok(Some(CharRef { name: "ound", characters: "\u{a3}", - }); + })); } - if first_char == 'p' && try_read("rap;") { - return Some(CharRef { + if first_char == 'p' && try_read("rap;")? { + return Ok(Some(CharRef { name: "rap;", characters: "\u{2ab7}", - }); + })); } - if first_char == 'p' && try_read("rec;") { - return Some(CharRef { + if first_char == 'p' && try_read("rec;")? { + return Ok(Some(CharRef { name: "rec;", characters: "\u{227a}", - }); + })); } - if first_char == 'p' && try_read("rnE;") { - return Some(CharRef { + if first_char == 'p' && try_read("rnE;")? { + return Ok(Some(CharRef { name: "rnE;", characters: "\u{2ab5}", - }); + })); } - if first_char == 'p' && try_read("rod;") { - return Some(CharRef { + if first_char == 'p' && try_read("rod;")? { + return Ok(Some(CharRef { name: "rod;", characters: "\u{220f}", - }); + })); } - if first_char == 'p' && try_read("rop;") { - return Some(CharRef { + if first_char == 'p' && try_read("rop;")? { + return Ok(Some(CharRef { name: "rop;", characters: "\u{221d}", - }); + })); } - if first_char == 'p' && try_read("scr;") { - return Some(CharRef { + if first_char == 'p' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c5}", - }); + })); } - if first_char == 'q' && try_read("int;") { - return Some(CharRef { + if first_char == 'q' && try_read("int;")? { + return Ok(Some(CharRef { name: "int;", characters: "\u{2a0c}", - }); + })); } - if first_char == 'q' && try_read("opf;") { - return Some(CharRef { + if first_char == 'q' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d562}", - }); + })); } - if first_char == 'q' && try_read("scr;") { - return Some(CharRef { + if first_char == 'q' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c6}", - }); + })); } - if first_char == 'q' && try_read("uot;") { - return Some(CharRef { + if first_char == 'q' && try_read("uot;")? { + return Ok(Some(CharRef { name: "uot;", characters: "\u{22}", - }); + })); } - if first_char == 'r' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'r' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d2}", - }); + })); } - if first_char == 'r' && try_read("Har;") { - return Some(CharRef { + if first_char == 'r' && try_read("Har;")? { + return Ok(Some(CharRef { name: "Har;", characters: "\u{2964}", - }); + })); } - if first_char == 'r' && try_read("ace;") { - return Some(CharRef { + if first_char == 'r' && try_read("ace;")? { + return Ok(Some(CharRef { name: "ace;", characters: "\u{223d}\u{331}", - }); + })); } - if first_char == 'r' && try_read("ang;") { - return Some(CharRef { + if first_char == 'r' && try_read("ang;")? { + return Ok(Some(CharRef { name: "ang;", characters: "\u{27e9}", - }); + })); } - if first_char == 'r' && try_read("aquo") { - return Some(CharRef { + if first_char == 'r' && try_read("aquo")? { + return Ok(Some(CharRef { name: "aquo", characters: "\u{bb}", - }); + })); } - if first_char == 'r' && try_read("arr;") { - return Some(CharRef { + if first_char == 'r' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2192}", - }); + })); } - if first_char == 'r' && try_read("cub;") { - return Some(CharRef { + if first_char == 'r' && try_read("cub;")? { + return Ok(Some(CharRef { name: "cub;", characters: "\u{7d}", - }); + })); } - if first_char == 'r' && try_read("dca;") { - return Some(CharRef { + if first_char == 'r' && try_read("dca;")? { + return Ok(Some(CharRef { name: "dca;", characters: "\u{2937}", - }); + })); } - if first_char == 'r' && try_read("dsh;") { - return Some(CharRef { + if first_char == 'r' && try_read("dsh;")? { + return Ok(Some(CharRef { name: "dsh;", characters: "\u{21b3}", - }); + })); } - if first_char == 'r' && try_read("eal;") { - return Some(CharRef { + if first_char == 'r' && try_read("eal;")? { + return Ok(Some(CharRef { name: "eal;", characters: "\u{211c}", - }); + })); } - if first_char == 'r' && try_read("ect;") { - return Some(CharRef { + if first_char == 'r' && try_read("ect;")? { + return Ok(Some(CharRef { name: "ect;", characters: "\u{25ad}", - }); + })); } - if first_char == 'r' && try_read("hov;") { - return Some(CharRef { + if first_char == 'r' && try_read("hov;")? { + return Ok(Some(CharRef { name: "hov;", characters: "\u{3f1}", - }); + })); } - if first_char == 'r' && try_read("ing;") { - return Some(CharRef { + if first_char == 'r' && try_read("ing;")? { + return Ok(Some(CharRef { name: "ing;", characters: "\u{2da}", - }); + })); } - if first_char == 'r' && try_read("opf;") { - return Some(CharRef { + if first_char == 'r' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d563}", - }); + })); } - if first_char == 'r' && try_read("par;") { - return Some(CharRef { + if first_char == 'r' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{29}", - }); + })); } - if first_char == 'r' && try_read("scr;") { - return Some(CharRef { + if first_char == 'r' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c7}", - }); + })); } - if first_char == 'r' && try_read("sqb;") { - return Some(CharRef { + if first_char == 'r' && try_read("sqb;")? { + return Ok(Some(CharRef { name: "sqb;", characters: "\u{5d}", - }); + })); } - if first_char == 'r' && try_read("tri;") { - return Some(CharRef { + if first_char == 'r' && try_read("tri;")? { + return Ok(Some(CharRef { name: "tri;", characters: "\u{25b9}", - }); + })); } - if first_char == 's' && try_read("cap;") { - return Some(CharRef { + if first_char == 's' && try_read("cap;")? { + return Ok(Some(CharRef { name: "cap;", characters: "\u{2ab8}", - }); + })); } - if first_char == 's' && try_read("cnE;") { - return Some(CharRef { + if first_char == 's' && try_read("cnE;")? { + return Ok(Some(CharRef { name: "cnE;", characters: "\u{2ab6}", - }); + })); } - if first_char == 's' && try_read("dot;") { - return Some(CharRef { + if first_char == 's' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{22c5}", - }); + })); } - if first_char == 's' && try_read("ect;") { - return Some(CharRef { + if first_char == 's' && try_read("ect;")? { + return Ok(Some(CharRef { name: "ect;", characters: "\u{a7}", - }); + })); } - if first_char == 's' && try_read("emi;") { - return Some(CharRef { + if first_char == 's' && try_read("emi;")? { + return Ok(Some(CharRef { name: "emi;", characters: "\u{3b}", - }); + })); } - if first_char == 's' && try_read("ext;") { - return Some(CharRef { + if first_char == 's' && try_read("ext;")? { + return Ok(Some(CharRef { name: "ext;", characters: "\u{2736}", - }); + })); } - if first_char == 's' && try_read("hcy;") { - return Some(CharRef { + if first_char == 's' && try_read("hcy;")? { + return Ok(Some(CharRef { name: "hcy;", characters: "\u{448}", - }); + })); } - if first_char == 's' && try_read("ime;") { - return Some(CharRef { + if first_char == 's' && try_read("ime;")? { + return Ok(Some(CharRef { name: "ime;", characters: "\u{2243}", - }); + })); } - if first_char == 's' && try_read("img;") { - return Some(CharRef { + if first_char == 's' && try_read("img;")? { + return Ok(Some(CharRef { name: "img;", characters: "\u{2a9e}", - }); + })); } - if first_char == 's' && try_read("iml;") { - return Some(CharRef { + if first_char == 's' && try_read("iml;")? { + return Ok(Some(CharRef { name: "iml;", characters: "\u{2a9d}", - }); + })); } - if first_char == 's' && try_read("mid;") { - return Some(CharRef { + if first_char == 's' && try_read("mid;")? { + return Ok(Some(CharRef { name: "mid;", characters: "\u{2223}", - }); + })); } - if first_char == 's' && try_read("mte;") { - return Some(CharRef { + if first_char == 's' && try_read("mte;")? { + return Ok(Some(CharRef { name: "mte;", characters: "\u{2aac}", - }); + })); } - if first_char == 's' && try_read("olb;") { - return Some(CharRef { + if first_char == 's' && try_read("olb;")? { + return Ok(Some(CharRef { name: "olb;", characters: "\u{29c4}", - }); + })); } - if first_char == 's' && try_read("opf;") { - return Some(CharRef { + if first_char == 's' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d564}", - }); + })); } - if first_char == 's' && try_read("par;") { - return Some(CharRef { + if first_char == 's' && try_read("par;")? { + return Ok(Some(CharRef { name: "par;", characters: "\u{2225}", - }); + })); } - if first_char == 's' && try_read("quf;") { - return Some(CharRef { + if first_char == 's' && try_read("quf;")? { + return Ok(Some(CharRef { name: "quf;", characters: "\u{25aa}", - }); + })); } - if first_char == 's' && try_read("scr;") { - return Some(CharRef { + if first_char == 's' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c8}", - }); + })); } - if first_char == 's' && try_read("tar;") { - return Some(CharRef { + if first_char == 's' && try_read("tar;")? { + return Ok(Some(CharRef { name: "tar;", characters: "\u{2606}", - }); + })); } - if first_char == 's' && try_read("ubE;") { - return Some(CharRef { + if first_char == 's' && try_read("ubE;")? { + return Ok(Some(CharRef { name: "ubE;", characters: "\u{2ac5}", - }); + })); } - if first_char == 's' && try_read("ube;") { - return Some(CharRef { + if first_char == 's' && try_read("ube;")? { + return Ok(Some(CharRef { name: "ube;", characters: "\u{2286}", - }); + })); } - if first_char == 's' && try_read("ucc;") { - return Some(CharRef { + if first_char == 's' && try_read("ucc;")? { + return Ok(Some(CharRef { name: "ucc;", characters: "\u{227b}", - }); + })); } - if first_char == 's' && try_read("ung;") { - return Some(CharRef { + if first_char == 's' && try_read("ung;")? { + return Ok(Some(CharRef { name: "ung;", characters: "\u{266a}", - }); + })); } - if first_char == 's' && try_read("up1;") { - return Some(CharRef { + if first_char == 's' && try_read("up1;")? { + return Ok(Some(CharRef { name: "up1;", characters: "\u{b9}", - }); + })); } - if first_char == 's' && try_read("up2;") { - return Some(CharRef { + if first_char == 's' && try_read("up2;")? { + return Ok(Some(CharRef { name: "up2;", characters: "\u{b2}", - }); + })); } - if first_char == 's' && try_read("up3;") { - return Some(CharRef { + if first_char == 's' && try_read("up3;")? { + return Ok(Some(CharRef { name: "up3;", characters: "\u{b3}", - }); + })); } - if first_char == 's' && try_read("upE;") { - return Some(CharRef { + if first_char == 's' && try_read("upE;")? { + return Ok(Some(CharRef { name: "upE;", characters: "\u{2ac6}", - }); + })); } - if first_char == 's' && try_read("upe;") { - return Some(CharRef { + if first_char == 's' && try_read("upe;")? { + return Ok(Some(CharRef { name: "upe;", characters: "\u{2287}", - }); + })); } - if first_char == 's' && try_read("zlig") { - return Some(CharRef { + if first_char == 's' && try_read("zlig")? { + return Ok(Some(CharRef { name: "zlig", characters: "\u{df}", - }); + })); } - if first_char == 't' && try_read("brk;") { - return Some(CharRef { + if first_char == 't' && try_read("brk;")? { + return Ok(Some(CharRef { name: "brk;", characters: "\u{23b4}", - }); + })); } - if first_char == 't' && try_read("dot;") { - return Some(CharRef { + if first_char == 't' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{20db}", - }); + })); } - if first_char == 't' && try_read("horn") { - return Some(CharRef { + if first_char == 't' && try_read("horn")? { + return Ok(Some(CharRef { name: "horn", characters: "\u{fe}", - }); + })); } - if first_char == 't' && try_read("imes") { - return Some(CharRef { + if first_char == 't' && try_read("imes")? { + return Ok(Some(CharRef { name: "imes", characters: "\u{d7}", - }); + })); } - if first_char == 't' && try_read("int;") { - return Some(CharRef { + if first_char == 't' && try_read("int;")? { + return Ok(Some(CharRef { name: "int;", characters: "\u{222d}", - }); + })); } - if first_char == 't' && try_read("oea;") { - return Some(CharRef { + if first_char == 't' && try_read("oea;")? { + return Ok(Some(CharRef { name: "oea;", characters: "\u{2928}", - }); + })); } - if first_char == 't' && try_read("opf;") { - return Some(CharRef { + if first_char == 't' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d565}", - }); + })); } - if first_char == 't' && try_read("osa;") { - return Some(CharRef { + if first_char == 't' && try_read("osa;")? { + return Ok(Some(CharRef { name: "osa;", characters: "\u{2929}", - }); + })); } - if first_char == 't' && try_read("rie;") { - return Some(CharRef { + if first_char == 't' && try_read("rie;")? { + return Ok(Some(CharRef { name: "rie;", characters: "\u{225c}", - }); + })); } - if first_char == 't' && try_read("scr;") { - return Some(CharRef { + if first_char == 't' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4c9}", - }); + })); } - if first_char == 't' && try_read("scy;") { - return Some(CharRef { + if first_char == 't' && try_read("scy;")? { + return Ok(Some(CharRef { name: "scy;", characters: "\u{446}", - }); + })); } - if first_char == 'u' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'u' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d1}", - }); + })); } - if first_char == 'u' && try_read("Har;") { - return Some(CharRef { + if first_char == 'u' && try_read("Har;")? { + return Ok(Some(CharRef { name: "Har;", characters: "\u{2963}", - }); + })); } - if first_char == 'u' && try_read("arr;") { - return Some(CharRef { + if first_char == 'u' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2191}", - }); + })); } - if first_char == 'u' && try_read("circ") { - return Some(CharRef { + if first_char == 'u' && try_read("circ")? { + return Ok(Some(CharRef { name: "circ", characters: "\u{fb}", - }); + })); } - if first_char == 'u' && try_read("opf;") { - return Some(CharRef { + if first_char == 'u' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d566}", - }); + })); } - if first_char == 'u' && try_read("psi;") { - return Some(CharRef { + if first_char == 'u' && try_read("psi;")? { + return Ok(Some(CharRef { name: "psi;", characters: "\u{3c5}", - }); + })); } - if first_char == 'u' && try_read("scr;") { - return Some(CharRef { + if first_char == 'u' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4ca}", - }); + })); } - if first_char == 'u' && try_read("tri;") { - return Some(CharRef { + if first_char == 'u' && try_read("tri;")? { + return Ok(Some(CharRef { name: "tri;", characters: "\u{25b5}", - }); + })); } - if first_char == 'u' && try_read("uml;") { - return Some(CharRef { + if first_char == 'u' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{fc}", - }); + })); } - if first_char == 'v' && try_read("Arr;") { - return Some(CharRef { + if first_char == 'v' && try_read("Arr;")? { + return Ok(Some(CharRef { name: "Arr;", characters: "\u{21d5}", - }); + })); } - if first_char == 'v' && try_read("Bar;") { - return Some(CharRef { + if first_char == 'v' && try_read("Bar;")? { + return Ok(Some(CharRef { name: "Bar;", characters: "\u{2ae8}", - }); + })); } - if first_char == 'v' && try_read("arr;") { - return Some(CharRef { + if first_char == 'v' && try_read("arr;")? { + return Ok(Some(CharRef { name: "arr;", characters: "\u{2195}", - }); + })); } - if first_char == 'v' && try_read("ert;") { - return Some(CharRef { + if first_char == 'v' && try_read("ert;")? { + return Ok(Some(CharRef { name: "ert;", characters: "\u{7c}", - }); + })); } - if first_char == 'v' && try_read("opf;") { - return Some(CharRef { + if first_char == 'v' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d567}", - }); + })); } - if first_char == 'v' && try_read("scr;") { - return Some(CharRef { + if first_char == 'v' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4cb}", - }); + })); } - if first_char == 'w' && try_read("opf;") { - return Some(CharRef { + if first_char == 'w' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d568}", - }); + })); } - if first_char == 'w' && try_read("scr;") { - return Some(CharRef { + if first_char == 'w' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4cc}", - }); + })); } - if first_char == 'x' && try_read("cap;") { - return Some(CharRef { + if first_char == 'x' && try_read("cap;")? { + return Ok(Some(CharRef { name: "cap;", characters: "\u{22c2}", - }); + })); } - if first_char == 'x' && try_read("cup;") { - return Some(CharRef { + if first_char == 'x' && try_read("cup;")? { + return Ok(Some(CharRef { name: "cup;", characters: "\u{22c3}", - }); + })); } - if first_char == 'x' && try_read("map;") { - return Some(CharRef { + if first_char == 'x' && try_read("map;")? { + return Ok(Some(CharRef { name: "map;", characters: "\u{27fc}", - }); + })); } - if first_char == 'x' && try_read("nis;") { - return Some(CharRef { + if first_char == 'x' && try_read("nis;")? { + return Ok(Some(CharRef { name: "nis;", characters: "\u{22fb}", - }); + })); } - if first_char == 'x' && try_read("opf;") { - return Some(CharRef { + if first_char == 'x' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d569}", - }); + })); } - if first_char == 'x' && try_read("scr;") { - return Some(CharRef { + if first_char == 'x' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4cd}", - }); + })); } - if first_char == 'x' && try_read("vee;") { - return Some(CharRef { + if first_char == 'x' && try_read("vee;")? { + return Ok(Some(CharRef { name: "vee;", characters: "\u{22c1}", - }); + })); } - if first_char == 'y' && try_read("acy;") { - return Some(CharRef { + if first_char == 'y' && try_read("acy;")? { + return Ok(Some(CharRef { name: "acy;", characters: "\u{44f}", - }); + })); } - if first_char == 'y' && try_read("icy;") { - return Some(CharRef { + if first_char == 'y' && try_read("icy;")? { + return Ok(Some(CharRef { name: "icy;", characters: "\u{457}", - }); + })); } - if first_char == 'y' && try_read("opf;") { - return Some(CharRef { + if first_char == 'y' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d56a}", - }); + })); } - if first_char == 'y' && try_read("scr;") { - return Some(CharRef { + if first_char == 'y' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4ce}", - }); + })); } - if first_char == 'y' && try_read("ucy;") { - return Some(CharRef { + if first_char == 'y' && try_read("ucy;")? { + return Ok(Some(CharRef { name: "ucy;", characters: "\u{44e}", - }); + })); } - if first_char == 'y' && try_read("uml;") { - return Some(CharRef { + if first_char == 'y' && try_read("uml;")? { + return Ok(Some(CharRef { name: "uml;", characters: "\u{ff}", - }); + })); } - if first_char == 'z' && try_read("dot;") { - return Some(CharRef { + if first_char == 'z' && try_read("dot;")? { + return Ok(Some(CharRef { name: "dot;", characters: "\u{17c}", - }); + })); } - if first_char == 'z' && try_read("eta;") { - return Some(CharRef { + if first_char == 'z' && try_read("eta;")? { + return Ok(Some(CharRef { name: "eta;", characters: "\u{3b6}", - }); + })); } - if first_char == 'z' && try_read("hcy;") { - return Some(CharRef { + if first_char == 'z' && try_read("hcy;")? { + return Ok(Some(CharRef { name: "hcy;", characters: "\u{436}", - }); + })); } - if first_char == 'z' && try_read("opf;") { - return Some(CharRef { + if first_char == 'z' && try_read("opf;")? { + return Ok(Some(CharRef { name: "opf;", characters: "\u{1d56b}", - }); + })); } - if first_char == 'z' && try_read("scr;") { - return Some(CharRef { + if first_char == 'z' && try_read("scr;")? { + return Ok(Some(CharRef { name: "scr;", characters: "\u{1d4cf}", - }); + })); } - if first_char == 'z' && try_read("wnj;") { - return Some(CharRef { + if first_char == 'z' && try_read("wnj;")? { + return Ok(Some(CharRef { name: "wnj;", characters: "\u{200c}", - }); + })); } - if first_char == 'A' && try_read("MP;") { - return Some(CharRef { + if first_char == 'A' && try_read("MP;")? { + return Ok(Some(CharRef { name: "MP;", characters: "\u{26}", - }); + })); } - if first_char == 'A' && try_read("cy;") { - return Some(CharRef { + if first_char == 'A' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{410}", - }); + })); } - if first_char == 'A' && try_read("fr;") { - return Some(CharRef { + if first_char == 'A' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d504}", - }); + })); } - if first_char == 'A' && try_read("nd;") { - return Some(CharRef { + if first_char == 'A' && try_read("nd;")? { + return Ok(Some(CharRef { name: "nd;", characters: "\u{2a53}", - }); + })); } - if first_char == 'A' && try_read("uml") { - return Some(CharRef { + if first_char == 'A' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{c4}", - }); + })); } - if first_char == 'B' && try_read("cy;") { - return Some(CharRef { + if first_char == 'B' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{411}", - }); + })); } - if first_char == 'B' && try_read("fr;") { - return Some(CharRef { + if first_char == 'B' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d505}", - }); + })); } - if first_char == 'C' && try_read("OPY") { - return Some(CharRef { + if first_char == 'C' && try_read("OPY")? { + return Ok(Some(CharRef { name: "OPY", characters: "\u{a9}", - }); + })); } - if first_char == 'C' && try_read("ap;") { - return Some(CharRef { + if first_char == 'C' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{22d2}", - }); + })); } - if first_char == 'C' && try_read("fr;") { - return Some(CharRef { + if first_char == 'C' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{212d}", - }); + })); } - if first_char == 'C' && try_read("hi;") { - return Some(CharRef { + if first_char == 'C' && try_read("hi;")? { + return Ok(Some(CharRef { name: "hi;", characters: "\u{3a7}", - }); + })); } - if first_char == 'C' && try_read("up;") { - return Some(CharRef { + if first_char == 'C' && try_read("up;")? { + return Ok(Some(CharRef { name: "up;", characters: "\u{22d3}", - }); + })); } - if first_char == 'D' && try_read("cy;") { - return Some(CharRef { + if first_char == 'D' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{414}", - }); + })); } - if first_char == 'D' && try_read("el;") { - return Some(CharRef { + if first_char == 'D' && try_read("el;")? { + return Ok(Some(CharRef { name: "el;", characters: "\u{2207}", - }); + })); } - if first_char == 'D' && try_read("fr;") { - return Some(CharRef { + if first_char == 'D' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d507}", - }); + })); } - if first_char == 'D' && try_read("ot;") { - return Some(CharRef { + if first_char == 'D' && try_read("ot;")? { + return Ok(Some(CharRef { name: "ot;", characters: "\u{a8}", - }); + })); } - if first_char == 'E' && try_read("NG;") { - return Some(CharRef { + if first_char == 'E' && try_read("NG;")? { + return Ok(Some(CharRef { name: "NG;", characters: "\u{14a}", - }); + })); } - if first_char == 'E' && try_read("TH;") { - return Some(CharRef { + if first_char == 'E' && try_read("TH;")? { + return Ok(Some(CharRef { name: "TH;", characters: "\u{d0}", - }); + })); } - if first_char == 'E' && try_read("cy;") { - return Some(CharRef { + if first_char == 'E' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{42d}", - }); + })); } - if first_char == 'E' && try_read("fr;") { - return Some(CharRef { + if first_char == 'E' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d508}", - }); + })); } - if first_char == 'E' && try_read("ta;") { - return Some(CharRef { + if first_char == 'E' && try_read("ta;")? { + return Ok(Some(CharRef { name: "ta;", characters: "\u{397}", - }); + })); } - if first_char == 'E' && try_read("uml") { - return Some(CharRef { + if first_char == 'E' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{cb}", - }); + })); } - if first_char == 'F' && try_read("cy;") { - return Some(CharRef { + if first_char == 'F' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{424}", - }); + })); } - if first_char == 'F' && try_read("fr;") { - return Some(CharRef { + if first_char == 'F' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d509}", - }); + })); } - if first_char == 'G' && try_read("cy;") { - return Some(CharRef { + if first_char == 'G' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{413}", - }); + })); } - if first_char == 'G' && try_read("fr;") { - return Some(CharRef { + if first_char == 'G' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d50a}", - }); + })); } - if first_char == 'H' && try_read("at;") { - return Some(CharRef { + if first_char == 'H' && try_read("at;")? { + return Ok(Some(CharRef { name: "at;", characters: "\u{5e}", - }); + })); } - if first_char == 'H' && try_read("fr;") { - return Some(CharRef { + if first_char == 'H' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{210c}", - }); + })); } - if first_char == 'I' && try_read("cy;") { - return Some(CharRef { + if first_char == 'I' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{418}", - }); + })); } - if first_char == 'I' && try_read("fr;") { - return Some(CharRef { + if first_char == 'I' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{2111}", - }); + })); } - if first_char == 'I' && try_read("nt;") { - return Some(CharRef { + if first_char == 'I' && try_read("nt;")? { + return Ok(Some(CharRef { name: "nt;", characters: "\u{222c}", - }); + })); } - if first_char == 'I' && try_read("uml") { - return Some(CharRef { + if first_char == 'I' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{cf}", - }); + })); } - if first_char == 'J' && try_read("cy;") { - return Some(CharRef { + if first_char == 'J' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{419}", - }); + })); } - if first_char == 'J' && try_read("fr;") { - return Some(CharRef { + if first_char == 'J' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d50d}", - }); + })); } - if first_char == 'K' && try_read("cy;") { - return Some(CharRef { + if first_char == 'K' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41a}", - }); + })); } - if first_char == 'K' && try_read("fr;") { - return Some(CharRef { + if first_char == 'K' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d50e}", - }); + })); } - if first_char == 'L' && try_read("cy;") { - return Some(CharRef { + if first_char == 'L' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41b}", - }); + })); } - if first_char == 'L' && try_read("fr;") { - return Some(CharRef { + if first_char == 'L' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d50f}", - }); + })); } - if first_char == 'L' && try_read("sh;") { - return Some(CharRef { + if first_char == 'L' && try_read("sh;")? { + return Ok(Some(CharRef { name: "sh;", characters: "\u{21b0}", - }); + })); } - if first_char == 'M' && try_read("ap;") { - return Some(CharRef { + if first_char == 'M' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{2905}", - }); + })); } - if first_char == 'M' && try_read("cy;") { - return Some(CharRef { + if first_char == 'M' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41c}", - }); + })); } - if first_char == 'M' && try_read("fr;") { - return Some(CharRef { + if first_char == 'M' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d510}", - }); + })); } - if first_char == 'N' && try_read("cy;") { - return Some(CharRef { + if first_char == 'N' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41d}", - }); + })); } - if first_char == 'N' && try_read("fr;") { - return Some(CharRef { + if first_char == 'N' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d511}", - }); + })); } - if first_char == 'N' && try_read("ot;") { - return Some(CharRef { + if first_char == 'N' && try_read("ot;")? { + return Ok(Some(CharRef { name: "ot;", characters: "\u{2aec}", - }); + })); } - if first_char == 'O' && try_read("cy;") { - return Some(CharRef { + if first_char == 'O' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41e}", - }); + })); } - if first_char == 'O' && try_read("fr;") { - return Some(CharRef { + if first_char == 'O' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d512}", - }); + })); } - if first_char == 'O' && try_read("uml") { - return Some(CharRef { + if first_char == 'O' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{d6}", - }); + })); } - if first_char == 'P' && try_read("cy;") { - return Some(CharRef { + if first_char == 'P' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{41f}", - }); + })); } - if first_char == 'P' && try_read("fr;") { - return Some(CharRef { + if first_char == 'P' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d513}", - }); + })); } - if first_char == 'P' && try_read("hi;") { - return Some(CharRef { + if first_char == 'P' && try_read("hi;")? { + return Ok(Some(CharRef { name: "hi;", characters: "\u{3a6}", - }); + })); } - if first_char == 'P' && try_read("si;") { - return Some(CharRef { + if first_char == 'P' && try_read("si;")? { + return Ok(Some(CharRef { name: "si;", characters: "\u{3a8}", - }); + })); } - if first_char == 'Q' && try_read("UOT") { - return Some(CharRef { + if first_char == 'Q' && try_read("UOT")? { + return Ok(Some(CharRef { name: "UOT", characters: "\u{22}", - }); + })); } - if first_char == 'Q' && try_read("fr;") { - return Some(CharRef { + if first_char == 'Q' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d514}", - }); + })); } - if first_char == 'R' && try_read("EG;") { - return Some(CharRef { + if first_char == 'R' && try_read("EG;")? { + return Ok(Some(CharRef { name: "EG;", characters: "\u{ae}", - }); + })); } - if first_char == 'R' && try_read("cy;") { - return Some(CharRef { + if first_char == 'R' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{420}", - }); + })); } - if first_char == 'R' && try_read("fr;") { - return Some(CharRef { + if first_char == 'R' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{211c}", - }); + })); } - if first_char == 'R' && try_read("ho;") { - return Some(CharRef { + if first_char == 'R' && try_read("ho;")? { + return Ok(Some(CharRef { name: "ho;", characters: "\u{3a1}", - }); + })); } - if first_char == 'R' && try_read("sh;") { - return Some(CharRef { + if first_char == 'R' && try_read("sh;")? { + return Ok(Some(CharRef { name: "sh;", characters: "\u{21b1}", - }); + })); } - if first_char == 'S' && try_read("cy;") { - return Some(CharRef { + if first_char == 'S' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{421}", - }); + })); } - if first_char == 'S' && try_read("fr;") { - return Some(CharRef { + if first_char == 'S' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d516}", - }); + })); } - if first_char == 'S' && try_read("ub;") { - return Some(CharRef { + if first_char == 'S' && try_read("ub;")? { + return Ok(Some(CharRef { name: "ub;", characters: "\u{22d0}", - }); + })); } - if first_char == 'S' && try_read("um;") { - return Some(CharRef { + if first_char == 'S' && try_read("um;")? { + return Ok(Some(CharRef { name: "um;", characters: "\u{2211}", - }); + })); } - if first_char == 'S' && try_read("up;") { - return Some(CharRef { + if first_char == 'S' && try_read("up;")? { + return Ok(Some(CharRef { name: "up;", characters: "\u{22d1}", - }); + })); } - if first_char == 'T' && try_read("ab;") { - return Some(CharRef { + if first_char == 'T' && try_read("ab;")? { + return Ok(Some(CharRef { name: "ab;", characters: "\u{9}", - }); + })); } - if first_char == 'T' && try_read("au;") { - return Some(CharRef { + if first_char == 'T' && try_read("au;")? { + return Ok(Some(CharRef { name: "au;", characters: "\u{3a4}", - }); + })); } - if first_char == 'T' && try_read("cy;") { - return Some(CharRef { + if first_char == 'T' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{422}", - }); + })); } - if first_char == 'T' && try_read("fr;") { - return Some(CharRef { + if first_char == 'T' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d517}", - }); + })); } - if first_char == 'U' && try_read("cy;") { - return Some(CharRef { + if first_char == 'U' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{423}", - }); + })); } - if first_char == 'U' && try_read("fr;") { - return Some(CharRef { + if first_char == 'U' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d518}", - }); + })); } - if first_char == 'U' && try_read("uml") { - return Some(CharRef { + if first_char == 'U' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{dc}", - }); + })); } - if first_char == 'V' && try_read("cy;") { - return Some(CharRef { + if first_char == 'V' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{412}", - }); + })); } - if first_char == 'V' && try_read("ee;") { - return Some(CharRef { + if first_char == 'V' && try_read("ee;")? { + return Ok(Some(CharRef { name: "ee;", characters: "\u{22c1}", - }); + })); } - if first_char == 'V' && try_read("fr;") { - return Some(CharRef { + if first_char == 'V' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d519}", - }); + })); } - if first_char == 'W' && try_read("fr;") { - return Some(CharRef { + if first_char == 'W' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d51a}", - }); + })); } - if first_char == 'X' && try_read("fr;") { - return Some(CharRef { + if first_char == 'X' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d51b}", - }); + })); } - if first_char == 'Y' && try_read("cy;") { - return Some(CharRef { + if first_char == 'Y' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{42b}", - }); + })); } - if first_char == 'Y' && try_read("fr;") { - return Some(CharRef { + if first_char == 'Y' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d51c}", - }); + })); } - if first_char == 'Z' && try_read("cy;") { - return Some(CharRef { + if first_char == 'Z' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{417}", - }); + })); } - if first_char == 'Z' && try_read("fr;") { - return Some(CharRef { + if first_char == 'Z' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{2128}", - }); + })); } - if first_char == 'a' && try_read("cE;") { - return Some(CharRef { + if first_char == 'a' && try_read("cE;")? { + return Ok(Some(CharRef { name: "cE;", characters: "\u{223e}\u{333}", - }); + })); } - if first_char == 'a' && try_read("cd;") { - return Some(CharRef { + if first_char == 'a' && try_read("cd;")? { + return Ok(Some(CharRef { name: "cd;", characters: "\u{223f}", - }); + })); } - if first_char == 'a' && try_read("cy;") { - return Some(CharRef { + if first_char == 'a' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{430}", - }); + })); } - if first_char == 'a' && try_read("fr;") { - return Some(CharRef { + if first_char == 'a' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d51e}", - }); + })); } - if first_char == 'a' && try_read("mp;") { - return Some(CharRef { + if first_char == 'a' && try_read("mp;")? { + return Ok(Some(CharRef { name: "mp;", characters: "\u{26}", - }); + })); } - if first_char == 'a' && try_read("nd;") { - return Some(CharRef { + if first_char == 'a' && try_read("nd;")? { + return Ok(Some(CharRef { name: "nd;", characters: "\u{2227}", - }); + })); } - if first_char == 'a' && try_read("ng;") { - return Some(CharRef { + if first_char == 'a' && try_read("ng;")? { + return Ok(Some(CharRef { name: "ng;", characters: "\u{2220}", - }); + })); } - if first_char == 'a' && try_read("pE;") { - return Some(CharRef { + if first_char == 'a' && try_read("pE;")? { + return Ok(Some(CharRef { name: "pE;", characters: "\u{2a70}", - }); + })); } - if first_char == 'a' && try_read("pe;") { - return Some(CharRef { + if first_char == 'a' && try_read("pe;")? { + return Ok(Some(CharRef { name: "pe;", characters: "\u{224a}", - }); + })); } - if first_char == 'a' && try_read("st;") { - return Some(CharRef { + if first_char == 'a' && try_read("st;")? { + return Ok(Some(CharRef { name: "st;", characters: "\u{2a}", - }); + })); } - if first_char == 'a' && try_read("uml") { - return Some(CharRef { + if first_char == 'a' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{e4}", - }); + })); } - if first_char == 'b' && try_read("cy;") { - return Some(CharRef { + if first_char == 'b' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{431}", - }); + })); } - if first_char == 'b' && try_read("fr;") { - return Some(CharRef { + if first_char == 'b' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d51f}", - }); + })); } - if first_char == 'b' && try_read("ne;") { - return Some(CharRef { + if first_char == 'b' && try_read("ne;")? { + return Ok(Some(CharRef { name: "ne;", characters: "\u{3d}\u{20e5}", - }); + })); } - if first_char == 'b' && try_read("ot;") { - return Some(CharRef { + if first_char == 'b' && try_read("ot;")? { + return Ok(Some(CharRef { name: "ot;", characters: "\u{22a5}", - }); + })); } - if first_char == 'c' && try_read("ap;") { - return Some(CharRef { + if first_char == 'c' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{2229}", - }); + })); } - if first_char == 'c' && try_read("ent") { - return Some(CharRef { + if first_char == 'c' && try_read("ent")? { + return Ok(Some(CharRef { name: "ent", characters: "\u{a2}", - }); + })); } - if first_char == 'c' && try_read("fr;") { - return Some(CharRef { + if first_char == 'c' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d520}", - }); + })); } - if first_char == 'c' && try_read("hi;") { - return Some(CharRef { + if first_char == 'c' && try_read("hi;")? { + return Ok(Some(CharRef { name: "hi;", characters: "\u{3c7}", - }); + })); } - if first_char == 'c' && try_read("ir;") { - return Some(CharRef { + if first_char == 'c' && try_read("ir;")? { + return Ok(Some(CharRef { name: "ir;", characters: "\u{25cb}", - }); + })); } - if first_char == 'c' && try_read("opy") { - return Some(CharRef { + if first_char == 'c' && try_read("opy")? { + return Ok(Some(CharRef { name: "opy", characters: "\u{a9}", - }); + })); } - if first_char == 'c' && try_read("up;") { - return Some(CharRef { + if first_char == 'c' && try_read("up;")? { + return Ok(Some(CharRef { name: "up;", characters: "\u{222a}", - }); + })); } - if first_char == 'd' && try_read("cy;") { - return Some(CharRef { + if first_char == 'd' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{434}", - }); + })); } - if first_char == 'd' && try_read("eg;") { - return Some(CharRef { + if first_char == 'd' && try_read("eg;")? { + return Ok(Some(CharRef { name: "eg;", characters: "\u{b0}", - }); + })); } - if first_char == 'd' && try_read("fr;") { - return Some(CharRef { + if first_char == 'd' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d521}", - }); + })); } - if first_char == 'd' && try_read("ie;") { - return Some(CharRef { + if first_char == 'd' && try_read("ie;")? { + return Ok(Some(CharRef { name: "ie;", characters: "\u{a8}", - }); + })); } - if first_char == 'd' && try_read("iv;") { - return Some(CharRef { + if first_char == 'd' && try_read("iv;")? { + return Ok(Some(CharRef { name: "iv;", characters: "\u{f7}", - }); + })); } - if first_char == 'd' && try_read("ot;") { - return Some(CharRef { + if first_char == 'd' && try_read("ot;")? { + return Ok(Some(CharRef { name: "ot;", characters: "\u{2d9}", - }); + })); } - if first_char == 'e' && try_read("cy;") { - return Some(CharRef { + if first_char == 'e' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{44d}", - }); + })); } - if first_char == 'e' && try_read("fr;") { - return Some(CharRef { + if first_char == 'e' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d522}", - }); + })); } - if first_char == 'e' && try_read("gs;") { - return Some(CharRef { + if first_char == 'e' && try_read("gs;")? { + return Ok(Some(CharRef { name: "gs;", characters: "\u{2a96}", - }); + })); } - if first_char == 'e' && try_read("ll;") { - return Some(CharRef { + if first_char == 'e' && try_read("ll;")? { + return Ok(Some(CharRef { name: "ll;", characters: "\u{2113}", - }); + })); } - if first_char == 'e' && try_read("ls;") { - return Some(CharRef { + if first_char == 'e' && try_read("ls;")? { + return Ok(Some(CharRef { name: "ls;", characters: "\u{2a95}", - }); + })); } - if first_char == 'e' && try_read("ng;") { - return Some(CharRef { + if first_char == 'e' && try_read("ng;")? { + return Ok(Some(CharRef { name: "ng;", characters: "\u{14b}", - }); + })); } - if first_char == 'e' && try_read("ta;") { - return Some(CharRef { + if first_char == 'e' && try_read("ta;")? { + return Ok(Some(CharRef { name: "ta;", characters: "\u{3b7}", - }); + })); } - if first_char == 'e' && try_read("th;") { - return Some(CharRef { + if first_char == 'e' && try_read("th;")? { + return Ok(Some(CharRef { name: "th;", characters: "\u{f0}", - }); + })); } - if first_char == 'e' && try_read("uml") { - return Some(CharRef { + if first_char == 'e' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{eb}", - }); + })); } - if first_char == 'f' && try_read("cy;") { - return Some(CharRef { + if first_char == 'f' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{444}", - }); + })); } - if first_char == 'f' && try_read("fr;") { - return Some(CharRef { + if first_char == 'f' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d523}", - }); + })); } - if first_char == 'g' && try_read("El;") { - return Some(CharRef { + if first_char == 'g' && try_read("El;")? { + return Ok(Some(CharRef { name: "El;", characters: "\u{2a8c}", - }); + })); } - if first_char == 'g' && try_read("ap;") { - return Some(CharRef { + if first_char == 'g' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{2a86}", - }); + })); } - if first_char == 'g' && try_read("cy;") { - return Some(CharRef { + if first_char == 'g' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{433}", - }); + })); } - if first_char == 'g' && try_read("el;") { - return Some(CharRef { + if first_char == 'g' && try_read("el;")? { + return Ok(Some(CharRef { name: "el;", characters: "\u{22db}", - }); + })); } - if first_char == 'g' && try_read("eq;") { - return Some(CharRef { + if first_char == 'g' && try_read("eq;")? { + return Ok(Some(CharRef { name: "eq;", characters: "\u{2265}", - }); + })); } - if first_char == 'g' && try_read("es;") { - return Some(CharRef { + if first_char == 'g' && try_read("es;")? { + return Ok(Some(CharRef { name: "es;", characters: "\u{2a7e}", - }); + })); } - if first_char == 'g' && try_read("fr;") { - return Some(CharRef { + if first_char == 'g' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d524}", - }); + })); } - if first_char == 'g' && try_read("gg;") { - return Some(CharRef { + if first_char == 'g' && try_read("gg;")? { + return Ok(Some(CharRef { name: "gg;", characters: "\u{22d9}", - }); + })); } - if first_char == 'g' && try_read("lE;") { - return Some(CharRef { + if first_char == 'g' && try_read("lE;")? { + return Ok(Some(CharRef { name: "lE;", characters: "\u{2a92}", - }); + })); } - if first_char == 'g' && try_read("la;") { - return Some(CharRef { + if first_char == 'g' && try_read("la;")? { + return Ok(Some(CharRef { name: "la;", characters: "\u{2aa5}", - }); + })); } - if first_char == 'g' && try_read("lj;") { - return Some(CharRef { + if first_char == 'g' && try_read("lj;")? { + return Ok(Some(CharRef { name: "lj;", characters: "\u{2aa4}", - }); + })); } - if first_char == 'g' && try_read("nE;") { - return Some(CharRef { + if first_char == 'g' && try_read("nE;")? { + return Ok(Some(CharRef { name: "nE;", characters: "\u{2269}", - }); + })); } - if first_char == 'g' && try_read("ne;") { - return Some(CharRef { + if first_char == 'g' && try_read("ne;")? { + return Ok(Some(CharRef { name: "ne;", characters: "\u{2a88}", - }); + })); } - if first_char == 'h' && try_read("fr;") { - return Some(CharRef { + if first_char == 'h' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d525}", - }); + })); } - if first_char == 'i' && try_read("cy;") { - return Some(CharRef { + if first_char == 'i' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{438}", - }); + })); } - if first_char == 'i' && try_read("ff;") { - return Some(CharRef { + if first_char == 'i' && try_read("ff;")? { + return Ok(Some(CharRef { name: "ff;", characters: "\u{21d4}", - }); + })); } - if first_char == 'i' && try_read("fr;") { - return Some(CharRef { + if first_char == 'i' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d526}", - }); + })); } - if first_char == 'i' && try_read("nt;") { - return Some(CharRef { + if first_char == 'i' && try_read("nt;")? { + return Ok(Some(CharRef { name: "nt;", characters: "\u{222b}", - }); + })); } - if first_char == 'i' && try_read("uml") { - return Some(CharRef { + if first_char == 'i' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{ef}", - }); + })); } - if first_char == 'j' && try_read("cy;") { - return Some(CharRef { + if first_char == 'j' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{439}", - }); + })); } - if first_char == 'j' && try_read("fr;") { - return Some(CharRef { + if first_char == 'j' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d527}", - }); + })); } - if first_char == 'k' && try_read("cy;") { - return Some(CharRef { + if first_char == 'k' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43a}", - }); + })); } - if first_char == 'k' && try_read("fr;") { - return Some(CharRef { + if first_char == 'k' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d528}", - }); + })); } - if first_char == 'l' && try_read("Eg;") { - return Some(CharRef { + if first_char == 'l' && try_read("Eg;")? { + return Ok(Some(CharRef { name: "Eg;", characters: "\u{2a8b}", - }); + })); } - if first_char == 'l' && try_read("ap;") { - return Some(CharRef { + if first_char == 'l' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{2a85}", - }); + })); } - if first_char == 'l' && try_read("at;") { - return Some(CharRef { + if first_char == 'l' && try_read("at;")? { + return Ok(Some(CharRef { name: "at;", characters: "\u{2aab}", - }); + })); } - if first_char == 'l' && try_read("cy;") { - return Some(CharRef { + if first_char == 'l' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43b}", - }); + })); } - if first_char == 'l' && try_read("eg;") { - return Some(CharRef { + if first_char == 'l' && try_read("eg;")? { + return Ok(Some(CharRef { name: "eg;", characters: "\u{22da}", - }); + })); } - if first_char == 'l' && try_read("eq;") { - return Some(CharRef { + if first_char == 'l' && try_read("eq;")? { + return Ok(Some(CharRef { name: "eq;", characters: "\u{2264}", - }); + })); } - if first_char == 'l' && try_read("es;") { - return Some(CharRef { + if first_char == 'l' && try_read("es;")? { + return Ok(Some(CharRef { name: "es;", characters: "\u{2a7d}", - }); + })); } - if first_char == 'l' && try_read("fr;") { - return Some(CharRef { + if first_char == 'l' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d529}", - }); + })); } - if first_char == 'l' && try_read("gE;") { - return Some(CharRef { + if first_char == 'l' && try_read("gE;")? { + return Ok(Some(CharRef { name: "gE;", characters: "\u{2a91}", - }); + })); } - if first_char == 'l' && try_read("nE;") { - return Some(CharRef { + if first_char == 'l' && try_read("nE;")? { + return Ok(Some(CharRef { name: "nE;", characters: "\u{2268}", - }); + })); } - if first_char == 'l' && try_read("ne;") { - return Some(CharRef { + if first_char == 'l' && try_read("ne;")? { + return Ok(Some(CharRef { name: "ne;", characters: "\u{2a87}", - }); + })); } - if first_char == 'l' && try_read("oz;") { - return Some(CharRef { + if first_char == 'l' && try_read("oz;")? { + return Ok(Some(CharRef { name: "oz;", characters: "\u{25ca}", - }); + })); } - if first_char == 'l' && try_read("rm;") { - return Some(CharRef { + if first_char == 'l' && try_read("rm;")? { + return Ok(Some(CharRef { name: "rm;", characters: "\u{200e}", - }); + })); } - if first_char == 'l' && try_read("sh;") { - return Some(CharRef { + if first_char == 'l' && try_read("sh;")? { + return Ok(Some(CharRef { name: "sh;", characters: "\u{21b0}", - }); + })); } - if first_char == 'm' && try_read("acr") { - return Some(CharRef { + if first_char == 'm' && try_read("acr")? { + return Ok(Some(CharRef { name: "acr", characters: "\u{af}", - }); + })); } - if first_char == 'm' && try_read("ap;") { - return Some(CharRef { + if first_char == 'm' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{21a6}", - }); + })); } - if first_char == 'm' && try_read("cy;") { - return Some(CharRef { + if first_char == 'm' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43c}", - }); + })); } - if first_char == 'm' && try_read("fr;") { - return Some(CharRef { + if first_char == 'm' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52a}", - }); + })); } - if first_char == 'm' && try_read("ho;") { - return Some(CharRef { + if first_char == 'm' && try_read("ho;")? { + return Ok(Some(CharRef { name: "ho;", characters: "\u{2127}", - }); + })); } - if first_char == 'm' && try_read("id;") { - return Some(CharRef { + if first_char == 'm' && try_read("id;")? { + return Ok(Some(CharRef { name: "id;", characters: "\u{2223}", - }); + })); } - if first_char == 'n' && try_read("Gg;") { - return Some(CharRef { + if first_char == 'n' && try_read("Gg;")? { + return Ok(Some(CharRef { name: "Gg;", characters: "\u{22d9}\u{338}", - }); + })); } - if first_char == 'n' && try_read("Gt;") { - return Some(CharRef { + if first_char == 'n' && try_read("Gt;")? { + return Ok(Some(CharRef { name: "Gt;", characters: "\u{226b}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("Ll;") { - return Some(CharRef { + if first_char == 'n' && try_read("Ll;")? { + return Ok(Some(CharRef { name: "Ll;", characters: "\u{22d8}\u{338}", - }); + })); } - if first_char == 'n' && try_read("Lt;") { - return Some(CharRef { + if first_char == 'n' && try_read("Lt;")? { + return Ok(Some(CharRef { name: "Lt;", characters: "\u{226a}\u{20d2}", - }); + })); } - if first_char == 'n' && try_read("ap;") { - return Some(CharRef { + if first_char == 'n' && try_read("ap;")? { + return Ok(Some(CharRef { name: "ap;", characters: "\u{2249}", - }); + })); } - if first_char == 'n' && try_read("bsp") { - return Some(CharRef { + if first_char == 'n' && try_read("bsp")? { + return Ok(Some(CharRef { name: "bsp", characters: "\u{a0}", - }); + })); } - if first_char == 'n' && try_read("cy;") { - return Some(CharRef { + if first_char == 'n' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43d}", - }); + })); } - if first_char == 'n' && try_read("fr;") { - return Some(CharRef { + if first_char == 'n' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52b}", - }); + })); } - if first_char == 'n' && try_read("gE;") { - return Some(CharRef { + if first_char == 'n' && try_read("gE;")? { + return Ok(Some(CharRef { name: "gE;", characters: "\u{2267}\u{338}", - }); + })); } - if first_char == 'n' && try_read("ge;") { - return Some(CharRef { + if first_char == 'n' && try_read("ge;")? { + return Ok(Some(CharRef { name: "ge;", characters: "\u{2271}", - }); + })); } - if first_char == 'n' && try_read("gt;") { - return Some(CharRef { + if first_char == 'n' && try_read("gt;")? { + return Ok(Some(CharRef { name: "gt;", characters: "\u{226f}", - }); + })); } - if first_char == 'n' && try_read("is;") { - return Some(CharRef { + if first_char == 'n' && try_read("is;")? { + return Ok(Some(CharRef { name: "is;", characters: "\u{22fc}", - }); + })); } - if first_char == 'n' && try_read("iv;") { - return Some(CharRef { + if first_char == 'n' && try_read("iv;")? { + return Ok(Some(CharRef { name: "iv;", characters: "\u{220b}", - }); + })); } - if first_char == 'n' && try_read("lE;") { - return Some(CharRef { + if first_char == 'n' && try_read("lE;")? { + return Ok(Some(CharRef { name: "lE;", characters: "\u{2266}\u{338}", - }); + })); } - if first_char == 'n' && try_read("le;") { - return Some(CharRef { + if first_char == 'n' && try_read("le;")? { + return Ok(Some(CharRef { name: "le;", characters: "\u{2270}", - }); + })); } - if first_char == 'n' && try_read("lt;") { - return Some(CharRef { + if first_char == 'n' && try_read("lt;")? { + return Ok(Some(CharRef { name: "lt;", characters: "\u{226e}", - }); + })); } - if first_char == 'n' && try_read("ot;") { - return Some(CharRef { + if first_char == 'n' && try_read("ot;")? { + return Ok(Some(CharRef { name: "ot;", characters: "\u{ac}", - }); + })); } - if first_char == 'n' && try_read("pr;") { - return Some(CharRef { + if first_char == 'n' && try_read("pr;")? { + return Ok(Some(CharRef { name: "pr;", characters: "\u{2280}", - }); + })); } - if first_char == 'n' && try_read("sc;") { - return Some(CharRef { + if first_char == 'n' && try_read("sc;")? { + return Ok(Some(CharRef { name: "sc;", characters: "\u{2281}", - }); + })); } - if first_char == 'n' && try_read("um;") { - return Some(CharRef { + if first_char == 'n' && try_read("um;")? { + return Ok(Some(CharRef { name: "um;", characters: "\u{23}", - }); + })); } - if first_char == 'o' && try_read("cy;") { - return Some(CharRef { + if first_char == 'o' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43e}", - }); + })); } - if first_char == 'o' && try_read("fr;") { - return Some(CharRef { + if first_char == 'o' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52c}", - }); + })); } - if first_char == 'o' && try_read("gt;") { - return Some(CharRef { + if first_char == 'o' && try_read("gt;")? { + return Ok(Some(CharRef { name: "gt;", characters: "\u{29c1}", - }); + })); } - if first_char == 'o' && try_read("hm;") { - return Some(CharRef { + if first_char == 'o' && try_read("hm;")? { + return Ok(Some(CharRef { name: "hm;", characters: "\u{3a9}", - }); + })); } - if first_char == 'o' && try_read("lt;") { - return Some(CharRef { + if first_char == 'o' && try_read("lt;")? { + return Ok(Some(CharRef { name: "lt;", characters: "\u{29c0}", - }); + })); } - if first_char == 'o' && try_read("rd;") { - return Some(CharRef { + if first_char == 'o' && try_read("rd;")? { + return Ok(Some(CharRef { name: "rd;", characters: "\u{2a5d}", - }); + })); } - if first_char == 'o' && try_read("rdf") { - return Some(CharRef { + if first_char == 'o' && try_read("rdf")? { + return Ok(Some(CharRef { name: "rdf", characters: "\u{aa}", - }); + })); } - if first_char == 'o' && try_read("rdm") { - return Some(CharRef { + if first_char == 'o' && try_read("rdm")? { + return Ok(Some(CharRef { name: "rdm", characters: "\u{ba}", - }); + })); } - if first_char == 'o' && try_read("rv;") { - return Some(CharRef { + if first_char == 'o' && try_read("rv;")? { + return Ok(Some(CharRef { name: "rv;", characters: "\u{2a5b}", - }); + })); } - if first_char == 'o' && try_read("uml") { - return Some(CharRef { + if first_char == 'o' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{f6}", - }); + })); } - if first_char == 'p' && try_read("ar;") { - return Some(CharRef { + if first_char == 'p' && try_read("ar;")? { + return Ok(Some(CharRef { name: "ar;", characters: "\u{2225}", - }); + })); } - if first_char == 'p' && try_read("ara") { - return Some(CharRef { + if first_char == 'p' && try_read("ara")? { + return Ok(Some(CharRef { name: "ara", characters: "\u{b6}", - }); + })); } - if first_char == 'p' && try_read("cy;") { - return Some(CharRef { + if first_char == 'p' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{43f}", - }); + })); } - if first_char == 'p' && try_read("fr;") { - return Some(CharRef { + if first_char == 'p' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52d}", - }); + })); } - if first_char == 'p' && try_read("hi;") { - return Some(CharRef { + if first_char == 'p' && try_read("hi;")? { + return Ok(Some(CharRef { name: "hi;", characters: "\u{3c6}", - }); + })); } - if first_char == 'p' && try_read("iv;") { - return Some(CharRef { + if first_char == 'p' && try_read("iv;")? { + return Ok(Some(CharRef { name: "iv;", characters: "\u{3d6}", - }); + })); } - if first_char == 'p' && try_read("rE;") { - return Some(CharRef { + if first_char == 'p' && try_read("rE;")? { + return Ok(Some(CharRef { name: "rE;", characters: "\u{2ab3}", - }); + })); } - if first_char == 'p' && try_read("re;") { - return Some(CharRef { + if first_char == 'p' && try_read("re;")? { + return Ok(Some(CharRef { name: "re;", characters: "\u{2aaf}", - }); + })); } - if first_char == 'p' && try_read("si;") { - return Some(CharRef { + if first_char == 'p' && try_read("si;")? { + return Ok(Some(CharRef { name: "si;", characters: "\u{3c8}", - }); + })); } - if first_char == 'q' && try_read("fr;") { - return Some(CharRef { + if first_char == 'q' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52e}", - }); + })); } - if first_char == 'q' && try_read("uot") { - return Some(CharRef { + if first_char == 'q' && try_read("uot")? { + return Ok(Some(CharRef { name: "uot", characters: "\u{22}", - }); + })); } - if first_char == 'r' && try_read("cy;") { - return Some(CharRef { + if first_char == 'r' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{440}", - }); + })); } - if first_char == 'r' && try_read("eg;") { - return Some(CharRef { + if first_char == 'r' && try_read("eg;")? { + return Ok(Some(CharRef { name: "eg;", characters: "\u{ae}", - }); + })); } - if first_char == 'r' && try_read("fr;") { - return Some(CharRef { + if first_char == 'r' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d52f}", - }); + })); } - if first_char == 'r' && try_read("ho;") { - return Some(CharRef { + if first_char == 'r' && try_read("ho;")? { + return Ok(Some(CharRef { name: "ho;", characters: "\u{3c1}", - }); + })); } - if first_char == 'r' && try_read("lm;") { - return Some(CharRef { + if first_char == 'r' && try_read("lm;")? { + return Ok(Some(CharRef { name: "lm;", characters: "\u{200f}", - }); + })); } - if first_char == 'r' && try_read("sh;") { - return Some(CharRef { + if first_char == 'r' && try_read("sh;")? { + return Ok(Some(CharRef { name: "sh;", characters: "\u{21b1}", - }); + })); } - if first_char == 's' && try_read("cE;") { - return Some(CharRef { + if first_char == 's' && try_read("cE;")? { + return Ok(Some(CharRef { name: "cE;", characters: "\u{2ab4}", - }); + })); } - if first_char == 's' && try_read("ce;") { - return Some(CharRef { + if first_char == 's' && try_read("ce;")? { + return Ok(Some(CharRef { name: "ce;", characters: "\u{2ab0}", - }); + })); } - if first_char == 's' && try_read("cy;") { - return Some(CharRef { + if first_char == 's' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{441}", - }); + })); } - if first_char == 's' && try_read("ect") { - return Some(CharRef { + if first_char == 's' && try_read("ect")? { + return Ok(Some(CharRef { name: "ect", characters: "\u{a7}", - }); + })); } - if first_char == 's' && try_read("fr;") { - return Some(CharRef { + if first_char == 's' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d530}", - }); + })); } - if first_char == 's' && try_read("hy;") { - return Some(CharRef { + if first_char == 's' && try_read("hy;")? { + return Ok(Some(CharRef { name: "hy;", characters: "\u{ad}", - }); + })); } - if first_char == 's' && try_read("im;") { - return Some(CharRef { + if first_char == 's' && try_read("im;")? { + return Ok(Some(CharRef { name: "im;", characters: "\u{223c}", - }); + })); } - if first_char == 's' && try_read("mt;") { - return Some(CharRef { + if first_char == 's' && try_read("mt;")? { + return Ok(Some(CharRef { name: "mt;", characters: "\u{2aaa}", - }); + })); } - if first_char == 's' && try_read("ol;") { - return Some(CharRef { + if first_char == 's' && try_read("ol;")? { + return Ok(Some(CharRef { name: "ol;", characters: "\u{2f}", - }); + })); } - if first_char == 's' && try_read("qu;") { - return Some(CharRef { + if first_char == 's' && try_read("qu;")? { + return Ok(Some(CharRef { name: "qu;", characters: "\u{25a1}", - }); + })); } - if first_char == 's' && try_read("ub;") { - return Some(CharRef { + if first_char == 's' && try_read("ub;")? { + return Ok(Some(CharRef { name: "ub;", characters: "\u{2282}", - }); + })); } - if first_char == 's' && try_read("um;") { - return Some(CharRef { + if first_char == 's' && try_read("um;")? { + return Ok(Some(CharRef { name: "um;", characters: "\u{2211}", - }); + })); } - if first_char == 's' && try_read("up1") { - return Some(CharRef { + if first_char == 's' && try_read("up1")? { + return Ok(Some(CharRef { name: "up1", characters: "\u{b9}", - }); + })); } - if first_char == 's' && try_read("up2") { - return Some(CharRef { + if first_char == 's' && try_read("up2")? { + return Ok(Some(CharRef { name: "up2", characters: "\u{b2}", - }); + })); } - if first_char == 's' && try_read("up3") { - return Some(CharRef { + if first_char == 's' && try_read("up3")? { + return Ok(Some(CharRef { name: "up3", characters: "\u{b3}", - }); + })); } - if first_char == 's' && try_read("up;") { - return Some(CharRef { + if first_char == 's' && try_read("up;")? { + return Ok(Some(CharRef { name: "up;", characters: "\u{2283}", - }); + })); } - if first_char == 't' && try_read("au;") { - return Some(CharRef { + if first_char == 't' && try_read("au;")? { + return Ok(Some(CharRef { name: "au;", characters: "\u{3c4}", - }); + })); } - if first_char == 't' && try_read("cy;") { - return Some(CharRef { + if first_char == 't' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{442}", - }); + })); } - if first_char == 't' && try_read("fr;") { - return Some(CharRef { + if first_char == 't' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d531}", - }); + })); } - if first_char == 't' && try_read("op;") { - return Some(CharRef { + if first_char == 't' && try_read("op;")? { + return Ok(Some(CharRef { name: "op;", characters: "\u{22a4}", - }); + })); } - if first_char == 'u' && try_read("cy;") { - return Some(CharRef { + if first_char == 'u' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{443}", - }); + })); } - if first_char == 'u' && try_read("fr;") { - return Some(CharRef { + if first_char == 'u' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d532}", - }); + })); } - if first_char == 'u' && try_read("ml;") { - return Some(CharRef { + if first_char == 'u' && try_read("ml;")? { + return Ok(Some(CharRef { name: "ml;", characters: "\u{a8}", - }); + })); } - if first_char == 'u' && try_read("uml") { - return Some(CharRef { + if first_char == 'u' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{fc}", - }); + })); } - if first_char == 'v' && try_read("cy;") { - return Some(CharRef { + if first_char == 'v' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{432}", - }); + })); } - if first_char == 'v' && try_read("ee;") { - return Some(CharRef { + if first_char == 'v' && try_read("ee;")? { + return Ok(Some(CharRef { name: "ee;", characters: "\u{2228}", - }); + })); } - if first_char == 'v' && try_read("fr;") { - return Some(CharRef { + if first_char == 'v' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d533}", - }); + })); } - if first_char == 'w' && try_read("fr;") { - return Some(CharRef { + if first_char == 'w' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d534}", - }); + })); } - if first_char == 'x' && try_read("fr;") { - return Some(CharRef { + if first_char == 'x' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d535}", - }); + })); } - if first_char == 'y' && try_read("cy;") { - return Some(CharRef { + if first_char == 'y' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{44b}", - }); + })); } - if first_char == 'y' && try_read("en;") { - return Some(CharRef { + if first_char == 'y' && try_read("en;")? { + return Ok(Some(CharRef { name: "en;", characters: "\u{a5}", - }); + })); } - if first_char == 'y' && try_read("fr;") { - return Some(CharRef { + if first_char == 'y' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d536}", - }); + })); } - if first_char == 'y' && try_read("uml") { - return Some(CharRef { + if first_char == 'y' && try_read("uml")? { + return Ok(Some(CharRef { name: "uml", characters: "\u{ff}", - }); + })); } - if first_char == 'z' && try_read("cy;") { - return Some(CharRef { + if first_char == 'z' && try_read("cy;")? { + return Ok(Some(CharRef { name: "cy;", characters: "\u{437}", - }); + })); } - if first_char == 'z' && try_read("fr;") { - return Some(CharRef { + if first_char == 'z' && try_read("fr;")? { + return Ok(Some(CharRef { name: "fr;", characters: "\u{1d537}", - }); + })); } - if first_char == 'z' && try_read("wj;") { - return Some(CharRef { + if first_char == 'z' && try_read("wj;")? { + return Ok(Some(CharRef { name: "wj;", characters: "\u{200d}", - }); + })); } - if first_char == 'A' && try_read("MP") { - return Some(CharRef { + if first_char == 'A' && try_read("MP")? { + return Ok(Some(CharRef { name: "MP", characters: "\u{26}", - }); + })); } - if first_char == 'D' && try_read("D;") { - return Some(CharRef { + if first_char == 'D' && try_read("D;")? { + return Ok(Some(CharRef { name: "D;", characters: "\u{2145}", - }); + })); } - if first_char == 'E' && try_read("TH") { - return Some(CharRef { + if first_char == 'E' && try_read("TH")? { + return Ok(Some(CharRef { name: "TH", characters: "\u{d0}", - }); + })); } - if first_char == 'G' && try_read("T;") { - return Some(CharRef { + if first_char == 'G' && try_read("T;")? { + return Ok(Some(CharRef { name: "T;", characters: "\u{3e}", - }); + })); } - if first_char == 'G' && try_read("g;") { - return Some(CharRef { + if first_char == 'G' && try_read("g;")? { + return Ok(Some(CharRef { name: "g;", characters: "\u{22d9}", - }); + })); } - if first_char == 'G' && try_read("t;") { - return Some(CharRef { + if first_char == 'G' && try_read("t;")? { + return Ok(Some(CharRef { name: "t;", characters: "\u{226b}", - }); + })); } - if first_char == 'I' && try_read("m;") { - return Some(CharRef { + if first_char == 'I' && try_read("m;")? { + return Ok(Some(CharRef { name: "m;", characters: "\u{2111}", - }); + })); } - if first_char == 'L' && try_read("T;") { - return Some(CharRef { + if first_char == 'L' && try_read("T;")? { + return Ok(Some(CharRef { name: "T;", characters: "\u{3c}", - }); + })); } - if first_char == 'L' && try_read("l;") { - return Some(CharRef { + if first_char == 'L' && try_read("l;")? { + return Ok(Some(CharRef { name: "l;", characters: "\u{22d8}", - }); + })); } - if first_char == 'L' && try_read("t;") { - return Some(CharRef { + if first_char == 'L' && try_read("t;")? { + return Ok(Some(CharRef { name: "t;", characters: "\u{226a}", - }); + })); } - if first_char == 'M' && try_read("u;") { - return Some(CharRef { + if first_char == 'M' && try_read("u;")? { + return Ok(Some(CharRef { name: "u;", characters: "\u{39c}", - }); + })); } - if first_char == 'N' && try_read("u;") { - return Some(CharRef { + if first_char == 'N' && try_read("u;")? { + return Ok(Some(CharRef { name: "u;", characters: "\u{39d}", - }); + })); } - if first_char == 'O' && try_read("r;") { - return Some(CharRef { + if first_char == 'O' && try_read("r;")? { + return Ok(Some(CharRef { name: "r;", characters: "\u{2a54}", - }); + })); } - if first_char == 'P' && try_read("i;") { - return Some(CharRef { + if first_char == 'P' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{3a0}", - }); + })); } - if first_char == 'P' && try_read("r;") { - return Some(CharRef { + if first_char == 'P' && try_read("r;")? { + return Ok(Some(CharRef { name: "r;", characters: "\u{2abb}", - }); + })); } - if first_char == 'R' && try_read("EG") { - return Some(CharRef { + if first_char == 'R' && try_read("EG")? { + return Ok(Some(CharRef { name: "EG", characters: "\u{ae}", - }); + })); } - if first_char == 'R' && try_read("e;") { - return Some(CharRef { + if first_char == 'R' && try_read("e;")? { + return Ok(Some(CharRef { name: "e;", characters: "\u{211c}", - }); + })); } - if first_char == 'S' && try_read("c;") { - return Some(CharRef { + if first_char == 'S' && try_read("c;")? { + return Ok(Some(CharRef { name: "c;", characters: "\u{2abc}", - }); + })); } - if first_char == 'X' && try_read("i;") { - return Some(CharRef { + if first_char == 'X' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{39e}", - }); + })); } - if first_char == 'a' && try_read("c;") { - return Some(CharRef { + if first_char == 'a' && try_read("c;")? { + return Ok(Some(CharRef { name: "c;", characters: "\u{223e}", - }); + })); } - if first_char == 'a' && try_read("f;") { - return Some(CharRef { + if first_char == 'a' && try_read("f;")? { + return Ok(Some(CharRef { name: "f;", characters: "\u{2061}", - }); + })); } - if first_char == 'a' && try_read("mp") { - return Some(CharRef { + if first_char == 'a' && try_read("mp")? { + return Ok(Some(CharRef { name: "mp", characters: "\u{26}", - }); + })); } - if first_char == 'a' && try_read("p;") { - return Some(CharRef { + if first_char == 'a' && try_read("p;")? { + return Ok(Some(CharRef { name: "p;", characters: "\u{2248}", - }); + })); } - if first_char == 'd' && try_read("d;") { - return Some(CharRef { + if first_char == 'd' && try_read("d;")? { + return Ok(Some(CharRef { name: "d;", characters: "\u{2146}", - }); + })); } - if first_char == 'd' && try_read("eg") { - return Some(CharRef { + if first_char == 'd' && try_read("eg")? { + return Ok(Some(CharRef { name: "eg", characters: "\u{b0}", - }); + })); } - if first_char == 'e' && try_read("e;") { - return Some(CharRef { + if first_char == 'e' && try_read("e;")? { + return Ok(Some(CharRef { name: "e;", characters: "\u{2147}", - }); + })); } - if first_char == 'e' && try_read("g;") { - return Some(CharRef { + if first_char == 'e' && try_read("g;")? { + return Ok(Some(CharRef { name: "g;", characters: "\u{2a9a}", - }); + })); } - if first_char == 'e' && try_read("l;") { - return Some(CharRef { + if first_char == 'e' && try_read("l;")? { + return Ok(Some(CharRef { name: "l;", characters: "\u{2a99}", - }); + })); } - if first_char == 'e' && try_read("th") { - return Some(CharRef { + if first_char == 'e' && try_read("th")? { + return Ok(Some(CharRef { name: "th", characters: "\u{f0}", - }); + })); } - if first_char == 'g' && try_read("E;") { - return Some(CharRef { + if first_char == 'g' && try_read("E;")? { + return Ok(Some(CharRef { name: "E;", characters: "\u{2267}", - }); + })); } - if first_char == 'g' && try_read("e;") { - return Some(CharRef { + if first_char == 'g' && try_read("e;")? { + return Ok(Some(CharRef { name: "e;", characters: "\u{2265}", - }); + })); } - if first_char == 'g' && try_read("g;") { - return Some(CharRef { + if first_char == 'g' && try_read("g;")? { + return Ok(Some(CharRef { name: "g;", characters: "\u{226b}", - }); + })); } - if first_char == 'g' && try_read("l;") { - return Some(CharRef { + if first_char == 'g' && try_read("l;")? { + return Ok(Some(CharRef { name: "l;", characters: "\u{2277}", - }); + })); } - if first_char == 'g' && try_read("t;") { - return Some(CharRef { + if first_char == 'g' && try_read("t;")? { + return Ok(Some(CharRef { name: "t;", characters: "\u{3e}", - }); + })); } - if first_char == 'i' && try_read("c;") { - return Some(CharRef { + if first_char == 'i' && try_read("c;")? { + return Ok(Some(CharRef { name: "c;", characters: "\u{2063}", - }); + })); } - if first_char == 'i' && try_read("i;") { - return Some(CharRef { + if first_char == 'i' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{2148}", - }); + })); } - if first_char == 'i' && try_read("n;") { - return Some(CharRef { + if first_char == 'i' && try_read("n;")? { + return Ok(Some(CharRef { name: "n;", characters: "\u{2208}", - }); + })); } - if first_char == 'i' && try_read("t;") { - return Some(CharRef { + if first_char == 'i' && try_read("t;")? { + return Ok(Some(CharRef { name: "t;", characters: "\u{2062}", - }); + })); } - if first_char == 'l' && try_read("E;") { - return Some(CharRef { + if first_char == 'l' && try_read("E;")? { + return Ok(Some(CharRef { name: "E;", characters: "\u{2266}", - }); + })); } - if first_char == 'l' && try_read("e;") { - return Some(CharRef { + if first_char == 'l' && try_read("e;")? { + return Ok(Some(CharRef { name: "e;", characters: "\u{2264}", - }); + })); } - if first_char == 'l' && try_read("g;") { - return Some(CharRef { + if first_char == 'l' && try_read("g;")? { + return Ok(Some(CharRef { name: "g;", characters: "\u{2276}", - }); + })); } - if first_char == 'l' && try_read("l;") { - return Some(CharRef { + if first_char == 'l' && try_read("l;")? { + return Ok(Some(CharRef { name: "l;", characters: "\u{226a}", - }); + })); } - if first_char == 'l' && try_read("t;") { - return Some(CharRef { + if first_char == 'l' && try_read("t;")? { + return Ok(Some(CharRef { name: "t;", characters: "\u{3c}", - }); + })); } - if first_char == 'm' && try_read("p;") { - return Some(CharRef { + if first_char == 'm' && try_read("p;")? { + return Ok(Some(CharRef { name: "p;", characters: "\u{2213}", - }); + })); } - if first_char == 'm' && try_read("u;") { - return Some(CharRef { + if first_char == 'm' && try_read("u;")? { + return Ok(Some(CharRef { name: "u;", characters: "\u{3bc}", - }); + })); } - if first_char == 'n' && try_read("e;") { - return Some(CharRef { + if first_char == 'n' && try_read("e;")? { + return Ok(Some(CharRef { name: "e;", characters: "\u{2260}", - }); + })); } - if first_char == 'n' && try_read("i;") { - return Some(CharRef { + if first_char == 'n' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{220b}", - }); + })); } - if first_char == 'n' && try_read("ot") { - return Some(CharRef { + if first_char == 'n' && try_read("ot")? { + return Ok(Some(CharRef { name: "ot", characters: "\u{ac}", - }); + })); } - if first_char == 'n' && try_read("u;") { - return Some(CharRef { + if first_char == 'n' && try_read("u;")? { + return Ok(Some(CharRef { name: "u;", characters: "\u{3bd}", - }); + })); } - if first_char == 'o' && try_read("S;") { - return Some(CharRef { + if first_char == 'o' && try_read("S;")? { + return Ok(Some(CharRef { name: "S;", characters: "\u{24c8}", - }); + })); } - if first_char == 'o' && try_read("r;") { - return Some(CharRef { + if first_char == 'o' && try_read("r;")? { + return Ok(Some(CharRef { name: "r;", characters: "\u{2228}", - }); + })); } - if first_char == 'p' && try_read("i;") { - return Some(CharRef { + if first_char == 'p' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{3c0}", - }); + })); } - if first_char == 'p' && try_read("m;") { - return Some(CharRef { + if first_char == 'p' && try_read("m;")? { + return Ok(Some(CharRef { name: "m;", characters: "\u{b1}", - }); + })); } - if first_char == 'p' && try_read("r;") { - return Some(CharRef { + if first_char == 'p' && try_read("r;")? { + return Ok(Some(CharRef { name: "r;", characters: "\u{227a}", - }); + })); } - if first_char == 'r' && try_read("eg") { - return Some(CharRef { + if first_char == 'r' && try_read("eg")? { + return Ok(Some(CharRef { name: "eg", characters: "\u{ae}", - }); + })); } - if first_char == 'r' && try_read("x;") { - return Some(CharRef { + if first_char == 'r' && try_read("x;")? { + return Ok(Some(CharRef { name: "x;", characters: "\u{211e}", - }); + })); } - if first_char == 's' && try_read("c;") { - return Some(CharRef { + if first_char == 's' && try_read("c;")? { + return Ok(Some(CharRef { name: "c;", characters: "\u{227b}", - }); + })); } - if first_char == 's' && try_read("hy") { - return Some(CharRef { + if first_char == 's' && try_read("hy")? { + return Ok(Some(CharRef { name: "hy", characters: "\u{ad}", - }); + })); } - if first_char == 'u' && try_read("ml") { - return Some(CharRef { + if first_char == 'u' && try_read("ml")? { + return Ok(Some(CharRef { name: "ml", characters: "\u{a8}", - }); + })); } - if first_char == 'w' && try_read("p;") { - return Some(CharRef { + if first_char == 'w' && try_read("p;")? { + return Ok(Some(CharRef { name: "p;", characters: "\u{2118}", - }); + })); } - if first_char == 'w' && try_read("r;") { - return Some(CharRef { + if first_char == 'w' && try_read("r;")? { + return Ok(Some(CharRef { name: "r;", characters: "\u{2240}", - }); + })); } - if first_char == 'x' && try_read("i;") { - return Some(CharRef { + if first_char == 'x' && try_read("i;")? { + return Ok(Some(CharRef { name: "i;", characters: "\u{3be}", - }); + })); } - if first_char == 'y' && try_read("en") { - return Some(CharRef { + if first_char == 'y' && try_read("en")? { + return Ok(Some(CharRef { name: "en", characters: "\u{a5}", - }); + })); } - if first_char == 'G' && try_read("T") { - return Some(CharRef { + if first_char == 'G' && try_read("T")? { + return Ok(Some(CharRef { name: "T", characters: "\u{3e}", - }); + })); } - if first_char == 'L' && try_read("T") { - return Some(CharRef { + if first_char == 'L' && try_read("T")? { + return Ok(Some(CharRef { name: "T", characters: "\u{3c}", - }); + })); } - if first_char == 'g' && try_read("t") { - return Some(CharRef { + if first_char == 'g' && try_read("t")? { + return Ok(Some(CharRef { name: "t", characters: "\u{3e}", - }); + })); } - if first_char == 'l' && try_read("t") { - return Some(CharRef { + if first_char == 'l' && try_read("t")? { + return Ok(Some(CharRef { name: "t", characters: "\u{3c}", - }); + })); } - None + Ok(None) } @@ -7,6 +7,7 @@ mod emitter; mod entities; mod error; mod machine; +mod never; mod reader; #[cfg(feature = "integration-tests")] @@ -19,9 +20,9 @@ use machine::{ }; pub use emitter::{DefaultEmitter, Doctype, Emitter, EndTag, StartTag, Token}; -pub use reader::{Readable, Reader, StringReader}; - pub use error::Error; +pub use never::Never; +pub use reader::{BufReadReader, Readable, Reader, StringReader}; macro_rules! ctostr { ($c:expr) => { @@ -152,15 +153,20 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { } } - fn read_char(&mut self) -> Option<char> { - let (mut c, reconsumed) = match self.to_reconsume.pop() { - Some(c) => (c?, true), - None => (self.reader.read_char()?, false), + fn read_char(&mut self) -> Result<Option<char>, R::Error> { + let (c_res, reconsumed) = match self.to_reconsume.pop() { + Some(c) => (Ok(c), true), + None => (self.reader.read_char(), false), + }; + + let mut c = match c_res { + Ok(Some(c)) => c, + res => return res, }; if c == '\r' { c = '\n'; - let c2 = self.reader.read_char(); + let c2 = self.reader.read_char()?; if c2 != Some('\n') { self.unread_char(c2); } @@ -170,11 +176,11 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.validate_char(c); } - Some(c) + Ok(Some(c)) } #[inline] - fn try_read_string(&mut self, s: &str, case_sensitive: bool) -> bool { + fn try_read_string(&mut self, s: &str, case_sensitive: bool) -> Result<bool, R::Error> { debug_assert!(!s.is_empty()); debug_assert!(self.to_reconsume.is_empty()); self.reader.try_read_string(s, case_sensitive) @@ -200,10 +206,10 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { } } - fn next_input_character(&mut self) -> Option<char> { - let rv = self.read_char(); + fn next_input_character(&mut self) -> Result<Option<char>, R::Error> { + let rv = self.read_char()?; self.unread_char(rv); - rv + Ok(rv) } fn flush_buffer_characters(&mut self) { @@ -211,7 +217,7 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.temporary_buffer.clear(); } - fn consume(&mut self) -> ControlToken { + fn consume(&mut self) -> Result<ControlToken, R::Error> { macro_rules! mutate_character_reference { (* $mul:literal + $x:ident - $sub:literal) => { match self @@ -229,106 +235,106 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { } match self.state { - State::Data => match self.read_char() { + State::Data => match self.read_char()? { Some('&') => { self.return_state = Some(self.state); self.state = State::CharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::TagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\0"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } - None => ControlToken::Eof, + None => Ok(ControlToken::Eof), }, - State::RcData => match self.read_char() { + State::RcData => match self.read_char()? { Some('&') => { self.return_state = Some(State::RcData); self.state = State::CharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::RcDataLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } - None => ControlToken::Eof, + None => Ok(ControlToken::Eof), }, - State::RawText => match self.read_char() { + State::RawText => match self.read_char()? { Some('<') => { self.state = State::RawTextLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } - None => ControlToken::Eof, + None => Ok(ControlToken::Eof), }, - State::ScriptData => match self.read_char() { + State::ScriptData => match self.read_char()? { Some('<') => { self.state = State::ScriptDataLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } - None => ControlToken::Eof, + None => Ok(ControlToken::Eof), }, - State::PlainText => match self.read_char() { + State::PlainText => match self.read_char()? { Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } - None => ControlToken::Eof, + None => Ok(ControlToken::Eof), }, - State::TagOpen => match self.read_char() { + State::TagOpen => match self.read_char()? { Some('!') => { self.state = State::MarkupDeclarationOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') => { self.state = State::EndTagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_start_tag(); self.state = State::TagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c @ Some('?') => { self.emitter @@ -336,12 +342,12 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.init_comment(); self.state = State::BogusComment; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofBeforeTagName); self.emitter.emit_string("<"); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -349,25 +355,25 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.state = State::Data; self.emitter.emit_string("<"); self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::EndTagOpen => match self.read_char() { + State::EndTagOpen => match self.read_char()? { Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_end_tag(); self.state = State::TagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::MissingEndTagName); self.state = State::Data; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofBeforeTagName); self.emitter.emit_string("</"); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter @@ -375,82 +381,82 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.init_comment(); self.state = State::BogusComment; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::TagName => match self.read_char() { + State::TagName => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_tag_name("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.push_tag_name(ctostr!(x.to_ascii_lowercase())); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } }, - State::RcDataLessThanSign => match self.read_char() { + State::RcDataLessThanSign => match self.read_char()? { Some('/') => { self.temporary_buffer.clear(); self.state = State::RcDataEndTagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("<"); self.state = State::RcData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::RcDataEndTagOpen => match self.read_char() { + State::RcDataEndTagOpen => match self.read_char()? { Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_end_tag(); self.state = State::RcDataEndTagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.state = State::RcData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::RcDataEndTagName => match self.read_char() { + State::RcDataEndTagName => match self.read_char()? { Some(whitespace_pat!()) if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.emitter.push_tag_name(ctostr!(x.to_ascii_lowercase())); self.temporary_buffer.push(x); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); @@ -458,54 +464,54 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.state = State::RcData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::RawTextLessThanSign => match self.read_char() { + State::RawTextLessThanSign => match self.read_char()? { Some('/') => { self.temporary_buffer.clear(); self.state = State::RawTextEndTagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("<"); self.state = State::RawText; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::RawTextEndTagOpen => match self.read_char() { + State::RawTextEndTagOpen => match self.read_char()? { Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_end_tag(); self.state = State::RawTextEndTagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.state = State::RawText; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::RawTextEndTagName => match self.read_char() { + State::RawTextEndTagName => match self.read_char()? { Some(whitespace_pat!()) if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.emitter.push_tag_name(ctostr!(x.to_ascii_lowercase())); self.temporary_buffer.push(x); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); @@ -513,237 +519,237 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.state = State::RawText; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataLessThanSign => match self.read_char() { + State::ScriptDataLessThanSign => match self.read_char()? { Some('/') => { self.temporary_buffer.clear(); self.state = State::ScriptDataEndTagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('!') => { self.state = State::ScriptDataEscapeStart; self.emitter.emit_string("<!"); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("<"); self.state = State::Data; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEndTagOpen => match self.read_char() { + State::ScriptDataEndTagOpen => match self.read_char()? { Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_end_tag(); self.state = State::ScriptDataEndTagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.state = State::ScriptData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEndTagName => match self.read_char() { + State::ScriptDataEndTagName => match self.read_char()? { Some(whitespace_pat!()) if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.emitter.push_tag_name(ctostr!(x.to_ascii_lowercase())); self.temporary_buffer.push(x.to_ascii_lowercase()); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.flush_buffer_characters(); self.state = State::Data; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapeStart => match self.read_char() { + State::ScriptDataEscapeStart => match self.read_char()? { Some('-') => { self.state = State::ScriptDataEscapeStartDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::ScriptData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapeStartDash => match self.read_char() { + State::ScriptDataEscapeStartDash => match self.read_char()? { Some('-') => { self.state = State::ScriptDataEscapedDashDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::ScriptData; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscaped => match self.read_char() { + State::ScriptDataEscaped => match self.read_char()? { Some('-') => { self.state = State::ScriptDataEscapedDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::ScriptDataEscapedLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapedDash => match self.read_char() { + State::ScriptDataEscapedDash => match self.read_char()? { Some('-') => { self.state = State::ScriptDataEscapedDashDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::ScriptDataEscapedLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.state = State::ScriptDataEscaped; self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.state = State::ScriptDataEscaped; self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapedDashDash => match self.read_char() { + State::ScriptDataEscapedDashDash => match self.read_char()? { Some('-') => { self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::ScriptDataEscapedLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::ScriptData; self.emitter.emit_string(">"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.state = State::ScriptDataEscaped; self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.state = State::ScriptDataEscaped; self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapedLessThanSign => match self.read_char() { + State::ScriptDataEscapedLessThanSign => match self.read_char()? { Some('/') => { self.temporary_buffer.clear(); self.state = State::ScriptDataEscapedEndTagOpen; - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.temporary_buffer.clear(); self.emitter.emit_string("<"); self.state = State::ScriptDataDoubleEscapeStart; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("<"); self.state = State::ScriptDataEscaped; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapedEndTagOpen => match self.read_char() { + State::ScriptDataEscapedEndTagOpen => match self.read_char()? { Some(x) if x.is_ascii_alphabetic() => { self.emitter.init_end_tag(); self.state = State::ScriptDataEscapedEndTagName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.unread_char(c); self.state = State::ScriptDataEscaped; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataEscapedEndTagName => match self.read_char() { + State::ScriptDataEscapedEndTagName => match self.read_char()? { Some(whitespace_pat!()) if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') if self.emitter.current_is_appropriate_end_tag_token() => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.emitter.push_tag_name(ctostr!(x.to_ascii_lowercase())); self.temporary_buffer.push(x); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("</"); self.flush_buffer_characters(); self.state = State::ScriptDataEscaped; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscapeStart => match self.read_char() { + State::ScriptDataDoubleEscapeStart => match self.read_char()? { Some(x @ whitespace_pat!() | x @ '/' | x @ '>') => { if self.temporary_buffer == "script" { self.state = State::ScriptDataDoubleEscaped; @@ -751,119 +757,119 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.state = State::ScriptDataEscaped; } self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.temporary_buffer.push(x.to_ascii_lowercase()); self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::ScriptDataEscaped; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscaped => match self.read_char() { + State::ScriptDataDoubleEscaped => match self.read_char()? { Some('-') => { self.state = State::ScriptDataDoubleEscapedDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::ScriptDataDoubleEscapedLessThanSign; self.emitter.emit_string("<"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscapedDash => match self.read_char() { + State::ScriptDataDoubleEscapedDash => match self.read_char()? { Some('-') => { self.state = State::ScriptDataDoubleEscapedDashDash; self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.state = State::ScriptDataDoubleEscapedLessThanSign; self.emitter.emit_string("<"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.state = State::ScriptDataDoubleEscaped; self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.state = State::ScriptDataDoubleEscaped; self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscapedDashDash => match self.read_char() { + State::ScriptDataDoubleEscapedDashDash => match self.read_char()? { Some('-') => { self.emitter.emit_string("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.emitter.emit_string("<"); self.state = State::ScriptDataDoubleEscapedLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_string(">"); self.state = State::ScriptData; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.state = State::ScriptDataDoubleEscaped; self.emitter.emit_string("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter .emit_error(Error::EofInScriptHtmlCommentLikeText); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.state = State::ScriptDataDoubleEscaped; self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscapedLessThanSign => match self.read_char() { + State::ScriptDataDoubleEscapedLessThanSign => match self.read_char()? { Some('/') => { self.temporary_buffer.clear(); self.state = State::ScriptDataDoubleEscapeEnd; self.emitter.emit_string("/"); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::ScriptDataDoubleEscaped; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::ScriptDataDoubleEscapeEnd => match self.read_char() { + State::ScriptDataDoubleEscapeEnd => match self.read_char()? { Some(x @ whitespace_pat!() | x @ '/' | x @ '>') => { if self.temporary_buffer == "script" { self.state = State::ScriptDataEscaped; @@ -872,25 +878,25 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { } self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) if x.is_ascii_alphabetic() => { self.temporary_buffer.push(x.to_ascii_lowercase()); self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::ScriptDataDoubleEscaped; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BeforeAttributeName => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BeforeAttributeName => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), c @ Some('/' | '>') | c @ None => { self.state = State::AfterAttributeName; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('=') => { self.emitter @@ -898,249 +904,249 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.init_attribute(); self.emitter.push_attribute_name("="); self.state = State::AttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.init_attribute(); self.state = State::AttributeName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AttributeName => match self.read_char() { + State::AttributeName => match self.read_char()? { c @ Some(whitespace_pat!() | '/' | '>') | c @ None => { self.state = State::AfterAttributeName; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('=') => { self.state = State::BeforeAttributeValue; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_attribute_name("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x @ '"' | x @ '\'' | x @ '<') => { self.emitter .emit_error(Error::UnexpectedCharacterInAttributeName); self.emitter .push_attribute_name(ctostr!(x.to_ascii_lowercase())); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter .push_attribute_name(ctostr!(x.to_ascii_lowercase())); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterAttributeName => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::AfterAttributeName => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('/') => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('=') => { self.state = State::BeforeAttributeValue; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.init_attribute(); self.state = State::AttributeName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BeforeAttributeValue => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BeforeAttributeValue => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('"') => { self.state = State::AttributeValueDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.state = State::AttributeValueSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::MissingAttributeValue); self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.state = State::AttributeValueUnquoted; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AttributeValueDoubleQuoted => match self.read_char() { + State::AttributeValueDoubleQuoted => match self.read_char()? { Some('"') => { self.state = State::AfterAttributeValueQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('&') => { self.return_state = Some(State::AttributeValueDoubleQuoted); self.state = State::CharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_attribute_value("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_attribute_value(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AttributeValueSingleQuoted => match self.read_char() { + State::AttributeValueSingleQuoted => match self.read_char()? { Some('\'') => { self.state = State::AfterAttributeValueQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('&') => { self.return_state = Some(State::AttributeValueSingleQuoted); self.state = State::CharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_attribute_value("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_attribute_value(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AttributeValueUnquoted => match self.read_char() { + State::AttributeValueUnquoted => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('&') => { self.return_state = Some(State::AttributeValueUnquoted); self.state = State::CharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_attribute_value("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x @ '"' | x @ '\'' | x @ '<' | x @ '=' | x @ '\u{60}') => { self.emitter .emit_error(Error::UnexpectedCharacterInUnquotedAttributeValue); self.emitter.push_attribute_value(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_attribute_value(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterAttributeValueQuoted => match self.read_char() { + State::AfterAttributeValueQuoted => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeAttributeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('/') => { self.state = State::SelfClosingStartTag; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter .emit_error(Error::MissingWhitespaceBetweenAttributes); self.state = State::BeforeAttributeName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::SelfClosingStartTag => match self.read_char() { + State::SelfClosingStartTag => match self.read_char()? { Some('>') => { self.emitter.set_self_closing(); self.state = State::Data; self.emitter.emit_current_tag(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInTag); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.emit_error(Error::UnexpectedSolidusInTag); self.state = State::BeforeAttributeName; self.unread_char(Some(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BogusComment => match self.read_char() { + State::BogusComment => match self.read_char()? { Some('>') => { self.state = State::Data; self.emitter.emit_current_comment(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_comment("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x) => { self.emitter.push_comment(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::MarkupDeclarationOpen => match self.read_char() { - Some('-') if self.try_read_string("-", true) => { + State::MarkupDeclarationOpen => match self.read_char()? { + Some('-') if self.try_read_string("-", true)? => { self.emitter.init_comment(); self.state = State::CommentStart; - ControlToken::Continue + Ok(ControlToken::Continue) } - Some('d' | 'D') if self.try_read_string("octype", false) => { + Some('d' | 'D') if self.try_read_string("octype", false)? => { self.state = State::Doctype; - ControlToken::Continue + Ok(ControlToken::Continue) } - Some('[') if self.try_read_string("CDATA[", true) => { + Some('[') if self.try_read_string("CDATA[", true)? => { // missing: check for adjusted current element: we don't have an element stack // at all // @@ -1152,194 +1158,194 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.init_comment(); self.emitter.push_comment("[CDATA["); self.state = State::BogusComment; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_error(Error::IncorrectlyOpenedComment); self.emitter.init_comment(); self.state = State::BogusComment; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentStart => match self.read_char() { + State::CommentStart => match self.read_char()? { Some('-') => { self.state = State::CommentStartDash; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::AbruptClosingOfEmptyComment); self.state = State::Data; self.emitter.emit_current_comment(); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentStartDash => match self.read_char() { + State::CommentStartDash => match self.read_char()? { Some('-') => { self.state = State::CommentEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::AbruptClosingOfEmptyComment); self.state = State::Data; self.emitter.emit_current_comment(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInComment); self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter.push_comment("-"); self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::Comment => match self.read_char() { + State::Comment => match self.read_char()? { Some('<') => { self.emitter.push_comment("<"); self.state = State::CommentLessThanSign; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('-') => { self.state = State::CommentEndDash; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_comment("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInComment); self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_comment(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentLessThanSign => match self.read_char() { + State::CommentLessThanSign => match self.read_char()? { Some('!') => { self.emitter.push_comment("!"); self.state = State::CommentLessThanSignBang; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('<') => { self.emitter.push_comment("<"); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentLessThanSignBang => match self.read_char() { + State::CommentLessThanSignBang => match self.read_char()? { Some('-') => { self.state = State::CommentLessThanSignBangDash; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentLessThanSignBangDash => match self.read_char() { + State::CommentLessThanSignBangDash => match self.read_char()? { Some('-') => { self.state = State::CommentLessThanSignBangDashDash; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = State::CommentEndDash; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentLessThanSignBangDashDash => match self.read_char() { + State::CommentLessThanSignBangDashDash => match self.read_char()? { c @ Some('>') | c @ None => { self.unread_char(c); self.state = State::CommentEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_error(Error::NestedComment); self.unread_char(c); self.state = State::CommentEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentEndDash => match self.read_char() { + State::CommentEndDash => match self.read_char()? { Some('-') => { self.state = State::CommentEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInComment); self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } c => { self.emitter.push_comment("-"); self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentEnd => match self.read_char() { + State::CommentEnd => match self.read_char()? { Some('>') => { self.state = State::Data; self.emitter.emit_current_comment(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('!') => { self.state = State::CommentEndBang; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('-') => { self.emitter.push_comment("-"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInComment); self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter.push_comment("-"); self.emitter.push_comment("-"); self.unread_char(c); self.state = State::Comment; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CommentEndBang => match self.read_char() { + State::CommentEndBang => match self.read_char()? { Some('-') => { self.emitter.push_comment("-"); self.emitter.push_comment("-"); self.emitter.push_comment("!"); self.state = State::CommentEndDash; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::IncorrectlyClosedComment); self.state = State::Data; self.emitter.emit_current_comment(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInComment); self.emitter.emit_current_comment(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter.push_comment("-"); @@ -1347,42 +1353,42 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.push_comment("!"); self.state = State::Comment; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::Doctype => match self.read_char() { + State::Doctype => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeDoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } c @ Some('>') => { self.unread_char(c); self.state = State::BeforeDoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.init_doctype(); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter .emit_error(Error::MissingWhitespaceBeforeDoctypeName); self.unread_char(c); self.state = State::BeforeDoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BeforeDoctypeName => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BeforeDoctypeName => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.init_doctype(); self.emitter.push_doctype_name("\u{fffd}"); self.state = State::DoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter.emit_error(Error::MissingDoctypeName); @@ -1390,70 +1396,70 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.init_doctype(); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.init_doctype(); self.emitter .push_doctype_name(ctostr!(x.to_ascii_lowercase())); self.state = State::DoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DoctypeName => match self.read_char() { + State::DoctypeName => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::AfterDoctypeName; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_doctype_name("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter .push_doctype_name(ctostr!(x.to_ascii_lowercase())); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterDoctypeName => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::AfterDoctypeName => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } - Some('p' | 'P') if self.try_read_string("ublic", false) => { + Some('p' | 'P') if self.try_read_string("ublic", false)? => { self.state = State::AfterDoctypePublicKeyword; - ControlToken::Continue + Ok(ControlToken::Continue) } - Some('s' | 'S') if self.try_read_string("ystem", false) => { + Some('s' | 'S') if self.try_read_string("ystem", false)? => { self.state = State::AfterDoctypeSystemKeyword; - ControlToken::Continue + Ok(ControlToken::Continue) } c @ Some(_) => { self.emitter @@ -1461,27 +1467,27 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.unread_char(c); self.state = State::BogusDoctype; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterDoctypePublicKeyword => match self.read_char() { + State::AfterDoctypePublicKeyword => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeDoctypePublicIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('"') => { self.emitter .emit_error(Error::MissingWhitespaceAfterDoctypePublicKeyword); self.emitter.set_doctype_public_identifier(""); self.state = State::DoctypePublicIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter .emit_error(Error::MissingWhitespaceAfterDoctypePublicKeyword); self.emitter.set_doctype_public_identifier(""); self.state = State::DoctypePublicIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1489,13 +1495,13 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1503,20 +1509,20 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.unread_char(c); self.state = State::BogusDoctype; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BeforeDoctypePublicIdentifier => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BeforeDoctypePublicIdentifier => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('"') => { self.emitter.set_doctype_public_identifier(""); self.state = State::DoctypePublicIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter.set_doctype_public_identifier(""); self.state = State::DoctypePublicIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1524,13 +1530,13 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1538,18 +1544,18 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.unread_char(c); self.state = State::BogusDoctype; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DoctypePublicIdentifierDoubleQuoted => match self.read_char() { + State::DoctypePublicIdentifierDoubleQuoted => match self.read_char()? { Some('"') => { self.state = State::AfterDoctypePublicIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_doctype_public_identifier("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1557,28 +1563,28 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_doctype_public_identifier(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DoctypePublicIdentifierSingleQuoted => match self.read_char() { + State::DoctypePublicIdentifierSingleQuoted => match self.read_char()? { Some('\'') => { self.state = State::AfterDoctypePublicIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_doctype_public_identifier("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1586,28 +1592,28 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_doctype_public_identifier(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterDoctypePublicIdentifier => match self.read_char() { + State::AfterDoctypePublicIdentifier => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BetweenDoctypePublicAndSystemIdentifiers; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('"') => { self.emitter.emit_error( @@ -1615,7 +1621,7 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { ); self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter.emit_error( @@ -1623,13 +1629,13 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { ); self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1637,31 +1643,31 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.unread_char(c); self.state = State::BogusDoctype; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BetweenDoctypePublicAndSystemIdentifiers => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BetweenDoctypePublicAndSystemIdentifiers => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('"') => { self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1669,27 +1675,27 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::BogusDoctype; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterDoctypeSystemKeyword => match self.read_char() { + State::AfterDoctypeSystemKeyword => match self.read_char()? { Some(whitespace_pat!()) => { self.state = State::BeforeDoctypeSystemIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('"') => { self.emitter .emit_error(Error::MissingWhitespaceAfterDoctypeSystemKeyword); self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter .emit_error(Error::MissingWhitespaceAfterDoctypeSystemKeyword); self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1697,13 +1703,13 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1711,20 +1717,20 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::BogusDoctype; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BeforeDoctypeSystemIdentifier => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::BeforeDoctypeSystemIdentifier => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('"') => { self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierDoubleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\'') => { self.emitter.set_doctype_system_identifier(""); self.state = State::DoctypeSystemIdentifierSingleQuoted; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1732,13 +1738,13 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter @@ -1746,18 +1752,18 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::BogusDoctype; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DoctypeSystemIdentifierDoubleQuoted => match self.read_char() { + State::DoctypeSystemIdentifierDoubleQuoted => match self.read_char()? { Some('"') => { self.state = State::AfterDoctypeSystemIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_doctype_system_identifier("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1765,28 +1771,28 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_doctype_system_identifier(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DoctypeSystemIdentifierSingleQuoted => match self.read_char() { + State::DoctypeSystemIdentifierSingleQuoted => match self.read_char()? { Some('\'') => { self.state = State::AfterDoctypeSystemIdentifier; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); self.emitter.push_doctype_system_identifier("\u{fffd}"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.emitter @@ -1794,144 +1800,144 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.set_force_quirks(); self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.push_doctype_system_identifier(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::AfterDoctypeSystemIdentifier => match self.read_char() { - Some(whitespace_pat!()) => ControlToken::Continue, + State::AfterDoctypeSystemIdentifier => match self.read_char()? { + Some(whitespace_pat!()) => Ok(ControlToken::Continue), Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInDoctype); self.emitter.set_force_quirks(); self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } c @ Some(_) => { self.emitter .emit_error(Error::UnexpectedCharacterAfterDoctypeSystemIdentifier); self.unread_char(c); self.state = State::BogusDoctype; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::BogusDoctype => match self.read_char() { + State::BogusDoctype => match self.read_char()? { Some('>') => { self.state = State::Data; self.emitter.emit_current_doctype(); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('\0') => { self.emitter.emit_error(Error::UnexpectedNullCharacter); - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_current_doctype(); - ControlToken::Eof + Ok(ControlToken::Eof) } - Some(_) => ControlToken::Continue, + Some(_) => Ok(ControlToken::Continue), }, - State::CdataSection => match self.read_char() { + State::CdataSection => match self.read_char()? { Some(']') => { self.state = State::CdataSectionBracket; - ControlToken::Continue + Ok(ControlToken::Continue) } None => { self.emitter.emit_error(Error::EofInCdata); - ControlToken::Eof + Ok(ControlToken::Eof) } Some(x) => { self.emitter.emit_string(ctostr!(x)); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CdataSectionBracket => match self.read_char() { + State::CdataSectionBracket => match self.read_char()? { Some(']') => { self.state = State::CdataSectionEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("]"); self.state = State::CdataSection; self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::CdataSectionEnd => match self.read_char() { + State::CdataSectionEnd => match self.read_char()? { Some(']') => { self.emitter.emit_string("]"); - ControlToken::Continue + Ok(ControlToken::Continue) } Some('>') => { self.state = State::Data; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter.emit_string("]]"); self.unread_char(c); self.state = State::CdataSection; - ControlToken::Continue + Ok(ControlToken::Continue) } }, State::CharacterReference => { self.temporary_buffer.clear(); self.temporary_buffer.push('&'); - match self.read_char() { + match self.read_char()? { Some(x) if x.is_ascii_alphanumeric() => { self.unread_char(Some(x)); self.state = State::NamedCharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } Some('#') => { self.temporary_buffer.push('#'); self.state = State::NumericCharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.flush_code_points_consumed_as_character_reference(); self.state = self.return_state.take().unwrap(); self.unread_char(c); - ControlToken::Continue + Ok(ControlToken::Continue) } } } State::NamedCharacterReference => { - let c = self.read_char(); + let c = self.read_char()?; + + let char_ref = match c { + Some(x) => entities::try_read_character_reference(x, |x| { + self.try_read_string(x, true) + })? + .map(|char_ref| (x, char_ref)), - let char_ref = c.and_then(|x| { - Some(( - x, - entities::try_read_character_reference(x, |x| { - self.try_read_string(x, true) - })?, - )) - }); + None => None, + }; if let Some((x, char_ref)) = char_ref { self.temporary_buffer.push(x); self.temporary_buffer.push_str(char_ref.name); let char_ref_name_last_character = char_ref.name.chars().last(); - let next_character = self.next_input_character(); + let next_character = self.next_input_character()?; if self.is_consumed_as_part_of_an_attribute() && char_ref_name_last_character != Some(';') && matches!(next_character, Some(x) if x == '=' || x.is_ascii_alphanumeric()) { self.flush_code_points_consumed_as_character_reference(); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } else { if char_ref_name_last_character != Some(';') { self.emitter @@ -1942,16 +1948,16 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.temporary_buffer.push_str(char_ref.characters); self.flush_code_points_consumed_as_character_reference(); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } } else { self.unread_char(c); self.flush_code_points_consumed_as_character_reference(); self.state = State::AmbiguousAmpersand; - ControlToken::Continue + Ok(ControlToken::Continue) } } - State::AmbiguousAmpersand => match self.read_char() { + State::AmbiguousAmpersand => match self.read_char()? { Some(x) if x.is_ascii_alphanumeric() => { if self.is_consumed_as_part_of_an_attribute() { self.emitter.push_attribute_value(ctostr!(x)); @@ -1959,41 +1965,41 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.emitter.emit_string(ctostr!(x)); } - ControlToken::Continue + Ok(ControlToken::Continue) } c @ Some(';') => { self.emitter .emit_error(Error::UnknownNamedCharacterReference); self.unread_char(c); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } }, State::NumericCharacterReference => { self.character_reference_code = 0; - match self.read_char() { + match self.read_char()? { Some(x @ 'x' | x @ 'X') => { self.temporary_buffer.push(x); self.state = State::HexadecimalCharacterReferenceStart; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.unread_char(c); self.state = State::DecimalCharacterReferenceStart; - ControlToken::Continue + Ok(ControlToken::Continue) } } } - State::HexadecimalCharacterReferenceStart => match self.read_char() { + State::HexadecimalCharacterReferenceStart => match self.read_char()? { c @ Some('0'..='9' | 'A'..='F' | 'a'..='f') => { self.unread_char(c); self.state = State::HexadecimalCharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter @@ -2001,14 +2007,14 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.flush_code_points_consumed_as_character_reference(); self.unread_char(c); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DecimalCharacterReferenceStart => match self.read_char() { + State::DecimalCharacterReferenceStart => match self.read_char()? { Some(x @ ascii_digit_pat!()) => { self.unread_char(Some(x)); self.state = State::DecimalCharacterReference; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter @@ -2016,49 +2022,49 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { self.flush_code_points_consumed_as_character_reference(); self.unread_char(c); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::HexadecimalCharacterReference => match self.read_char() { + State::HexadecimalCharacterReference => match self.read_char()? { Some(x @ ascii_digit_pat!()) => { mutate_character_reference!(*16 + x - 0x0030); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x @ 'A'..='F') => { mutate_character_reference!(*16 + x - 0x0037); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(x @ 'a'..='f') => { mutate_character_reference!(*16 + x - 0x0057); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(';') => { self.state = State::NumericCharacterReferenceEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter .emit_error(Error::MissingSemicolonAfterCharacterReference); self.unread_char(c); self.state = State::NumericCharacterReferenceEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } }, - State::DecimalCharacterReference => match self.read_char() { + State::DecimalCharacterReference => match self.read_char()? { Some(x @ ascii_digit_pat!()) => { mutate_character_reference!(*10 + x - 0x0030); - ControlToken::Continue + Ok(ControlToken::Continue) } Some(';') => { self.state = State::NumericCharacterReferenceEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } c => { self.emitter .emit_error(Error::MissingSemicolonAfterCharacterReference); self.unread_char(c); self.state = State::NumericCharacterReferenceEnd; - ControlToken::Continue + Ok(ControlToken::Continue) } }, State::NumericCharacterReferenceEnd => { @@ -2125,26 +2131,27 @@ impl<R: Reader, E: Emitter> Tokenizer<R, E> { .push(std::char::from_u32(self.character_reference_code).unwrap()); self.flush_code_points_consumed_as_character_reference(); self.state = self.return_state.take().unwrap(); - ControlToken::Continue + Ok(ControlToken::Continue) } } } } impl<R: Reader, E: Emitter> Iterator for Tokenizer<R, E> { - type Item = E::Token; + type Item = Result<E::Token, R::Error>; fn next(&mut self) -> Option<Self::Item> { loop { if let Some(token) = self.emitter.pop_token() { - break Some(token); + break Some(Ok(token)); } else if !self.eof { match self.consume() { - ControlToken::Continue => (), - ControlToken::Eof => { + Ok(ControlToken::Continue) => (), + Ok(ControlToken::Eof) => { self.eof = true; self.emitter.emit_eof(); } + Err(e) => break Some(Err(e)), } } else { break None; @@ -2152,3 +2159,29 @@ impl<R: Reader, E: Emitter> Iterator for Tokenizer<R, E> { } } } + +/// A kind of tokenizer that directly yields tokens when used as an iterator, so `Token` instead of +/// `Result<Token, _>`. +/// +/// This is the return value of [`Tokenizer::infallible`]. +pub struct InfallibleTokenizer<R: Reader<Error = Never>, E: Emitter>(Tokenizer<R, E>); + +impl<R: Reader<Error = Never>, E: Emitter> Tokenizer<R, E> { + /// Statically assert that this iterator is infallible. + /// + /// Call this to get rid of error handling when parsing HTML from strings. + pub fn infallible(self) -> InfallibleTokenizer<R, E> { + InfallibleTokenizer(self) + } +} + +impl<R: Reader<Error = Never>, E: Emitter> Iterator for InfallibleTokenizer<R, E> { + type Item = E::Token; + + fn next(&mut self) -> Option<Self::Item> { + match self.0.next()? { + Ok(token) => Some(token), + Err(e) => match e {}, + } + } +} diff --git a/src/never.rs b/src/never.rs new file mode 100644 index 0000000..b4bb371 --- /dev/null +++ b/src/never.rs @@ -0,0 +1,24 @@ +use std::error; +use std::fmt; + +/// Definition of an empty enum. +/// +/// This is used as the error type in situations where there can't be an error. A `Result<T, Never>` +/// can be safely unwrapped and the `unwrap()` may be optimized away entirely. +/// +/// This error is typically encountered when attempting to get tokens from the `Tokenizer`. Call +/// [`Tokenizer::infallible`] if you wish to avoid unwrapping those results yourself. +pub enum Never {} + +impl fmt::Display for Never { + fn fmt(&self, _: &mut fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { + match *self {} + } +} +impl fmt::Debug for Never { + fn fmt(&self, _: &mut fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { + match *self {} + } +} + +impl error::Error for Never {} diff --git a/src/reader.rs b/src/reader.rs index 7246129..b7a63b2 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1,12 +1,18 @@ +use crate::Never; +use std::io::{self, BufRead, BufReader, Read}; + /// An object that provides characters to the tokenizer. /// /// See [`crate::Tokenizer::new`] for more information. pub trait Reader { + /// The error returned by this reader. + type Error: std::error::Error; + /// Return a new character from the input stream. /// /// The input stream does **not** have to be preprocessed in any way, it can contain standalone /// surrogates and have inconsistent newlines. - fn read_char(&mut self) -> Option<char>; + fn read_char(&mut self) -> Result<Option<char>, Self::Error>; /// Attempt to read an entire string at once, either case-insensitively or not. /// @@ -18,7 +24,7 @@ pub trait Reader { /// /// If the next characters equal to `s`, this function consumes the respective characters from /// the input stream and returns `true`. If not, it does nothing and returns `false`. - fn try_read_string(&mut self, s: &str, case_sensitive: bool) -> bool; + fn try_read_string(&mut self, s: &str, case_sensitive: bool) -> Result<bool, Self::Error>; } /// An object that can be converted into a [`crate::Reader`]. @@ -43,6 +49,33 @@ impl<'a, R: 'a + Reader> Readable<'a> for R { /// A helper struct to seek forwards and backwards in strings. Used by the tokenizer to read HTML /// from strings. +/// +/// Example: +/// +/// ```rust +/// use std::fmt::Write; +/// use html5gum::{Tokenizer, Token}; +/// +/// let html = "<title >hello world</title>"; +/// let mut new_html = String::new(); +/// +/// for token in Tokenizer::new(html).infallible() { +/// match token { +/// Token::StartTag(tag) => { +/// write!(new_html, "<{}>", tag.name).unwrap(); +/// } +/// Token::String(hello_world) => { +/// write!(new_html, "{}", hello_world).unwrap(); +/// } +/// Token::EndTag(tag) => { +/// write!(new_html, "</{}>", tag.name).unwrap(); +/// } +/// _ => panic!("unexpected input"), +/// } +/// } +/// +/// assert_eq!(new_html, "<title>hello world</title>"); +/// ``` pub struct StringReader<'a> { input: &'a str, cursor: std::str::Chars<'a>, @@ -61,24 +94,29 @@ impl<'a> StringReader<'a> { } impl<'a> Reader for StringReader<'a> { - fn read_char(&mut self) -> Option<char> { - let c = self.cursor.next()?; + type Error = Never; + + fn read_char(&mut self) -> Result<Option<char>, Self::Error> { + let c = match self.cursor.next() { + Some(c) => c, + None => return Ok(None), + }; self.pos += c.len_utf8(); - Some(c) + Ok(Some(c)) } - fn try_read_string(&mut self, s1: &str, case_sensitive: bool) -> bool { + fn try_read_string(&mut self, s1: &str, case_sensitive: bool) -> Result<bool, Self::Error> { // we do not need to call validate_char here because `s` hopefully does not contain invalid // characters if let Some(s2) = self.input.get(self.pos..self.pos + s1.len()) { if s1 == s2 || (!case_sensitive && s1.eq_ignore_ascii_case(s2)) { self.pos += s1.len(); self.cursor = self.input[self.pos..].chars(); - return true; + return Ok(true); } } - false + Ok(false) } } @@ -97,3 +135,100 @@ impl<'a> Readable<'a> for &'a String { StringReader::new(self.as_str()) } } + +/// A [`BufReadReader`] can be used to construct a tokenizer from any type that implements +/// `BufRead`. +/// +/// Example: +/// +/// ```rust +/// use std::io::BufReader; +/// use std::fmt::Write; +/// use html5gum::{Token, BufReadReader, Tokenizer}; +/// +/// let tokenizer = Tokenizer::new(BufReader::new("<title>hello world</title>".as_bytes())); +/// // or alternatively: +/// // tokenizer = Tokenizer::new(BufReadReader::new(BufReader::new("...".as_bytes()))); +/// +/// let mut new_html = String::new(); +/// +/// for token in tokenizer { +/// let token = token.unwrap(); +/// +/// match token { +/// Token::StartTag(tag) => { +/// write!(new_html, "<{}>", tag.name).unwrap(); +/// } +/// Token::String(hello_world) => { +/// write!(new_html, "{}", hello_world).unwrap(); +/// } +/// Token::EndTag(tag) => { +/// write!(new_html, "</{}>", tag.name).unwrap(); +/// } +/// _ => panic!("unexpected input"), +/// } +/// +/// } +/// +/// assert_eq!(new_html, "<title>hello world</title>"); +/// ``` +pub struct BufReadReader<R: BufRead> { + line: String, + line_pos: usize, + reader: R, +} + +impl<R: BufRead> BufReadReader<R> { + /// Construct a new `BufReadReader` from any type that implements `BufRead`. + pub fn new(reader: R) -> Self { + BufReadReader { + line: String::new(), + line_pos: 0, + reader, + } + } + + #[inline] + fn get_remaining_line(&mut self) -> Result<&str, io::Error> { + if self.line_pos < self.line.len() { + return Ok(&self.line[self.line_pos..]); + } + + self.line.clear(); + self.line_pos = 0; + self.reader.read_line(&mut self.line)?; + Ok(&self.line) + } +} + +impl<R: BufRead> Reader for BufReadReader<R> { + type Error = io::Error; + + fn read_char(&mut self) -> Result<Option<char>, Self::Error> { + let rv = self.get_remaining_line()?.chars().next(); + self.line_pos += rv.map(char::len_utf8).unwrap_or(1); + Ok(rv) + } + + fn try_read_string(&mut self, s1: &str, case_sensitive: bool) -> Result<bool, Self::Error> { + debug_assert!(!s1.contains('\r')); + debug_assert!(!s1.contains('\n')); + + if let Some(s2) = self.get_remaining_line()?.get(..s1.len()) { + if s1 == s2 || (!case_sensitive && s1.eq_ignore_ascii_case(s2)) { + self.line_pos += s1.len(); + return Ok(true); + } + } + + Ok(false) + } +} + +impl<'a, R: Read + 'a> Readable<'a> for BufReader<R> { + type Reader = BufReadReader<BufReader<R>>; + + fn to_reader(self) -> Self::Reader { + BufReadReader::new(self) + } +} diff --git a/tests/test_html5lib.rs b/tests/test_html5lib.rs index 36f371a..a29cdc4 100644 --- a/tests/test_html5lib.rs +++ b/tests/test_html5lib.rs @@ -1,4 +1,4 @@ -use html5gum::{Doctype, EndTag, Error, Reader, StartTag, State, StringReader, Token, Tokenizer}; +use html5gum::{Doctype, EndTag, Error, Reader, StartTag, State, Token, Tokenizer}; use pretty_assertions::assert_eq; use serde::{de::Error as _, Deserialize}; use std::{collections::BTreeMap, fs::File, io::BufReader, path::Path}; @@ -230,9 +230,18 @@ fn run_test(fname: &str, test_i: usize, mut test: Test) { test_i, &test, state.0, - Tokenizer::<StringReader>::new(&test.input), + Tokenizer::new(&test.input), "string", ); + + run_test_inner( + fname, + test_i, + &test, + state.0, + Tokenizer::new(BufReader::new(test.input.as_bytes())), + "bufread", + ); } } @@ -256,6 +265,8 @@ fn run_test_inner<R: Reader>( let mut actual_errors = Vec::new(); for token in tokenizer { + let token = token.unwrap(); + if let Token::Error(e) = token { actual_errors.push(ParseError { code: ParseErrorInner(e), |