/[suikacvs]/markup/html/whatpm/What/HTML.pm
Suika

Diff of /markup/html/whatpm/What/HTML.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by wakaba, Mon Apr 30 11:45:24 2007 UTC revision 1.6 by wakaba, Mon Apr 30 12:06:12 2007 UTC
# Line 18  my $permitted_slash_tag_name = { Line 18  my $permitted_slash_tag_name = {
18    input => 1,    input => 1,
19  };  };
20    
21    my $entity_char = {
22      AElig => "\x{00C6}",
23      Aacute => "\x{00C1}",
24      Acirc => "\x{00C2}",
25      Agrave => "\x{00C0}",
26      Alpha => "\x{0391}",
27      Aring => "\x{00C5}",
28      Atilde => "\x{00C3}",
29      Auml => "\x{00C4}",
30      Beta => "\x{0392}",
31      Ccedil => "\x{00C7}",
32      Chi => "\x{03A7}",
33      Dagger => "\x{2021}",
34      Delta => "\x{0394}",
35      ETH => "\x{00D0}",
36      Eacute => "\x{00C9}",
37      Ecirc => "\x{00CA}",
38      Egrave => "\x{00C8}",
39      Epsilon => "\x{0395}",
40      Eta => "\x{0397}",
41      Euml => "\x{00CB}",
42      Gamma => "\x{0393}",
43      Iacute => "\x{00CD}",
44      Icirc => "\x{00CE}",
45      Igrave => "\x{00CC}",
46      Iota => "\x{0399}",
47      Iuml => "\x{00CF}",
48      Kappa => "\x{039A}",
49      Lambda => "\x{039B}",
50      Mu => "\x{039C}",
51      Ntilde => "\x{00D1}",
52      Nu => "\x{039D}",
53      OElig => "\x{0152}",
54      Oacute => "\x{00D3}",
55      Ocirc => "\x{00D4}",
56      Ograve => "\x{00D2}",
57      Omega => "\x{03A9}",
58      Omicron => "\x{039F}",
59      Oslash => "\x{00D8}",
60      Otilde => "\x{00D5}",
61      Ouml => "\x{00D6}",
62      Phi => "\x{03A6}",
63      Pi => "\x{03A0}",
64      Prime => "\x{2033}",
65      Psi => "\x{03A8}",
66      Rho => "\x{03A1}",
67      Scaron => "\x{0160}",
68      Sigma => "\x{03A3}",
69      THORN => "\x{00DE}",
70      Tau => "\x{03A4}",
71      Theta => "\x{0398}",
72      Uacute => "\x{00DA}",
73      Ucirc => "\x{00DB}",
74      Ugrave => "\x{00D9}",
75      Upsilon => "\x{03A5}",
76      Uuml => "\x{00DC}",
77      Xi => "\x{039E}",
78      Yacute => "\x{00DD}",
79      Yuml => "\x{0178}",
80      Zeta => "\x{0396}",
81      aacute => "\x{00E1}",
82      acirc => "\x{00E2}",
83      acute => "\x{00B4}",
84      aelig => "\x{00E6}",
85      agrave => "\x{00E0}",
86      alefsym => "\x{2135}",
87      alpha => "\x{03B1}",
88      amp => "\x{0026}",
89      AMP => "\x{0026}",
90      and => "\x{2227}",
91      ang => "\x{2220}",
92      apos => "\x{0027}",
93      aring => "\x{00E5}",
94      asymp => "\x{2248}",
95      atilde => "\x{00E3}",
96      auml => "\x{00E4}",
97      bdquo => "\x{201E}",
98      beta => "\x{03B2}",
99      brvbar => "\x{00A6}",
100      bull => "\x{2022}",
101      cap => "\x{2229}",
102      ccedil => "\x{00E7}",
103      cedil => "\x{00B8}",
104      cent => "\x{00A2}",
105      chi => "\x{03C7}",
106      circ => "\x{02C6}",
107      clubs => "\x{2663}",
108      cong => "\x{2245}",
109      copy => "\x{00A9}",
110      COPY => "\x{00A9}",
111      crarr => "\x{21B5}",
112      cup => "\x{222A}",
113      curren => "\x{00A4}",
114      dArr => "\x{21D3}",
115      dagger => "\x{2020}",
116      darr => "\x{2193}",
117      deg => "\x{00B0}",
118      delta => "\x{03B4}",
119      diams => "\x{2666}",
120      divide => "\x{00F7}",
121      eacute => "\x{00E9}",
122      ecirc => "\x{00EA}",
123      egrave => "\x{00E8}",
124      empty => "\x{2205}",
125      emsp => "\x{2003}",
126      ensp => "\x{2002}",
127      epsilon => "\x{03B5}",
128      equiv => "\x{2261}",
129      eta => "\x{03B7}",
130      eth => "\x{00F0}",
131      euml => "\x{00EB}",
132      euro => "\x{20AC}",
133      exist => "\x{2203}",
134      fnof => "\x{0192}",
135      forall => "\x{2200}",
136      frac12 => "\x{00BD}",
137      frac14 => "\x{00BC}",
138      frac34 => "\x{00BE}",
139      frasl => "\x{2044}",
140      gamma => "\x{03B3}",
141      ge => "\x{2265}",
142      gt => "\x{003E}",
143      GT => "\x{003E}",
144      hArr => "\x{21D4}",
145      harr => "\x{2194}",
146      hearts => "\x{2665}",
147      hellip => "\x{2026}",
148      iacute => "\x{00ED}",
149      icirc => "\x{00EE}",
150      iexcl => "\x{00A1}",
151      igrave => "\x{00EC}",
152      image => "\x{2111}",
153      infin => "\x{221E}",
154      int => "\x{222B}",
155      iota => "\x{03B9}",
156      iquest => "\x{00BF}",
157      isin => "\x{2208}",
158      iuml => "\x{00EF}",
159      kappa => "\x{03BA}",
160      lArr => "\x{21D0}",
161      lambda => "\x{03BB}",
162      lang => "\x{2329}",
163      laquo => "\x{00AB}",
164      larr => "\x{2190}",
165      lceil => "\x{2308}",
166      ldquo => "\x{201C}",
167      le => "\x{2264}",
168      lfloor => "\x{230A}",
169      lowast => "\x{2217}",
170      loz => "\x{25CA}",
171      lrm => "\x{200E}",
172      lsaquo => "\x{2039}",
173      lsquo => "\x{2018}",
174      lt => "\x{003C}",
175      LT => "\x{003C}",
176      macr => "\x{00AF}",
177      mdash => "\x{2014}",
178      micro => "\x{00B5}",
179      middot => "\x{00B7}",
180      minus => "\x{2212}",
181      mu => "\x{03BC}",
182      nabla => "\x{2207}",
183      nbsp => "\x{00A0}",
184      ndash => "\x{2013}",
185      ne => "\x{2260}",
186      ni => "\x{220B}",
187      not => "\x{00AC}",
188      notin => "\x{2209}",
189      nsub => "\x{2284}",
190      ntilde => "\x{00F1}",
191      nu => "\x{03BD}",
192      oacute => "\x{00F3}",
193      ocirc => "\x{00F4}",
194      oelig => "\x{0153}",
195      ograve => "\x{00F2}",
196      oline => "\x{203E}",
197      omega => "\x{03C9}",
198      omicron => "\x{03BF}",
199      oplus => "\x{2295}",
200      or => "\x{2228}",
201      ordf => "\x{00AA}",
202      ordm => "\x{00BA}",
203      oslash => "\x{00F8}",
204      otilde => "\x{00F5}",
205      otimes => "\x{2297}",
206      ouml => "\x{00F6}",
207      para => "\x{00B6}",
208      part => "\x{2202}",
209      permil => "\x{2030}",
210      perp => "\x{22A5}",
211      phi => "\x{03C6}",
212      pi => "\x{03C0}",
213      piv => "\x{03D6}",
214      plusmn => "\x{00B1}",
215      pound => "\x{00A3}",
216      prime => "\x{2032}",
217      prod => "\x{220F}",
218      prop => "\x{221D}",
219      psi => "\x{03C8}",
220      quot => "\x{0022}",
221      QUOT => "\x{0022}",
222      rArr => "\x{21D2}",
223      radic => "\x{221A}",
224      rang => "\x{232A}",
225      raquo => "\x{00BB}",
226      rarr => "\x{2192}",
227      rceil => "\x{2309}",
228      rdquo => "\x{201D}",
229      real => "\x{211C}",
230      reg => "\x{00AE}",
231      REG => "\x{00AE}",
232      rfloor => "\x{230B}",
233      rho => "\x{03C1}",
234      rlm => "\x{200F}",
235      rsaquo => "\x{203A}",
236      rsquo => "\x{2019}",
237      sbquo => "\x{201A}",
238      scaron => "\x{0161}",
239      sdot => "\x{22C5}",
240      sect => "\x{00A7}",
241      shy => "\x{00AD}",
242      sigma => "\x{03C3}",
243      sigmaf => "\x{03C2}",
244      sim => "\x{223C}",
245      spades => "\x{2660}",
246      sub => "\x{2282}",
247      sube => "\x{2286}",
248      sum => "\x{2211}",
249      sup => "\x{2283}",
250      sup1 => "\x{00B9}",
251      sup2 => "\x{00B2}",
252      sup3 => "\x{00B3}",
253      supe => "\x{2287}",
254      szlig => "\x{00DF}",
255      tau => "\x{03C4}",
256      there4 => "\x{2234}",
257      theta => "\x{03B8}",
258      thetasym => "\x{03D1}",
259      thinsp => "\x{2009}",
260      thorn => "\x{00FE}",
261      tilde => "\x{02DC}",
262      times => "\x{00D7}",
263      trade => "\x{2122}",
264      uArr => "\x{21D1}",
265      uacute => "\x{00FA}",
266      uarr => "\x{2191}",
267      ucirc => "\x{00FB}",
268      ugrave => "\x{00F9}",
269      uml => "\x{00A8}",
270      upsih => "\x{03D2}",
271      upsilon => "\x{03C5}",
272      uuml => "\x{00FC}",
273      weierp => "\x{2118}",
274      xi => "\x{03BE}",
275      yacute => "\x{00FD}",
276      yen => "\x{00A5}",
277      yuml => "\x{00FF}",
278      zeta => "\x{03B6}",
279      zwj => "\x{200D}",
280      zwnj => "\x{200C}",
281    };
282    
283  my $special_category = {  my $special_category = {
284    address => 1, area => 1, base => 1, basefont => 1, bgsound => 1,    address => 1, area => 1, base => 1, basefont => 1, bgsound => 1,
285    blockquote => 1, body => 1, br => 1, center => 1, col => 1, colgroup => 1,    blockquote => 1, body => 1, br => 1, center => 1, col => 1, colgroup => 1,
# Line 1634  sub _get_next_token ($) { Line 1896  sub _get_next_token ($) {
1896    
1897  sub _tokenize_attempt_to_consume_an_entity ($) {  sub _tokenize_attempt_to_consume_an_entity ($) {
1898    my $self = shift;    my $self = shift;
   my $r;  
1899        
1900    if ($self->{next_input_character} == 0x0023) { # #    if ($self->{next_input_character} == 0x0023) { # #
1901            
# Line 1680  sub _tokenize_attempt_to_consume_an_enti Line 1941  sub _tokenize_attempt_to_consume_an_enti
1941            $self->{parse_error}->();            $self->{parse_error}->();
1942            $self->{next_input_character} = 0x0023; # #            $self->{next_input_character} = 0x0023; # #
1943            unshift @{$self->{char}},  ($x_char);            unshift @{$self->{char}},  ($x_char);
1944            last X; ## nothing is returned            return undef;
1945          } elsif ($self->{next_input_character} == 0x003B) { # ;          } elsif ($self->{next_input_character} == 0x003B) { # ;
1946                        
1947        if (@{$self->{char}}) {        if (@{$self->{char}}) {
# Line 1699  sub _tokenize_attempt_to_consume_an_enti Line 1960  sub _tokenize_attempt_to_consume_an_enti
1960            ## ISSUE: Why this is not an error?            ## ISSUE: Why this is not an error?
1961          }          }
1962    
1963          $r = {type => 'character', data => chr $num};          return {type => 'character', data => chr $num};
1964        } # X        } # X
1965      } elsif (0x0030 <= $self->{next_input_character} and      } elsif (0x0030 <= $self->{next_input_character} and
1966               $self->{next_input_character} <= 0x0039) { # 0..9               $self->{next_input_character} <= 0x0039) { # 0..9
# Line 1744  sub _tokenize_attempt_to_consume_an_enti Line 2005  sub _tokenize_attempt_to_consume_an_enti
2005          ## ISSUE: Why this is not an error?          ## ISSUE: Why this is not an error?
2006        }        }
2007                
2008        $r = {type => 'character', data => chr $code};        return {type => 'character', data => chr $code};
2009      } else {      } else {
2010        $self->{parse_error}->();        $self->{parse_error}->();
2011        unshift @{$self->{char}},  ($self->{next_input_character});        unshift @{$self->{char}},  ($self->{next_input_character});
2012        $self->{next_input_character} = 0x0023; # #        $self->{next_input_character} = 0x0023; # #
2013          return undef;
2014      }      }
2015        } elsif ($self->{next_input_character} == 65) { # A    } elsif ((0x0041 <= $self->{next_input_character} and
2016                      $self->{next_input_character} <= 0x005A) or
2017        if (@{$self->{char}}) {             (0x0061 <= $self->{next_input_character} and
2018          $self->{next_input_character} = shift @{$self->{char}};              $self->{next_input_character} <= 0x007A)) {
2019        } else {      my $entity_name = chr $self->{next_input_character};
2020          $self->{set_next_input_character}->($self);      
       }  
     
       if ($self->{next_input_character} == 69) { # E  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00C6}>}; # AElig  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (69, 108, 105, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (69, 108, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (69, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C1}>}; # Aacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 65;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00C2}>}; # Acirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C0}>}; # Agrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 65;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 104) { # h  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0391}>}; # Alpha  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 112, 104, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 112, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00C5}>}; # Aring  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 105, 110, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 105, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C3}>}; # Atilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 65;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 65;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00C4}>}; # Auml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 65;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } elsif ($self->{next_input_character} == 77) { # M  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 80) { # P  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{0026}>}; # AMP  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (77, $self->{next_input_character});  
           $self->{next_input_character} = 65;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 65;  
       }  
     } elsif ($self->{next_input_character} == 66) { # B  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0392}>}; # Beta  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 116, $self->{next_input_character});  
             $self->{next_input_character} = 66;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 66;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 66;  
       }  
     } elsif ($self->{next_input_character} == 67) { # C  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 105) { # i  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 108) { # l  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C7}>}; # Ccedil  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (99, 101, 100, 105, $self->{next_input_character});  
                 $self->{next_input_character} = 67;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 101, 100, $self->{next_input_character});  
               $self->{next_input_character} = 67;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 101, $self->{next_input_character});  
             $self->{next_input_character} = 67;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 67;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03A7}>}; # Chi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 67;  
         }  
       } elsif ($self->{next_input_character} == 79) { # O  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 80) { # P  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 89) { # Y  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00A9}>}; # COPY  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (79, 80, $self->{next_input_character});  
             $self->{next_input_character} = 67;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (79, $self->{next_input_character});  
           $self->{next_input_character} = 67;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 67;  
       }  
     } elsif ($self->{next_input_character} == 68) { # D  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 114) { # r  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2021}>}; # Dagger  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 103, 103, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 68;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 103, 103, $self->{next_input_character});  
               $self->{next_input_character} = 68;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 103, $self->{next_input_character});  
             $self->{next_input_character} = 68;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 68;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0394}>}; # Delta  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 108, 116, $self->{next_input_character});  
               $self->{next_input_character} = 68;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 108, $self->{next_input_character});  
             $self->{next_input_character} = 68;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 68;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 68;  
       }  
     } elsif ($self->{next_input_character} == 69) { # E  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 84) { # T  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 72) { # H  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00D0}>}; # ETH  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (84, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C9}>}; # Eacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 69;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 69;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 69;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00CA}>}; # Ecirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 69;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 69;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00C8}>}; # Egrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 69;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 69;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 69;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{0395}>}; # Epsilon  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (112, 115, 105, 108, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 69;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (112, 115, 105, 108, $self->{next_input_character});  
                 $self->{next_input_character} = 69;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 115, 105, $self->{next_input_character});  
               $self->{next_input_character} = 69;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 115, $self->{next_input_character});  
             $self->{next_input_character} = 69;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{0397}>}; # Eta  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00CB}>}; # Euml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 69;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 69;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 69;  
       }  
     } elsif ($self->{next_input_character} == 71) { # G  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0393}>}; # Gamma  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 109, 109, $self->{next_input_character});  
               $self->{next_input_character} = 71;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 109, $self->{next_input_character});  
             $self->{next_input_character} = 71;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 71;  
         }  
       } elsif ($self->{next_input_character} == 84) { # T  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{003E}>}; # GT  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 71;  
       }  
     } elsif ($self->{next_input_character} == 73) { # I  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00CD}>}; # Iacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 73;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 73;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 73;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 73;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00CE}>}; # Icirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 73;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 73;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 73;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00CC}>}; # Igrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 73;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 73;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 73;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 73;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0399}>}; # Iota  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 116, $self->{next_input_character});  
             $self->{next_input_character} = 73;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 73;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00CF}>}; # Iuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 73;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 73;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 73;  
       }  
     } elsif ($self->{next_input_character} == 75) { # K  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{039A}>}; # Kappa  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 112, 112, $self->{next_input_character});  
               $self->{next_input_character} = 75;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 112, $self->{next_input_character});  
             $self->{next_input_character} = 75;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 75;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 75;  
       }  
     } elsif ($self->{next_input_character} == 76) { # L  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 98) { # b  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 97) { # a  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{039B}>}; # Lambda  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 109, 98, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 76;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 109, 98, $self->{next_input_character});  
               $self->{next_input_character} = 76;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 109, $self->{next_input_character});  
             $self->{next_input_character} = 76;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 76;  
         }  
       } elsif ($self->{next_input_character} == 84) { # T  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{003C}>}; # LT  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 76;  
       }  
     } elsif ($self->{next_input_character} == 77) { # M  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{039C}>}; # Mu  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 77;  
       }  
     } elsif ($self->{next_input_character} == 78) { # N  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D1}>}; # Ntilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 78;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 78;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 78;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 78;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{039D}>}; # Nu  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 78;  
       }  
     } elsif ($self->{next_input_character} == 79) { # O  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 69) { # E  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0152}>}; # OElig  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (69, 108, 105, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (69, 108, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (69, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D3}>}; # Oacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 79;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00D4}>}; # Ocirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D2}>}; # Ograve  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 79;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03A9}>}; # Omega  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 101, 103, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 101, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } elsif ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 99) { # c  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 114) { # r  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{039F}>}; # Omicron  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (109, 105, 99, 114, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 79;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (109, 105, 99, 114, $self->{next_input_character});  
                 $self->{next_input_character} = 79;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 105, 99, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 105, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 104) { # h  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D8}>}; # Oslash  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (115, 108, 97, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 79;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 108, 97, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 108, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D5}>}; # Otilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 79;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 79;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00D6}>}; # Ouml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 79;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 79;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 79;  
       }  
     } elsif ($self->{next_input_character} == 80) { # P  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03A6}>}; # Phi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 80;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{03A0}>}; # Pi  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2033}>}; # Prime  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 105, 109, $self->{next_input_character});  
               $self->{next_input_character} = 80;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 105, $self->{next_input_character});  
             $self->{next_input_character} = 80;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 80;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03A8}>}; # Psi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 80;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 80;  
       }  
     } elsif ($self->{next_input_character} == 82) { # R  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03A1}>}; # Rho  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 82;  
         }  
       } elsif ($self->{next_input_character} == 69) { # E  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 71) { # G  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00AE}>}; # REG  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (69, $self->{next_input_character});  
           $self->{next_input_character} = 82;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 82;  
       }  
     } elsif ($self->{next_input_character} == 83) { # S  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 110) { # n  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{0160}>}; # Scaron  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (99, 97, 114, 111, $self->{next_input_character});  
                 $self->{next_input_character} = 83;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 97, 114, $self->{next_input_character});  
               $self->{next_input_character} = 83;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 97, $self->{next_input_character});  
             $self->{next_input_character} = 83;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 83;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03A3}>}; # Sigma  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 103, 109, $self->{next_input_character});  
               $self->{next_input_character} = 83;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 103, $self->{next_input_character});  
             $self->{next_input_character} = 83;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 83;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 83;  
       }  
     } elsif ($self->{next_input_character} == 84) { # T  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 72) { # H  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 79) { # O  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 82) { # R  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 78) { # N  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00DE}>}; # THORN  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (72, 79, 82, $self->{next_input_character});  
               $self->{next_input_character} = 84;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (72, 79, $self->{next_input_character});  
             $self->{next_input_character} = 84;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (72, $self->{next_input_character});  
           $self->{next_input_character} = 84;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03A4}>}; # Tau  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 84;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0398}>}; # Theta  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (104, 101, 116, $self->{next_input_character});  
               $self->{next_input_character} = 84;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (104, 101, $self->{next_input_character});  
             $self->{next_input_character} = 84;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 84;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 84;  
       }  
     } elsif ($self->{next_input_character} == 85) { # U  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00DA}>}; # Uacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 85;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 85;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 85;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 85;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00DB}>}; # Ucirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 85;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 85;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 85;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00D9}>}; # Ugrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 85;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 85;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 85;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 85;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{03A5}>}; # Upsilon  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (112, 115, 105, 108, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 85;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (112, 115, 105, 108, $self->{next_input_character});  
                 $self->{next_input_character} = 85;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 115, 105, $self->{next_input_character});  
               $self->{next_input_character} = 85;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 115, $self->{next_input_character});  
             $self->{next_input_character} = 85;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 85;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00DC}>}; # Uuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 85;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 85;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 85;  
       }  
     } elsif ($self->{next_input_character} == 88) { # X  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{039E}>}; # Xi  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 88;  
       }  
     } elsif ($self->{next_input_character} == 89) { # Y  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00DD}>}; # Yacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 89;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 89;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 89;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 89;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0178}>}; # Yuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 89;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 89;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 89;  
       }  
     } elsif ($self->{next_input_character} == 90) { # Z  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0396}>}; # Zeta  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 116, $self->{next_input_character});  
             $self->{next_input_character} = 90;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 90;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 90;  
       }  
     } elsif ($self->{next_input_character} == 97) { # a  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E1}>}; # aacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 97;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00E2}>}; # acirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } elsif ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00B4}>}; # acute  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 117, 116, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 117, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00E6}>}; # aelig  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 108, 105, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 108, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E0}>}; # agrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 97;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 102) { # f  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 121) { # y  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 109) { # m  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{2135}>}; # alefsym  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (108, 101, 102, 115, 121, $self->{next_input_character});  
                   $self->{next_input_character} = 97;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (108, 101, 102, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 97;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 101, 102, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 101, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } elsif ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 104) { # h  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03B1}>}; # alpha  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 112, 104, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 112, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{0026}>}; # amp  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 110) { # n  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 100) { # d  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{2227}>}; # and  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{2220}>}; # ang  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (110, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0027}>}; # apos  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 111, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00E5}>}; # aring  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 105, 110, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 105, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 121) { # y  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 112) { # p  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2248}>}; # asymp  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 121, 109, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 121, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E3}>}; # atilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 97;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 97;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00E4}>}; # auml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 97;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 97;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 97;  
       }  
     } elsif ($self->{next_input_character} == 98) { # b  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{201E}>}; # bdquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (100, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 98;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 113, $self->{next_input_character});  
             $self->{next_input_character} = 98;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 98;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{03B2}>}; # beta  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 116, $self->{next_input_character});  
             $self->{next_input_character} = 98;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 98;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 118) { # v  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 98) { # b  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 114) { # r  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00A6}>}; # brvbar  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (114, 118, 98, 97, $self->{next_input_character});  
                 $self->{next_input_character} = 98;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 118, 98, $self->{next_input_character});  
               $self->{next_input_character} = 98;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 118, $self->{next_input_character});  
             $self->{next_input_character} = 98;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 98;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2022}>}; # bull  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
2021        if (@{$self->{char}}) {        if (@{$self->{char}}) {
2022          $self->{next_input_character} = shift @{$self->{char}};          $self->{next_input_character} = shift @{$self->{char}};
2023        } else {        } else {
2024          $self->{set_next_input_character}->($self);          $self->{set_next_input_character}->($self);
2025        }        }
2026        
2027                } else {  
2028                  $self->{parse_error}->();      my $value = $entity_name;
2029                  ## reconsume      my $match;
2030                }  
2031              }      while (length $entity_name < 10 and
2032            } else {             ## NOTE: Some number greater than the maximum length of entity name
2033              $self->{parse_error}->();             ((0x0041 <= $self->{next_input_character} and
2034              unshift @{$self->{char}},  (117, 108, $self->{next_input_character});               $self->{next_input_character} <= 0x005A) or
2035              $self->{next_input_character} = 98;              (0x0061 <= $self->{next_input_character} and
2036            }               $self->{next_input_character} <= 0x007A) or
2037          } else {              (0x0030 <= $self->{next_input_character} and
2038            $self->{parse_error}->();               $self->{next_input_character} <= 0x0039))) {
2039            unshift @{$self->{char}},  (117, $self->{next_input_character});        $entity_name .= chr $self->{next_input_character};
2040            $self->{next_input_character} = 98;        if (defined $entity_char->{$entity_name}) {
2041          }          $value = $entity_char->{$entity_name};
2042            $match = 1;
2043        } else {        } else {
2044          $self->{parse_error}->();          $value .= chr $self->{next_input_character};
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 98;  
2045        }        }
     } elsif ($self->{next_input_character} == 99) { # c  
2046                
2047        if (@{$self->{char}}) {        if (@{$self->{char}}) {
2048          $self->{next_input_character} = shift @{$self->{char}};          $self->{next_input_character} = shift @{$self->{char}};
# Line 6813  sub _tokenize_attempt_to_consume_an_enti Line 2050  sub _tokenize_attempt_to_consume_an_enti
2050          $self->{set_next_input_character}->($self);          $self->{set_next_input_character}->($self);
2051        }        }
2052        
2053        if ($self->{next_input_character} == 97) { # a      }
2054                
2055        if (@{$self->{char}}) {      if ($match) {
2056          $self->{next_input_character} = shift @{$self->{char}};        if ($self->{next_input_character} == 0x003B) { # ;
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{2229}>}; # cap  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 105) { # i  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 108) { # l  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E7}>}; # ccedil  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (99, 101, 100, 105, $self->{next_input_character});  
                 $self->{next_input_character} = 99;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 101, 100, $self->{next_input_character});  
               $self->{next_input_character} = 99;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 101, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 100) { # d  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00B8}>}; # cedil  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 100, 105, $self->{next_input_character});  
               $self->{next_input_character} = 99;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 100, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } elsif ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00A2}>}; # cent  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 110, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03C7}>}; # chi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 99) { # c  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{02C6}>}; # circ  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 114, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 98) { # b  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2663}>}; # clubs  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 117, 98, $self->{next_input_character});  
               $self->{next_input_character} = 99;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 117, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2245}>}; # cong  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 110, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } elsif ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 121) { # y  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00A9}>}; # copy  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 112, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 114) { # r  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{21B5}>}; # crarr  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 97, 114, $self->{next_input_character});  
               $self->{next_input_character} = 99;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 97, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
2057                    
2058        if (@{$self->{char}}) {        if (@{$self->{char}}) {
2059          $self->{next_input_character} = shift @{$self->{char}};          $self->{next_input_character} = shift @{$self->{char}};
# Line 7324  sub _tokenize_attempt_to_consume_an_enti Line 2061  sub _tokenize_attempt_to_consume_an_enti
2061          $self->{set_next_input_character}->($self);          $self->{set_next_input_character}->($self);
2062        }        }
2063        
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{222A}>}; # cup  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 110) { # n  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00A4}>}; # curren  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (117, 114, 114, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 99;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (117, 114, 114, $self->{next_input_character});  
               $self->{next_input_character} = 99;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 114, $self->{next_input_character});  
             $self->{next_input_character} = 99;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 99;  
         }  
2064        } else {        } else {
2065          $self->{parse_error}->();          $self->{parse_error}->();
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 99;  
       }  
     } elsif ($self->{next_input_character} == 100) { # d  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 65) { # A  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{21D3}>}; # dArr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (65, 114, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (65, $self->{next_input_character});  
           $self->{next_input_character} = 100;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 114) { # r  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2020}>}; # dagger  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 103, 103, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 100;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 103, 103, $self->{next_input_character});  
               $self->{next_input_character} = 100;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 103, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2193}>}; # darr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 100;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00B0}>}; # deg  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03B4}>}; # delta  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 108, 116, $self->{next_input_character});  
               $self->{next_input_character} = 100;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 108, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 100;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2666}>}; # diams  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 97, 109, $self->{next_input_character});  
               $self->{next_input_character} = 100;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 97, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } elsif ($self->{next_input_character} == 118) { # v  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F7}>}; # divide  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (105, 118, 105, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 100;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 118, 105, $self->{next_input_character});  
               $self->{next_input_character} = 100;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 118, $self->{next_input_character});  
             $self->{next_input_character} = 100;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 100;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 100;  
       }  
     } elsif ($self->{next_input_character} == 101) { # e  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E9}>}; # eacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 101;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00EA}>}; # ecirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00E8}>}; # egrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 101;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 121) { # y  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2205}>}; # empty  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 112, 116, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 112, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } elsif ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2003}>}; # emsp  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 115, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 110) { # n  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2002}>}; # ensp  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (110, 115, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (110, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{03B5}>}; # epsilon  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (112, 115, 105, 108, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 101;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (112, 115, 105, 108, $self->{next_input_character});  
                 $self->{next_input_character} = 101;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 115, 105, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 115, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 113) { # q  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2261}>}; # equiv  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (113, 117, 105, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (113, 117, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (113, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03B7}>}; # eta  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 104) { # h  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00F0}>}; # eth  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00EB}>}; # euml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 111) { # o  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{20AC}>}; # euro  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 114, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } elsif ($self->{next_input_character} == 120) { # x  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2203}>}; # exist  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (120, 105, 115, $self->{next_input_character});  
               $self->{next_input_character} = 101;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (120, 105, $self->{next_input_character});  
             $self->{next_input_character} = 101;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (120, $self->{next_input_character});  
           $self->{next_input_character} = 101;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 101;  
       }  
     } elsif ($self->{next_input_character} == 102) { # f  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 110) { # n  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 102) { # f  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0192}>}; # fnof  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (110, 111, $self->{next_input_character});  
             $self->{next_input_character} = 102;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (110, $self->{next_input_character});  
           $self->{next_input_character} = 102;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 108) { # l  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2200}>}; # forall  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (111, 114, 97, 108, $self->{next_input_character});  
                 $self->{next_input_character} = 102;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (111, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 102;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 114, $self->{next_input_character});  
             $self->{next_input_character} = 102;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 102;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 99) { # c  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 49) { # 1  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 50) { # 2  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00BD}>}; # frac12  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } elsif ($self->{next_input_character} == 52) { # 4  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00BC}>}; # frac14  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (114, 97, 99, 49, $self->{next_input_character});  
                 $self->{next_input_character} = 102;  
               }  
             } elsif ($self->{next_input_character} == 51) { # 3  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 52) { # 4  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00BE}>}; # frac34  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (114, 97, 99, 51, $self->{next_input_character});  
                 $self->{next_input_character} = 102;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 97, 99, $self->{next_input_character});  
               $self->{next_input_character} = 102;  
             }  
           } elsif ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2044}>}; # frasl  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 97, 115, $self->{next_input_character});  
               $self->{next_input_character} = 102;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 97, $self->{next_input_character});  
             $self->{next_input_character} = 102;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 102;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 102;  
       }  
     } elsif ($self->{next_input_character} == 103) { # g  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03B3}>}; # gamma  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 109, 109, $self->{next_input_character});  
               $self->{next_input_character} = 103;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 109, $self->{next_input_character});  
             $self->{next_input_character} = 103;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 103;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{2265}>}; # ge  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{003E}>}; # gt  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 103;  
       }  
     } elsif ($self->{next_input_character} == 104) { # h  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 65) { # A  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{21D4}>}; # hArr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (65, 114, $self->{next_input_character});  
             $self->{next_input_character} = 104;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (65, $self->{next_input_character});  
           $self->{next_input_character} = 104;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2194}>}; # harr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 104;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 104;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 115) { # s  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2665}>}; # hearts  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (101, 97, 114, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 104;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 97, 114, $self->{next_input_character});  
               $self->{next_input_character} = 104;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 97, $self->{next_input_character});  
             $self->{next_input_character} = 104;  
           }  
         } elsif ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 105) { # i  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 112) { # p  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2026}>}; # hellip  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (101, 108, 108, 105, $self->{next_input_character});  
                 $self->{next_input_character} = 104;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 108, 108, $self->{next_input_character});  
               $self->{next_input_character} = 104;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 108, $self->{next_input_character});  
             $self->{next_input_character} = 104;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 104;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 104;  
       }  
     } elsif ($self->{next_input_character} == 105) { # i  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00ED}>}; # iacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 105;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00EE}>}; # icirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 120) { # x  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 99) { # c  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00A1}>}; # iexcl  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 120, 99, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 120, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00EC}>}; # igrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 105;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2111}>}; # image  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 97, 103, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 97, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 110) { # n  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 102) { # f  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 110) { # n  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{221E}>}; # infin  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (110, 102, 105, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (110, 102, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } elsif ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{222B}>}; # int  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (110, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{03B9}>}; # iota  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 116, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 113) { # q  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 101) { # e  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 116) { # t  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00BF}>}; # iquest  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (113, 117, 101, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 105;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (113, 117, 101, $self->{next_input_character});  
               $self->{next_input_character} = 105;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (113, 117, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (113, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2208}>}; # isin  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 105, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00EF}>}; # iuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 105;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 105;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 105;  
       }  
     } elsif ($self->{next_input_character} == 107) { # k  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03BA}>}; # kappa  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 112, 112, $self->{next_input_character});  
               $self->{next_input_character} = 107;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 112, $self->{next_input_character});  
             $self->{next_input_character} = 107;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 107;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 107;  
       }  
     } elsif ($self->{next_input_character} == 108) { # l  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 65) { # A  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{21D0}>}; # lArr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (65, 114, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (65, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 98) { # b  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 97) { # a  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{03BB}>}; # lambda  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 109, 98, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 108;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 109, 98, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 109, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } elsif ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2329}>}; # lang  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 110, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } elsif ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00AB}>}; # laquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 113, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2190}>}; # larr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2308}>}; # lceil  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 101, 105, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 101, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{201C}>}; # ldquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (100, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 113, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{2264}>}; # le  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 102) { # f  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 111) { # o  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 114) { # r  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{230A}>}; # lfloor  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (102, 108, 111, 111, $self->{next_input_character});  
                 $self->{next_input_character} = 108;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (102, 108, 111, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (102, 108, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (102, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 119) { # w  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 116) { # t  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2217}>}; # lowast  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (111, 119, 97, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 108;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (111, 119, 97, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 119, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } elsif ($self->{next_input_character} == 122) { # z  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{25CA}>}; # loz  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{200E}>}; # lrm  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 113) { # q  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 117) { # u  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2039}>}; # lsaquo  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (115, 97, 113, 117, $self->{next_input_character});  
                 $self->{next_input_character} = 108;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 97, 113, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 97, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } elsif ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2018}>}; # lsquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 108;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 113, $self->{next_input_character});  
             $self->{next_input_character} = 108;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 108;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{003C}>}; # lt  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 108;  
       }  
     } elsif ($self->{next_input_character} == 109) { # m  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00AF}>}; # macr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 109;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 109;  
         }  
       } elsif ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 104) { # h  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2014}>}; # mdash  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (100, 97, 115, $self->{next_input_character});  
               $self->{next_input_character} = 109;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 97, $self->{next_input_character});  
             $self->{next_input_character} = 109;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 109;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00B5}>}; # micro  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 99, 114, $self->{next_input_character});  
               $self->{next_input_character} = 109;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 99, $self->{next_input_character});  
             $self->{next_input_character} = 109;  
           }  
         } elsif ($self->{next_input_character} == 100) { # d  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 116) { # t  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00B7}>}; # middot  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (105, 100, 100, 111, $self->{next_input_character});  
                 $self->{next_input_character} = 109;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 100, 100, $self->{next_input_character});  
               $self->{next_input_character} = 109;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 100, $self->{next_input_character});  
             $self->{next_input_character} = 109;  
           }  
         } elsif ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2212}>}; # minus  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 110, 117, $self->{next_input_character});  
               $self->{next_input_character} = 109;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 110, $self->{next_input_character});  
             $self->{next_input_character} = 109;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 109;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{03BC}>}; # mu  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 109;  
       }  
     } elsif ($self->{next_input_character} == 110) { # n  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 98) { # b  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2207}>}; # nabla  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 98, 108, $self->{next_input_character});  
               $self->{next_input_character} = 110;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 98, $self->{next_input_character});  
             $self->{next_input_character} = 110;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 98) { # b  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00A0}>}; # nbsp  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (98, 115, $self->{next_input_character});  
             $self->{next_input_character} = 110;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (98, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 104) { # h  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2013}>}; # ndash  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (100, 97, 115, $self->{next_input_character});  
               $self->{next_input_character} = 110;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 97, $self->{next_input_character});  
             $self->{next_input_character} = 110;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{2260}>}; # ne  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{220B}>}; # ni  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 110) { # n  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2209}>}; # notin  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (111, 116, 105, $self->{next_input_character});  
               $self->{next_input_character} = 110;  
             }  
           } else {  
             $r = {type => 'character', data => qq<\x{00AC}>}; # not  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 98) { # b  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2284}>}; # nsub  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 117, $self->{next_input_character});  
             $self->{next_input_character} = 110;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F1}>}; # ntilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 110;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 110;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 110;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 110;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{03BD}>}; # nu  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 110;  
       }  
     } elsif ($self->{next_input_character} == 111) { # o  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F3}>}; # oacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00F4}>}; # ocirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{0153}>}; # oelig  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 108, 105, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 108, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F2}>}; # ograve  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{203E}>}; # oline  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 105, 110, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 105, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03C9}>}; # omega  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 101, 103, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 101, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } elsif ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 99) { # c  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 114) { # r  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{03BF}>}; # omicron  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (109, 105, 99, 114, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 111;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (109, 105, 99, 114, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (109, 105, 99, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (109, 105, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2295}>}; # oplus  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 108, 117, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 108, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 100) { # d  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 102) { # f  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00AA}>}; # ordf  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00BA}>}; # ordm  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 100, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $r = {type => 'character', data => qq<\x{2228}>}; # or  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 104) { # h  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F8}>}; # oslash  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (115, 108, 97, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 108, 97, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 108, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 116) { # t  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F5}>}; # otilde  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 108, 100, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 108, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } elsif ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 115) { # s  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2297}>}; # otimes  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (116, 105, 109, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 111;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (116, 105, 109, $self->{next_input_character});  
               $self->{next_input_character} = 111;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (116, 105, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (116, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00F6}>}; # ouml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 111;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 111;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 111;  
       }  
     } elsif ($self->{next_input_character} == 112) { # p  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00B6}>}; # para  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2202}>}; # part  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 105) { # i  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 108) { # l  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2030}>}; # permil  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (101, 114, 109, 105, $self->{next_input_character});  
                 $self->{next_input_character} = 112;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 114, 109, $self->{next_input_character});  
               $self->{next_input_character} = 112;  
             }  
           } elsif ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{22A5}>}; # perp  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 114, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03C6}>}; # phi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 118) { # v  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03D6}>}; # piv  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $r = {type => 'character', data => qq<\x{03C0}>}; # pi  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 115) { # s  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 109) { # m  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 110) { # n  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00B1}>}; # plusmn  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (108, 117, 115, 109, $self->{next_input_character});  
                 $self->{next_input_character} = 112;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (108, 117, 115, $self->{next_input_character});  
               $self->{next_input_character} = 112;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (108, 117, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 111) { # o  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 100) { # d  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00A3}>}; # pound  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (111, 117, 110, $self->{next_input_character});  
               $self->{next_input_character} = 112;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (111, 117, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (111, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2032}>}; # prime  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 105, 109, $self->{next_input_character});  
               $self->{next_input_character} = 112;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 105, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } elsif ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{220F}>}; # prod  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 112) { # p  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{221D}>}; # prop  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 111, $self->{next_input_character});  
             $self->{next_input_character} = 112;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03C8}>}; # psi  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 112;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 112;  
       }  
     } elsif ($self->{next_input_character} == 113) { # q  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0022}>}; # quot  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 111, $self->{next_input_character});  
             $self->{next_input_character} = 113;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 113;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 113;  
       }  
     } elsif ($self->{next_input_character} == 81) { # Q  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 85) { # U  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 79) { # O  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 84) { # T  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{0022}>}; # QUOT  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (85, 79, $self->{next_input_character});  
             $self->{next_input_character} = 81;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (85, $self->{next_input_character});  
           $self->{next_input_character} = 81;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 81;  
       }  
     } elsif ($self->{next_input_character} == 114) { # r  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 65) { # A  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{21D2}>}; # rArr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (65, 114, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (65, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 100) { # d  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{221A}>}; # radic  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 100, 105, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 100, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } elsif ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 103) { # g  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{232A}>}; # rang  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 110, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } elsif ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00BB}>}; # raquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 113, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2192}>}; # rarr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2309}>}; # rceil  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 101, 105, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 101, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{201D}>}; # rdquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (100, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 113, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{211C}>}; # real  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 97, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } elsif ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00AE}>}; # reg  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 102) { # f  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 111) { # o  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 114) { # r  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{230B}>}; # rfloor  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (102, 108, 111, 111, $self->{next_input_character});  
                 $self->{next_input_character} = 114;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (102, 108, 111, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (102, 108, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (102, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03C1}>}; # rho  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 108) { # l  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{200F}>}; # rlm  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (108, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } elsif ($self->{next_input_character} == 115) { # s  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 113) { # q  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 117) { # u  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{203A}>}; # rsaquo  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (115, 97, 113, 117, $self->{next_input_character});  
                 $self->{next_input_character} = 114;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 97, 113, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 97, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } elsif ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2019}>}; # rsquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (115, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 114;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (115, 113, $self->{next_input_character});  
             $self->{next_input_character} = 114;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (115, $self->{next_input_character});  
           $self->{next_input_character} = 114;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 114;  
       }  
     } elsif ($self->{next_input_character} == 115) { # s  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 98) { # b  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 113) { # q  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{201A}>}; # sbquo  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (98, 113, 117, $self->{next_input_character});  
               $self->{next_input_character} = 115;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (98, 113, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (98, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 111) { # o  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 110) { # n  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{0161}>}; # scaron  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (99, 97, 114, 111, $self->{next_input_character});  
                 $self->{next_input_character} = 115;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 97, 114, $self->{next_input_character});  
               $self->{next_input_character} = 115;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 97, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 100) { # d  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{22C5}>}; # sdot  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (100, 111, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (100, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00A7}>}; # sect  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 99, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 121) { # y  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00AD}>}; # shy  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 103) { # g  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 109) { # m  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 102) { # f  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{03C2}>}; # sigmaf  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $r = {type => 'character', data => qq<\x{03C3}>}; # sigma  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 103, 109, $self->{next_input_character});  
               $self->{next_input_character} = 115;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 103, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } elsif ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{223C}>}; # sim  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 115) { # s  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2660}>}; # spades  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (112, 97, 100, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 115;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 97, 100, $self->{next_input_character});  
               $self->{next_input_character} = 115;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 97, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 98) { # b  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 101) { # e  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2286}>}; # sube  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $r = {type => 'character', data => qq<\x{2282}>}; # sub  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{2211}>}; # sum  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 112) { # p  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 49) { # 1  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00B9}>}; # sup1  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 50) { # 2  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00B2}>}; # sup2  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 51) { # 3  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00B3}>}; # sup3  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } elsif ($self->{next_input_character} == 101) { # e  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2287}>}; # supe  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $r = {type => 'character', data => qq<\x{2283}>}; # sup  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } elsif ($self->{next_input_character} == 122) { # z  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 103) { # g  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00DF}>}; # szlig  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (122, 108, 105, $self->{next_input_character});  
               $self->{next_input_character} = 115;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (122, 108, $self->{next_input_character});  
             $self->{next_input_character} = 115;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (122, $self->{next_input_character});  
           $self->{next_input_character} = 115;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 115;  
       }  
     } elsif ($self->{next_input_character} == 116) { # t  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 117) { # u  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{03C4}>}; # tau  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 116;  
         }  
       } elsif ($self->{next_input_character} == 104) { # h  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 101) { # e  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 52) { # 4  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2234}>}; # there4  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (104, 101, 114, 101, $self->{next_input_character});  
                 $self->{next_input_character} = 116;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (104, 101, 114, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } elsif ($self->{next_input_character} == 116) { # t  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 97) { # a  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 115) { # s  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 121) { # y  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   if ($self->{next_input_character} == 109) { # m  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     {  
                       $r = {type => 'character', data => qq<\x{03D1}>}; # thetasym  
                       if ($self->{next_input_character} == 0x003B) { # ;  
                           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                       } else {  
                         $self->{parse_error}->();  
                         ## reconsume  
                       }  
                     }  
                   } else {  
                     $self->{parse_error}->();  
                     unshift @{$self->{char}},  (104, 101, 116, 97, 115, 121, $self->{next_input_character});  
                     $self->{next_input_character} = 116;  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (104, 101, 116, 97, 115, $self->{next_input_character});  
                   $self->{next_input_character} = 116;  
                 }  
               } else {  
                 $r = {type => 'character', data => qq<\x{03B8}>}; # theta  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (104, 101, 116, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (104, 101, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } elsif ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 110) { # n  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 112) { # p  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2009}>}; # thinsp  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (104, 105, 110, 115, $self->{next_input_character});  
                 $self->{next_input_character} = 116;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (104, 105, 110, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (104, 105, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } elsif ($self->{next_input_character} == 111) { # o  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 110) { # n  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00FE}>}; # thorn  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (104, 111, 114, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (104, 111, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (104, $self->{next_input_character});  
           $self->{next_input_character} = 116;  
         }  
       } elsif ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{02DC}>}; # tilde  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 108, 100, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 108, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } elsif ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 101) { # e  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 115) { # s  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00D7}>}; # times  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (105, 109, 101, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (105, 109, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (105, $self->{next_input_character});  
           $self->{next_input_character} = 116;  
         }  
       } elsif ($self->{next_input_character} == 114) { # r  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 97) { # a  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 100) { # d  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 101) { # e  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{2122}>}; # trade  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (114, 97, 100, $self->{next_input_character});  
               $self->{next_input_character} = 116;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (114, 97, $self->{next_input_character});  
             $self->{next_input_character} = 116;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (114, $self->{next_input_character});  
           $self->{next_input_character} = 116;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 116;  
       }  
     } elsif ($self->{next_input_character} == 117) { # u  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 65) { # A  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{21D1}>}; # uArr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (65, 114, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (65, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00FA}>}; # uacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 117;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 117;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } elsif ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{2191}>}; # uarr  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 114, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 99) { # c  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 114) { # r  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 99) { # c  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{00FB}>}; # ucirc  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (99, 105, 114, $self->{next_input_character});  
               $self->{next_input_character} = 117;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (99, 105, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (99, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 103) { # g  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 114) { # r  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 118) { # v  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00F9}>}; # ugrave  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (103, 114, 97, 118, $self->{next_input_character});  
                 $self->{next_input_character} = 117;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (103, 114, 97, $self->{next_input_character});  
               $self->{next_input_character} = 117;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (103, 114, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (103, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 109) { # m  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 108) { # l  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00A8}>}; # uml  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (109, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 112) { # p  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 115) { # s  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 105) { # i  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 104) { # h  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               {  
                 $r = {type => 'character', data => qq<\x{03D2}>}; # upsih  
                 if ($self->{next_input_character} == 0x003B) { # ;  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 } else {  
                   $self->{parse_error}->();  
                   ## reconsume  
                 }  
               }  
             } elsif ($self->{next_input_character} == 108) { # l  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 111) { # o  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 if ($self->{next_input_character} == 110) { # n  
                     
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   {  
                     $r = {type => 'character', data => qq<\x{03C5}>}; # upsilon  
                     if ($self->{next_input_character} == 0x003B) { # ;  
                         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                     } else {  
                       $self->{parse_error}->();  
                       ## reconsume  
                     }  
                   }  
                 } else {  
                   $self->{parse_error}->();  
                   unshift @{$self->{char}},  (112, 115, 105, 108, 111, $self->{next_input_character});  
                   $self->{next_input_character} = 117;  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (112, 115, 105, 108, $self->{next_input_character});  
                 $self->{next_input_character} = 117;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (112, 115, 105, $self->{next_input_character});  
               $self->{next_input_character} = 117;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (112, 115, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (112, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00FC}>}; # uuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 117;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 117;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 117;  
       }  
     } elsif ($self->{next_input_character} == 119) { # w  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 105) { # i  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 101) { # e  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 114) { # r  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 112) { # p  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{2118}>}; # weierp  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (101, 105, 101, 114, $self->{next_input_character});  
                 $self->{next_input_character} = 119;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (101, 105, 101, $self->{next_input_character});  
               $self->{next_input_character} = 119;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 105, $self->{next_input_character});  
             $self->{next_input_character} = 119;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 119;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 119;  
       }  
     } elsif ($self->{next_input_character} == 120) { # x  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 105) { # i  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         {  
           $r = {type => 'character', data => qq<\x{03BE}>}; # xi  
           if ($self->{next_input_character} == 0x003B) { # ;  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           } else {  
             $self->{parse_error}->();  
             ## reconsume  
           }  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 120;  
       }  
     } elsif ($self->{next_input_character} == 121) { # y  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 97) { # a  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 99) { # c  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 117) { # u  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             if ($self->{next_input_character} == 116) { # t  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               if ($self->{next_input_character} == 101) { # e  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                 {  
                   $r = {type => 'character', data => qq<\x{00FD}>}; # yacute  
                   if ($self->{next_input_character} == 0x003B) { # ;  
                       
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
                   } else {  
                     $self->{parse_error}->();  
                     ## reconsume  
                   }  
                 }  
               } else {  
                 $self->{parse_error}->();  
                 unshift @{$self->{char}},  (97, 99, 117, 116, $self->{next_input_character});  
                 $self->{next_input_character} = 121;  
               }  
             } else {  
               $self->{parse_error}->();  
               unshift @{$self->{char}},  (97, 99, 117, $self->{next_input_character});  
               $self->{next_input_character} = 121;  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (97, 99, $self->{next_input_character});  
             $self->{next_input_character} = 121;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (97, $self->{next_input_character});  
           $self->{next_input_character} = 121;  
         }  
       } elsif ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{00A5}>}; # yen  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 121;  
         }  
       } elsif ($self->{next_input_character} == 117) { # u  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 109) { # m  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 108) { # l  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{00FF}>}; # yuml  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (117, 109, $self->{next_input_character});  
             $self->{next_input_character} = 121;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (117, $self->{next_input_character});  
           $self->{next_input_character} = 121;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 121;  
       }  
     } elsif ($self->{next_input_character} == 122) { # z  
         
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
       if ($self->{next_input_character} == 101) { # e  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 116) { # t  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 97) { # a  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{03B6}>}; # zeta  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (101, 116, $self->{next_input_character});  
             $self->{next_input_character} = 122;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (101, $self->{next_input_character});  
           $self->{next_input_character} = 122;  
         }  
       } elsif ($self->{next_input_character} == 119) { # w  
           
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
         if ($self->{next_input_character} == 106) { # j  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           {  
             $r = {type => 'character', data => qq<\x{200D}>}; # zwj  
             if ($self->{next_input_character} == 0x003B) { # ;  
                 
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             } else {  
               $self->{parse_error}->();  
               ## reconsume  
             }  
           }  
         } elsif ($self->{next_input_character} == 110) { # n  
             
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
           if ($self->{next_input_character} == 106) { # j  
               
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
             {  
               $r = {type => 'character', data => qq<\x{200C}>}; # zwnj  
               if ($self->{next_input_character} == 0x003B) { # ;  
                   
       if (@{$self->{char}}) {  
         $self->{next_input_character} = shift @{$self->{char}};  
       } else {  
         $self->{set_next_input_character}->($self);  
       }  
     
               } else {  
                 $self->{parse_error}->();  
                 ## reconsume  
               }  
             }  
           } else {  
             $self->{parse_error}->();  
             unshift @{$self->{char}},  (119, 110, $self->{next_input_character});  
             $self->{next_input_character} = 122;  
           }  
         } else {  
           $self->{parse_error}->();  
           unshift @{$self->{char}},  (119, $self->{next_input_character});  
           $self->{next_input_character} = 122;  
         }  
       } else {  
         $self->{parse_error}->();  
         unshift @{$self->{char}},  ($self->{next_input_character});  
         $self->{next_input_character} = 122;  
2066        }        }
2067    
2068          return {type => 'character', data => $value};
2069      } else {      } else {
2070        $self->{parse_error}->();        $self->{parse_error}->();
2071          ## NOTE: No characters are consumed in the spec.
2072          unshift @{$self->{token}}, ({type => 'character', data => $value});
2073          return undef;
2074      }      }
2075          } else {
2076        ## no characters are consumed
2077    return $r;      $self->{parse_error}->();
2078        return undef;
2079      }
2080  } # _tokenize_attempt_to_consume_an_entity  } # _tokenize_attempt_to_consume_an_entity
2081    
2082  sub _initialize_tree_constructor ($) {  sub _initialize_tree_constructor ($) {

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24