/[suikacvs]/markup/html/whatpm/What/HTML-consume-entity.src
Suika

Contents of /markup/html/whatpm/What/HTML-consume-entity.src

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download) (as text)
Mon Apr 30 12:06:12 2007 UTC (17 years, 7 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
File MIME type: application/x-wais-source
FILE REMOVED
++ whatpm/What/ChangeLog	30 Apr 2007 12:05:44 -0000
	* mkhtmlparser.pl, Makefile: References to the |HTML-consume-entity.src|
	are removed.

	* HTML.pm.src: Tokenizer's handling on named entities are rewritten.

	* HTML-consume-entity.src: Removed.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

1 wakaba 1.1 } elsif ($self->{next_input_character} == 65) { # A
2     !!!next-input-character;
3     if ($self->{next_input_character} == 69) { # E
4     !!!next-input-character;
5     if ($self->{next_input_character} == 108) { # l
6     !!!next-input-character;
7     if ($self->{next_input_character} == 105) { # i
8     !!!next-input-character;
9     if ($self->{next_input_character} == 103) { # g
10     !!!next-input-character;
11     {
12     $r = {type => 'character', data => qq<\x{00C6}>}; # AElig
13     if ($self->{next_input_character} == 0x003B) { # ;
14     !!!next-input-character;
15     } else {
16     !!!parse-error;
17     ## reconsume
18     }
19     }
20     } else {
21     !!!parse-error;
22     !!!back-next-input-character (69, 108, 105, $self->{next_input_character});
23     $self->{next_input_character} = 65;
24     }
25     } else {
26     !!!parse-error;
27     !!!back-next-input-character (69, 108, $self->{next_input_character});
28     $self->{next_input_character} = 65;
29     }
30     } else {
31     !!!parse-error;
32     !!!back-next-input-character (69, $self->{next_input_character});
33     $self->{next_input_character} = 65;
34     }
35     } elsif ($self->{next_input_character} == 97) { # a
36     !!!next-input-character;
37     if ($self->{next_input_character} == 99) { # c
38     !!!next-input-character;
39     if ($self->{next_input_character} == 117) { # u
40     !!!next-input-character;
41     if ($self->{next_input_character} == 116) { # t
42     !!!next-input-character;
43     if ($self->{next_input_character} == 101) { # e
44     !!!next-input-character;
45     {
46     $r = {type => 'character', data => qq<\x{00C1}>}; # Aacute
47     if ($self->{next_input_character} == 0x003B) { # ;
48     !!!next-input-character;
49     } else {
50     !!!parse-error;
51     ## reconsume
52     }
53     }
54     } else {
55     !!!parse-error;
56     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
57     $self->{next_input_character} = 65;
58     }
59     } else {
60     !!!parse-error;
61     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
62     $self->{next_input_character} = 65;
63     }
64     } else {
65     !!!parse-error;
66     !!!back-next-input-character (97, 99, $self->{next_input_character});
67     $self->{next_input_character} = 65;
68     }
69     } else {
70     !!!parse-error;
71     !!!back-next-input-character (97, $self->{next_input_character});
72     $self->{next_input_character} = 65;
73     }
74     } elsif ($self->{next_input_character} == 99) { # c
75     !!!next-input-character;
76     if ($self->{next_input_character} == 105) { # i
77     !!!next-input-character;
78     if ($self->{next_input_character} == 114) { # r
79     !!!next-input-character;
80     if ($self->{next_input_character} == 99) { # c
81     !!!next-input-character;
82     {
83     $r = {type => 'character', data => qq<\x{00C2}>}; # Acirc
84     if ($self->{next_input_character} == 0x003B) { # ;
85     !!!next-input-character;
86     } else {
87     !!!parse-error;
88     ## reconsume
89     }
90     }
91     } else {
92     !!!parse-error;
93     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
94     $self->{next_input_character} = 65;
95     }
96     } else {
97     !!!parse-error;
98     !!!back-next-input-character (99, 105, $self->{next_input_character});
99     $self->{next_input_character} = 65;
100     }
101     } else {
102     !!!parse-error;
103     !!!back-next-input-character (99, $self->{next_input_character});
104     $self->{next_input_character} = 65;
105     }
106     } elsif ($self->{next_input_character} == 103) { # g
107     !!!next-input-character;
108     if ($self->{next_input_character} == 114) { # r
109     !!!next-input-character;
110     if ($self->{next_input_character} == 97) { # a
111     !!!next-input-character;
112     if ($self->{next_input_character} == 118) { # v
113     !!!next-input-character;
114     if ($self->{next_input_character} == 101) { # e
115     !!!next-input-character;
116     {
117     $r = {type => 'character', data => qq<\x{00C0}>}; # Agrave
118     if ($self->{next_input_character} == 0x003B) { # ;
119     !!!next-input-character;
120     } else {
121     !!!parse-error;
122     ## reconsume
123     }
124     }
125     } else {
126     !!!parse-error;
127     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
128     $self->{next_input_character} = 65;
129     }
130     } else {
131     !!!parse-error;
132     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
133     $self->{next_input_character} = 65;
134     }
135     } else {
136     !!!parse-error;
137     !!!back-next-input-character (103, 114, $self->{next_input_character});
138     $self->{next_input_character} = 65;
139     }
140     } else {
141     !!!parse-error;
142     !!!back-next-input-character (103, $self->{next_input_character});
143     $self->{next_input_character} = 65;
144     }
145     } elsif ($self->{next_input_character} == 108) { # l
146     !!!next-input-character;
147     if ($self->{next_input_character} == 112) { # p
148     !!!next-input-character;
149     if ($self->{next_input_character} == 104) { # h
150     !!!next-input-character;
151     if ($self->{next_input_character} == 97) { # a
152     !!!next-input-character;
153     {
154     $r = {type => 'character', data => qq<\x{0391}>}; # Alpha
155     if ($self->{next_input_character} == 0x003B) { # ;
156     !!!next-input-character;
157     } else {
158     !!!parse-error;
159     ## reconsume
160     }
161     }
162     } else {
163     !!!parse-error;
164     !!!back-next-input-character (108, 112, 104, $self->{next_input_character});
165     $self->{next_input_character} = 65;
166     }
167     } else {
168     !!!parse-error;
169     !!!back-next-input-character (108, 112, $self->{next_input_character});
170     $self->{next_input_character} = 65;
171     }
172     } else {
173     !!!parse-error;
174     !!!back-next-input-character (108, $self->{next_input_character});
175     $self->{next_input_character} = 65;
176     }
177     } elsif ($self->{next_input_character} == 114) { # r
178     !!!next-input-character;
179     if ($self->{next_input_character} == 105) { # i
180     !!!next-input-character;
181     if ($self->{next_input_character} == 110) { # n
182     !!!next-input-character;
183     if ($self->{next_input_character} == 103) { # g
184     !!!next-input-character;
185     {
186     $r = {type => 'character', data => qq<\x{00C5}>}; # Aring
187     if ($self->{next_input_character} == 0x003B) { # ;
188     !!!next-input-character;
189     } else {
190     !!!parse-error;
191     ## reconsume
192     }
193     }
194     } else {
195     !!!parse-error;
196     !!!back-next-input-character (114, 105, 110, $self->{next_input_character});
197     $self->{next_input_character} = 65;
198     }
199     } else {
200     !!!parse-error;
201     !!!back-next-input-character (114, 105, $self->{next_input_character});
202     $self->{next_input_character} = 65;
203     }
204     } else {
205     !!!parse-error;
206     !!!back-next-input-character (114, $self->{next_input_character});
207     $self->{next_input_character} = 65;
208     }
209     } elsif ($self->{next_input_character} == 116) { # t
210     !!!next-input-character;
211     if ($self->{next_input_character} == 105) { # i
212     !!!next-input-character;
213     if ($self->{next_input_character} == 108) { # l
214     !!!next-input-character;
215     if ($self->{next_input_character} == 100) { # d
216     !!!next-input-character;
217     if ($self->{next_input_character} == 101) { # e
218     !!!next-input-character;
219     {
220     $r = {type => 'character', data => qq<\x{00C3}>}; # Atilde
221     if ($self->{next_input_character} == 0x003B) { # ;
222     !!!next-input-character;
223     } else {
224     !!!parse-error;
225     ## reconsume
226     }
227     }
228     } else {
229     !!!parse-error;
230     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
231     $self->{next_input_character} = 65;
232     }
233     } else {
234     !!!parse-error;
235     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
236     $self->{next_input_character} = 65;
237     }
238     } else {
239     !!!parse-error;
240     !!!back-next-input-character (116, 105, $self->{next_input_character});
241     $self->{next_input_character} = 65;
242     }
243     } else {
244     !!!parse-error;
245     !!!back-next-input-character (116, $self->{next_input_character});
246     $self->{next_input_character} = 65;
247     }
248     } elsif ($self->{next_input_character} == 117) { # u
249     !!!next-input-character;
250     if ($self->{next_input_character} == 109) { # m
251     !!!next-input-character;
252     if ($self->{next_input_character} == 108) { # l
253     !!!next-input-character;
254     {
255     $r = {type => 'character', data => qq<\x{00C4}>}; # Auml
256     if ($self->{next_input_character} == 0x003B) { # ;
257     !!!next-input-character;
258     } else {
259     !!!parse-error;
260     ## reconsume
261     }
262     }
263     } else {
264     !!!parse-error;
265     !!!back-next-input-character (117, 109, $self->{next_input_character});
266     $self->{next_input_character} = 65;
267     }
268     } else {
269     !!!parse-error;
270     !!!back-next-input-character (117, $self->{next_input_character});
271     $self->{next_input_character} = 65;
272     }
273     } elsif ($self->{next_input_character} == 77) { # M
274     !!!next-input-character;
275     if ($self->{next_input_character} == 80) { # P
276     !!!next-input-character;
277     {
278     $r = {type => 'character', data => qq<\x{0026}>}; # AMP
279     if ($self->{next_input_character} == 0x003B) { # ;
280     !!!next-input-character;
281     } else {
282     !!!parse-error;
283     ## reconsume
284     }
285     }
286     } else {
287     !!!parse-error;
288     !!!back-next-input-character (77, $self->{next_input_character});
289     $self->{next_input_character} = 65;
290     }
291     } else {
292     !!!parse-error;
293     !!!back-next-input-character ($self->{next_input_character});
294     $self->{next_input_character} = 65;
295     }
296     } elsif ($self->{next_input_character} == 66) { # B
297     !!!next-input-character;
298     if ($self->{next_input_character} == 101) { # e
299     !!!next-input-character;
300     if ($self->{next_input_character} == 116) { # t
301     !!!next-input-character;
302     if ($self->{next_input_character} == 97) { # a
303     !!!next-input-character;
304     {
305     $r = {type => 'character', data => qq<\x{0392}>}; # Beta
306     if ($self->{next_input_character} == 0x003B) { # ;
307     !!!next-input-character;
308     } else {
309     !!!parse-error;
310     ## reconsume
311     }
312     }
313     } else {
314     !!!parse-error;
315     !!!back-next-input-character (101, 116, $self->{next_input_character});
316     $self->{next_input_character} = 66;
317     }
318     } else {
319     !!!parse-error;
320     !!!back-next-input-character (101, $self->{next_input_character});
321     $self->{next_input_character} = 66;
322     }
323     } else {
324     !!!parse-error;
325     !!!back-next-input-character ($self->{next_input_character});
326     $self->{next_input_character} = 66;
327     }
328     } elsif ($self->{next_input_character} == 67) { # C
329     !!!next-input-character;
330     if ($self->{next_input_character} == 99) { # c
331     !!!next-input-character;
332     if ($self->{next_input_character} == 101) { # e
333     !!!next-input-character;
334     if ($self->{next_input_character} == 100) { # d
335     !!!next-input-character;
336     if ($self->{next_input_character} == 105) { # i
337     !!!next-input-character;
338     if ($self->{next_input_character} == 108) { # l
339     !!!next-input-character;
340     {
341     $r = {type => 'character', data => qq<\x{00C7}>}; # Ccedil
342     if ($self->{next_input_character} == 0x003B) { # ;
343     !!!next-input-character;
344     } else {
345     !!!parse-error;
346     ## reconsume
347     }
348     }
349     } else {
350     !!!parse-error;
351     !!!back-next-input-character (99, 101, 100, 105, $self->{next_input_character});
352     $self->{next_input_character} = 67;
353     }
354     } else {
355     !!!parse-error;
356     !!!back-next-input-character (99, 101, 100, $self->{next_input_character});
357     $self->{next_input_character} = 67;
358     }
359     } else {
360     !!!parse-error;
361     !!!back-next-input-character (99, 101, $self->{next_input_character});
362     $self->{next_input_character} = 67;
363     }
364     } else {
365     !!!parse-error;
366     !!!back-next-input-character (99, $self->{next_input_character});
367     $self->{next_input_character} = 67;
368     }
369     } elsif ($self->{next_input_character} == 104) { # h
370     !!!next-input-character;
371     if ($self->{next_input_character} == 105) { # i
372     !!!next-input-character;
373     {
374     $r = {type => 'character', data => qq<\x{03A7}>}; # Chi
375     if ($self->{next_input_character} == 0x003B) { # ;
376     !!!next-input-character;
377     } else {
378     !!!parse-error;
379     ## reconsume
380     }
381     }
382     } else {
383     !!!parse-error;
384     !!!back-next-input-character (104, $self->{next_input_character});
385     $self->{next_input_character} = 67;
386     }
387     } elsif ($self->{next_input_character} == 79) { # O
388     !!!next-input-character;
389     if ($self->{next_input_character} == 80) { # P
390     !!!next-input-character;
391     if ($self->{next_input_character} == 89) { # Y
392     !!!next-input-character;
393     {
394     $r = {type => 'character', data => qq<\x{00A9}>}; # COPY
395     if ($self->{next_input_character} == 0x003B) { # ;
396     !!!next-input-character;
397     } else {
398     !!!parse-error;
399     ## reconsume
400     }
401     }
402     } else {
403     !!!parse-error;
404     !!!back-next-input-character (79, 80, $self->{next_input_character});
405     $self->{next_input_character} = 67;
406     }
407     } else {
408     !!!parse-error;
409     !!!back-next-input-character (79, $self->{next_input_character});
410     $self->{next_input_character} = 67;
411     }
412     } else {
413     !!!parse-error;
414     !!!back-next-input-character ($self->{next_input_character});
415     $self->{next_input_character} = 67;
416     }
417     } elsif ($self->{next_input_character} == 68) { # D
418     !!!next-input-character;
419     if ($self->{next_input_character} == 97) { # a
420     !!!next-input-character;
421     if ($self->{next_input_character} == 103) { # g
422     !!!next-input-character;
423     if ($self->{next_input_character} == 103) { # g
424     !!!next-input-character;
425     if ($self->{next_input_character} == 101) { # e
426     !!!next-input-character;
427     if ($self->{next_input_character} == 114) { # r
428     !!!next-input-character;
429     {
430     $r = {type => 'character', data => qq<\x{2021}>}; # Dagger
431     if ($self->{next_input_character} == 0x003B) { # ;
432     !!!next-input-character;
433     } else {
434     !!!parse-error;
435     ## reconsume
436     }
437     }
438     } else {
439     !!!parse-error;
440     !!!back-next-input-character (97, 103, 103, 101, $self->{next_input_character});
441     $self->{next_input_character} = 68;
442     }
443     } else {
444     !!!parse-error;
445     !!!back-next-input-character (97, 103, 103, $self->{next_input_character});
446     $self->{next_input_character} = 68;
447     }
448     } else {
449     !!!parse-error;
450     !!!back-next-input-character (97, 103, $self->{next_input_character});
451     $self->{next_input_character} = 68;
452     }
453     } else {
454     !!!parse-error;
455     !!!back-next-input-character (97, $self->{next_input_character});
456     $self->{next_input_character} = 68;
457     }
458     } elsif ($self->{next_input_character} == 101) { # e
459     !!!next-input-character;
460     if ($self->{next_input_character} == 108) { # l
461     !!!next-input-character;
462     if ($self->{next_input_character} == 116) { # t
463     !!!next-input-character;
464     if ($self->{next_input_character} == 97) { # a
465     !!!next-input-character;
466     {
467     $r = {type => 'character', data => qq<\x{0394}>}; # Delta
468     if ($self->{next_input_character} == 0x003B) { # ;
469     !!!next-input-character;
470     } else {
471     !!!parse-error;
472     ## reconsume
473     }
474     }
475     } else {
476     !!!parse-error;
477     !!!back-next-input-character (101, 108, 116, $self->{next_input_character});
478     $self->{next_input_character} = 68;
479     }
480     } else {
481     !!!parse-error;
482     !!!back-next-input-character (101, 108, $self->{next_input_character});
483     $self->{next_input_character} = 68;
484     }
485     } else {
486     !!!parse-error;
487     !!!back-next-input-character (101, $self->{next_input_character});
488     $self->{next_input_character} = 68;
489     }
490     } else {
491     !!!parse-error;
492     !!!back-next-input-character ($self->{next_input_character});
493     $self->{next_input_character} = 68;
494     }
495     } elsif ($self->{next_input_character} == 69) { # E
496     !!!next-input-character;
497     if ($self->{next_input_character} == 84) { # T
498     !!!next-input-character;
499     if ($self->{next_input_character} == 72) { # H
500     !!!next-input-character;
501     {
502     $r = {type => 'character', data => qq<\x{00D0}>}; # ETH
503     if ($self->{next_input_character} == 0x003B) { # ;
504     !!!next-input-character;
505     } else {
506     !!!parse-error;
507     ## reconsume
508     }
509     }
510     } else {
511     !!!parse-error;
512     !!!back-next-input-character (84, $self->{next_input_character});
513     $self->{next_input_character} = 69;
514     }
515     } elsif ($self->{next_input_character} == 97) { # a
516     !!!next-input-character;
517     if ($self->{next_input_character} == 99) { # c
518     !!!next-input-character;
519     if ($self->{next_input_character} == 117) { # u
520     !!!next-input-character;
521     if ($self->{next_input_character} == 116) { # t
522     !!!next-input-character;
523     if ($self->{next_input_character} == 101) { # e
524     !!!next-input-character;
525     {
526     $r = {type => 'character', data => qq<\x{00C9}>}; # Eacute
527     if ($self->{next_input_character} == 0x003B) { # ;
528     !!!next-input-character;
529     } else {
530     !!!parse-error;
531     ## reconsume
532     }
533     }
534     } else {
535     !!!parse-error;
536     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
537     $self->{next_input_character} = 69;
538     }
539     } else {
540     !!!parse-error;
541     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
542     $self->{next_input_character} = 69;
543     }
544     } else {
545     !!!parse-error;
546     !!!back-next-input-character (97, 99, $self->{next_input_character});
547     $self->{next_input_character} = 69;
548     }
549     } else {
550     !!!parse-error;
551     !!!back-next-input-character (97, $self->{next_input_character});
552     $self->{next_input_character} = 69;
553     }
554     } elsif ($self->{next_input_character} == 99) { # c
555     !!!next-input-character;
556     if ($self->{next_input_character} == 105) { # i
557     !!!next-input-character;
558     if ($self->{next_input_character} == 114) { # r
559     !!!next-input-character;
560     if ($self->{next_input_character} == 99) { # c
561     !!!next-input-character;
562     {
563     $r = {type => 'character', data => qq<\x{00CA}>}; # Ecirc
564     if ($self->{next_input_character} == 0x003B) { # ;
565     !!!next-input-character;
566     } else {
567     !!!parse-error;
568     ## reconsume
569     }
570     }
571     } else {
572     !!!parse-error;
573     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
574     $self->{next_input_character} = 69;
575     }
576     } else {
577     !!!parse-error;
578     !!!back-next-input-character (99, 105, $self->{next_input_character});
579     $self->{next_input_character} = 69;
580     }
581     } else {
582     !!!parse-error;
583     !!!back-next-input-character (99, $self->{next_input_character});
584     $self->{next_input_character} = 69;
585     }
586     } elsif ($self->{next_input_character} == 103) { # g
587     !!!next-input-character;
588     if ($self->{next_input_character} == 114) { # r
589     !!!next-input-character;
590     if ($self->{next_input_character} == 97) { # a
591     !!!next-input-character;
592     if ($self->{next_input_character} == 118) { # v
593     !!!next-input-character;
594     if ($self->{next_input_character} == 101) { # e
595     !!!next-input-character;
596     {
597     $r = {type => 'character', data => qq<\x{00C8}>}; # Egrave
598     if ($self->{next_input_character} == 0x003B) { # ;
599     !!!next-input-character;
600     } else {
601     !!!parse-error;
602     ## reconsume
603     }
604     }
605     } else {
606     !!!parse-error;
607     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
608     $self->{next_input_character} = 69;
609     }
610     } else {
611     !!!parse-error;
612     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
613     $self->{next_input_character} = 69;
614     }
615     } else {
616     !!!parse-error;
617     !!!back-next-input-character (103, 114, $self->{next_input_character});
618     $self->{next_input_character} = 69;
619     }
620     } else {
621     !!!parse-error;
622     !!!back-next-input-character (103, $self->{next_input_character});
623     $self->{next_input_character} = 69;
624     }
625     } elsif ($self->{next_input_character} == 112) { # p
626     !!!next-input-character;
627     if ($self->{next_input_character} == 115) { # s
628     !!!next-input-character;
629     if ($self->{next_input_character} == 105) { # i
630     !!!next-input-character;
631     if ($self->{next_input_character} == 108) { # l
632     !!!next-input-character;
633     if ($self->{next_input_character} == 111) { # o
634     !!!next-input-character;
635     if ($self->{next_input_character} == 110) { # n
636     !!!next-input-character;
637     {
638     $r = {type => 'character', data => qq<\x{0395}>}; # Epsilon
639     if ($self->{next_input_character} == 0x003B) { # ;
640     !!!next-input-character;
641     } else {
642     !!!parse-error;
643     ## reconsume
644     }
645     }
646     } else {
647     !!!parse-error;
648     !!!back-next-input-character (112, 115, 105, 108, 111, $self->{next_input_character});
649     $self->{next_input_character} = 69;
650     }
651     } else {
652     !!!parse-error;
653     !!!back-next-input-character (112, 115, 105, 108, $self->{next_input_character});
654     $self->{next_input_character} = 69;
655     }
656     } else {
657     !!!parse-error;
658     !!!back-next-input-character (112, 115, 105, $self->{next_input_character});
659     $self->{next_input_character} = 69;
660     }
661     } else {
662     !!!parse-error;
663     !!!back-next-input-character (112, 115, $self->{next_input_character});
664     $self->{next_input_character} = 69;
665     }
666     } else {
667     !!!parse-error;
668     !!!back-next-input-character (112, $self->{next_input_character});
669     $self->{next_input_character} = 69;
670     }
671     } elsif ($self->{next_input_character} == 116) { # t
672     !!!next-input-character;
673     if ($self->{next_input_character} == 97) { # a
674     !!!next-input-character;
675     {
676     $r = {type => 'character', data => qq<\x{0397}>}; # Eta
677     if ($self->{next_input_character} == 0x003B) { # ;
678     !!!next-input-character;
679     } else {
680     !!!parse-error;
681     ## reconsume
682     }
683     }
684     } else {
685     !!!parse-error;
686     !!!back-next-input-character (116, $self->{next_input_character});
687     $self->{next_input_character} = 69;
688     }
689     } elsif ($self->{next_input_character} == 117) { # u
690     !!!next-input-character;
691     if ($self->{next_input_character} == 109) { # m
692     !!!next-input-character;
693     if ($self->{next_input_character} == 108) { # l
694     !!!next-input-character;
695     {
696     $r = {type => 'character', data => qq<\x{00CB}>}; # Euml
697     if ($self->{next_input_character} == 0x003B) { # ;
698     !!!next-input-character;
699     } else {
700     !!!parse-error;
701     ## reconsume
702     }
703     }
704     } else {
705     !!!parse-error;
706     !!!back-next-input-character (117, 109, $self->{next_input_character});
707     $self->{next_input_character} = 69;
708     }
709     } else {
710     !!!parse-error;
711     !!!back-next-input-character (117, $self->{next_input_character});
712     $self->{next_input_character} = 69;
713     }
714     } else {
715     !!!parse-error;
716     !!!back-next-input-character ($self->{next_input_character});
717     $self->{next_input_character} = 69;
718     }
719     } elsif ($self->{next_input_character} == 71) { # G
720     !!!next-input-character;
721     if ($self->{next_input_character} == 97) { # a
722     !!!next-input-character;
723     if ($self->{next_input_character} == 109) { # m
724     !!!next-input-character;
725     if ($self->{next_input_character} == 109) { # m
726     !!!next-input-character;
727     if ($self->{next_input_character} == 97) { # a
728     !!!next-input-character;
729     {
730     $r = {type => 'character', data => qq<\x{0393}>}; # Gamma
731     if ($self->{next_input_character} == 0x003B) { # ;
732     !!!next-input-character;
733     } else {
734     !!!parse-error;
735     ## reconsume
736     }
737     }
738     } else {
739     !!!parse-error;
740     !!!back-next-input-character (97, 109, 109, $self->{next_input_character});
741     $self->{next_input_character} = 71;
742     }
743     } else {
744     !!!parse-error;
745     !!!back-next-input-character (97, 109, $self->{next_input_character});
746     $self->{next_input_character} = 71;
747     }
748     } else {
749     !!!parse-error;
750     !!!back-next-input-character (97, $self->{next_input_character});
751     $self->{next_input_character} = 71;
752     }
753     } elsif ($self->{next_input_character} == 84) { # T
754     !!!next-input-character;
755     {
756     $r = {type => 'character', data => qq<\x{003E}>}; # GT
757     if ($self->{next_input_character} == 0x003B) { # ;
758     !!!next-input-character;
759     } else {
760     !!!parse-error;
761     ## reconsume
762     }
763     }
764     } else {
765     !!!parse-error;
766     !!!back-next-input-character ($self->{next_input_character});
767     $self->{next_input_character} = 71;
768     }
769     } elsif ($self->{next_input_character} == 73) { # I
770     !!!next-input-character;
771     if ($self->{next_input_character} == 97) { # a
772     !!!next-input-character;
773     if ($self->{next_input_character} == 99) { # c
774     !!!next-input-character;
775     if ($self->{next_input_character} == 117) { # u
776     !!!next-input-character;
777     if ($self->{next_input_character} == 116) { # t
778     !!!next-input-character;
779     if ($self->{next_input_character} == 101) { # e
780     !!!next-input-character;
781     {
782     $r = {type => 'character', data => qq<\x{00CD}>}; # Iacute
783     if ($self->{next_input_character} == 0x003B) { # ;
784     !!!next-input-character;
785     } else {
786     !!!parse-error;
787     ## reconsume
788     }
789     }
790     } else {
791     !!!parse-error;
792     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
793     $self->{next_input_character} = 73;
794     }
795     } else {
796     !!!parse-error;
797     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
798     $self->{next_input_character} = 73;
799     }
800     } else {
801     !!!parse-error;
802     !!!back-next-input-character (97, 99, $self->{next_input_character});
803     $self->{next_input_character} = 73;
804     }
805     } else {
806     !!!parse-error;
807     !!!back-next-input-character (97, $self->{next_input_character});
808     $self->{next_input_character} = 73;
809     }
810     } elsif ($self->{next_input_character} == 99) { # c
811     !!!next-input-character;
812     if ($self->{next_input_character} == 105) { # i
813     !!!next-input-character;
814     if ($self->{next_input_character} == 114) { # r
815     !!!next-input-character;
816     if ($self->{next_input_character} == 99) { # c
817     !!!next-input-character;
818     {
819     $r = {type => 'character', data => qq<\x{00CE}>}; # Icirc
820     if ($self->{next_input_character} == 0x003B) { # ;
821     !!!next-input-character;
822     } else {
823     !!!parse-error;
824     ## reconsume
825     }
826     }
827     } else {
828     !!!parse-error;
829     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
830     $self->{next_input_character} = 73;
831     }
832     } else {
833     !!!parse-error;
834     !!!back-next-input-character (99, 105, $self->{next_input_character});
835     $self->{next_input_character} = 73;
836     }
837     } else {
838     !!!parse-error;
839     !!!back-next-input-character (99, $self->{next_input_character});
840     $self->{next_input_character} = 73;
841     }
842     } elsif ($self->{next_input_character} == 103) { # g
843     !!!next-input-character;
844     if ($self->{next_input_character} == 114) { # r
845     !!!next-input-character;
846     if ($self->{next_input_character} == 97) { # a
847     !!!next-input-character;
848     if ($self->{next_input_character} == 118) { # v
849     !!!next-input-character;
850     if ($self->{next_input_character} == 101) { # e
851     !!!next-input-character;
852     {
853     $r = {type => 'character', data => qq<\x{00CC}>}; # Igrave
854     if ($self->{next_input_character} == 0x003B) { # ;
855     !!!next-input-character;
856     } else {
857     !!!parse-error;
858     ## reconsume
859     }
860     }
861     } else {
862     !!!parse-error;
863     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
864     $self->{next_input_character} = 73;
865     }
866     } else {
867     !!!parse-error;
868     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
869     $self->{next_input_character} = 73;
870     }
871     } else {
872     !!!parse-error;
873     !!!back-next-input-character (103, 114, $self->{next_input_character});
874     $self->{next_input_character} = 73;
875     }
876     } else {
877     !!!parse-error;
878     !!!back-next-input-character (103, $self->{next_input_character});
879     $self->{next_input_character} = 73;
880     }
881     } elsif ($self->{next_input_character} == 111) { # o
882     !!!next-input-character;
883     if ($self->{next_input_character} == 116) { # t
884     !!!next-input-character;
885     if ($self->{next_input_character} == 97) { # a
886     !!!next-input-character;
887     {
888     $r = {type => 'character', data => qq<\x{0399}>}; # Iota
889     if ($self->{next_input_character} == 0x003B) { # ;
890     !!!next-input-character;
891     } else {
892     !!!parse-error;
893     ## reconsume
894     }
895     }
896     } else {
897     !!!parse-error;
898     !!!back-next-input-character (111, 116, $self->{next_input_character});
899     $self->{next_input_character} = 73;
900     }
901     } else {
902     !!!parse-error;
903     !!!back-next-input-character (111, $self->{next_input_character});
904     $self->{next_input_character} = 73;
905     }
906     } elsif ($self->{next_input_character} == 117) { # u
907     !!!next-input-character;
908     if ($self->{next_input_character} == 109) { # m
909     !!!next-input-character;
910     if ($self->{next_input_character} == 108) { # l
911     !!!next-input-character;
912     {
913     $r = {type => 'character', data => qq<\x{00CF}>}; # Iuml
914     if ($self->{next_input_character} == 0x003B) { # ;
915     !!!next-input-character;
916     } else {
917     !!!parse-error;
918     ## reconsume
919     }
920     }
921     } else {
922     !!!parse-error;
923     !!!back-next-input-character (117, 109, $self->{next_input_character});
924     $self->{next_input_character} = 73;
925     }
926     } else {
927     !!!parse-error;
928     !!!back-next-input-character (117, $self->{next_input_character});
929     $self->{next_input_character} = 73;
930     }
931     } else {
932     !!!parse-error;
933     !!!back-next-input-character ($self->{next_input_character});
934     $self->{next_input_character} = 73;
935     }
936     } elsif ($self->{next_input_character} == 75) { # K
937     !!!next-input-character;
938     if ($self->{next_input_character} == 97) { # a
939     !!!next-input-character;
940     if ($self->{next_input_character} == 112) { # p
941     !!!next-input-character;
942     if ($self->{next_input_character} == 112) { # p
943     !!!next-input-character;
944     if ($self->{next_input_character} == 97) { # a
945     !!!next-input-character;
946     {
947     $r = {type => 'character', data => qq<\x{039A}>}; # Kappa
948     if ($self->{next_input_character} == 0x003B) { # ;
949     !!!next-input-character;
950     } else {
951     !!!parse-error;
952     ## reconsume
953     }
954     }
955     } else {
956     !!!parse-error;
957     !!!back-next-input-character (97, 112, 112, $self->{next_input_character});
958     $self->{next_input_character} = 75;
959     }
960     } else {
961     !!!parse-error;
962     !!!back-next-input-character (97, 112, $self->{next_input_character});
963     $self->{next_input_character} = 75;
964     }
965     } else {
966     !!!parse-error;
967     !!!back-next-input-character (97, $self->{next_input_character});
968     $self->{next_input_character} = 75;
969     }
970     } else {
971     !!!parse-error;
972     !!!back-next-input-character ($self->{next_input_character});
973     $self->{next_input_character} = 75;
974     }
975     } elsif ($self->{next_input_character} == 76) { # L
976     !!!next-input-character;
977     if ($self->{next_input_character} == 97) { # a
978     !!!next-input-character;
979     if ($self->{next_input_character} == 109) { # m
980     !!!next-input-character;
981     if ($self->{next_input_character} == 98) { # b
982     !!!next-input-character;
983     if ($self->{next_input_character} == 100) { # d
984     !!!next-input-character;
985     if ($self->{next_input_character} == 97) { # a
986     !!!next-input-character;
987     {
988     $r = {type => 'character', data => qq<\x{039B}>}; # Lambda
989     if ($self->{next_input_character} == 0x003B) { # ;
990     !!!next-input-character;
991     } else {
992     !!!parse-error;
993     ## reconsume
994     }
995     }
996     } else {
997     !!!parse-error;
998     !!!back-next-input-character (97, 109, 98, 100, $self->{next_input_character});
999     $self->{next_input_character} = 76;
1000     }
1001     } else {
1002     !!!parse-error;
1003     !!!back-next-input-character (97, 109, 98, $self->{next_input_character});
1004     $self->{next_input_character} = 76;
1005     }
1006     } else {
1007     !!!parse-error;
1008     !!!back-next-input-character (97, 109, $self->{next_input_character});
1009     $self->{next_input_character} = 76;
1010     }
1011     } else {
1012     !!!parse-error;
1013     !!!back-next-input-character (97, $self->{next_input_character});
1014     $self->{next_input_character} = 76;
1015     }
1016     } elsif ($self->{next_input_character} == 84) { # T
1017     !!!next-input-character;
1018     {
1019     $r = {type => 'character', data => qq<\x{003C}>}; # LT
1020     if ($self->{next_input_character} == 0x003B) { # ;
1021     !!!next-input-character;
1022     } else {
1023     !!!parse-error;
1024     ## reconsume
1025     }
1026     }
1027     } else {
1028     !!!parse-error;
1029     !!!back-next-input-character ($self->{next_input_character});
1030     $self->{next_input_character} = 76;
1031     }
1032     } elsif ($self->{next_input_character} == 77) { # M
1033     !!!next-input-character;
1034     if ($self->{next_input_character} == 117) { # u
1035     !!!next-input-character;
1036     {
1037     $r = {type => 'character', data => qq<\x{039C}>}; # Mu
1038     if ($self->{next_input_character} == 0x003B) { # ;
1039     !!!next-input-character;
1040     } else {
1041     !!!parse-error;
1042     ## reconsume
1043     }
1044     }
1045     } else {
1046     !!!parse-error;
1047     !!!back-next-input-character ($self->{next_input_character});
1048     $self->{next_input_character} = 77;
1049     }
1050     } elsif ($self->{next_input_character} == 78) { # N
1051     !!!next-input-character;
1052     if ($self->{next_input_character} == 116) { # t
1053     !!!next-input-character;
1054     if ($self->{next_input_character} == 105) { # i
1055     !!!next-input-character;
1056     if ($self->{next_input_character} == 108) { # l
1057     !!!next-input-character;
1058     if ($self->{next_input_character} == 100) { # d
1059     !!!next-input-character;
1060     if ($self->{next_input_character} == 101) { # e
1061     !!!next-input-character;
1062     {
1063     $r = {type => 'character', data => qq<\x{00D1}>}; # Ntilde
1064     if ($self->{next_input_character} == 0x003B) { # ;
1065     !!!next-input-character;
1066     } else {
1067     !!!parse-error;
1068     ## reconsume
1069     }
1070     }
1071     } else {
1072     !!!parse-error;
1073     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
1074     $self->{next_input_character} = 78;
1075     }
1076     } else {
1077     !!!parse-error;
1078     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
1079     $self->{next_input_character} = 78;
1080     }
1081     } else {
1082     !!!parse-error;
1083     !!!back-next-input-character (116, 105, $self->{next_input_character});
1084     $self->{next_input_character} = 78;
1085     }
1086     } else {
1087     !!!parse-error;
1088     !!!back-next-input-character (116, $self->{next_input_character});
1089     $self->{next_input_character} = 78;
1090     }
1091     } elsif ($self->{next_input_character} == 117) { # u
1092     !!!next-input-character;
1093     {
1094     $r = {type => 'character', data => qq<\x{039D}>}; # Nu
1095     if ($self->{next_input_character} == 0x003B) { # ;
1096     !!!next-input-character;
1097     } else {
1098     !!!parse-error;
1099     ## reconsume
1100     }
1101     }
1102     } else {
1103     !!!parse-error;
1104     !!!back-next-input-character ($self->{next_input_character});
1105     $self->{next_input_character} = 78;
1106     }
1107     } elsif ($self->{next_input_character} == 79) { # O
1108     !!!next-input-character;
1109     if ($self->{next_input_character} == 69) { # E
1110     !!!next-input-character;
1111     if ($self->{next_input_character} == 108) { # l
1112     !!!next-input-character;
1113     if ($self->{next_input_character} == 105) { # i
1114     !!!next-input-character;
1115     if ($self->{next_input_character} == 103) { # g
1116     !!!next-input-character;
1117     {
1118     $r = {type => 'character', data => qq<\x{0152}>}; # OElig
1119     if ($self->{next_input_character} == 0x003B) { # ;
1120     !!!next-input-character;
1121     } else {
1122     !!!parse-error;
1123     ## reconsume
1124     }
1125     }
1126     } else {
1127     !!!parse-error;
1128     !!!back-next-input-character (69, 108, 105, $self->{next_input_character});
1129     $self->{next_input_character} = 79;
1130     }
1131     } else {
1132     !!!parse-error;
1133     !!!back-next-input-character (69, 108, $self->{next_input_character});
1134     $self->{next_input_character} = 79;
1135     }
1136     } else {
1137     !!!parse-error;
1138     !!!back-next-input-character (69, $self->{next_input_character});
1139     $self->{next_input_character} = 79;
1140     }
1141     } elsif ($self->{next_input_character} == 97) { # a
1142     !!!next-input-character;
1143     if ($self->{next_input_character} == 99) { # c
1144     !!!next-input-character;
1145     if ($self->{next_input_character} == 117) { # u
1146     !!!next-input-character;
1147     if ($self->{next_input_character} == 116) { # t
1148     !!!next-input-character;
1149     if ($self->{next_input_character} == 101) { # e
1150     !!!next-input-character;
1151     {
1152     $r = {type => 'character', data => qq<\x{00D3}>}; # Oacute
1153     if ($self->{next_input_character} == 0x003B) { # ;
1154     !!!next-input-character;
1155     } else {
1156     !!!parse-error;
1157     ## reconsume
1158     }
1159     }
1160     } else {
1161     !!!parse-error;
1162     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
1163     $self->{next_input_character} = 79;
1164     }
1165     } else {
1166     !!!parse-error;
1167     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
1168     $self->{next_input_character} = 79;
1169     }
1170     } else {
1171     !!!parse-error;
1172     !!!back-next-input-character (97, 99, $self->{next_input_character});
1173     $self->{next_input_character} = 79;
1174     }
1175     } else {
1176     !!!parse-error;
1177     !!!back-next-input-character (97, $self->{next_input_character});
1178     $self->{next_input_character} = 79;
1179     }
1180     } elsif ($self->{next_input_character} == 99) { # c
1181     !!!next-input-character;
1182     if ($self->{next_input_character} == 105) { # i
1183     !!!next-input-character;
1184     if ($self->{next_input_character} == 114) { # r
1185     !!!next-input-character;
1186     if ($self->{next_input_character} == 99) { # c
1187     !!!next-input-character;
1188     {
1189     $r = {type => 'character', data => qq<\x{00D4}>}; # Ocirc
1190     if ($self->{next_input_character} == 0x003B) { # ;
1191     !!!next-input-character;
1192     } else {
1193     !!!parse-error;
1194     ## reconsume
1195     }
1196     }
1197     } else {
1198     !!!parse-error;
1199     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
1200     $self->{next_input_character} = 79;
1201     }
1202     } else {
1203     !!!parse-error;
1204     !!!back-next-input-character (99, 105, $self->{next_input_character});
1205     $self->{next_input_character} = 79;
1206     }
1207     } else {
1208     !!!parse-error;
1209     !!!back-next-input-character (99, $self->{next_input_character});
1210     $self->{next_input_character} = 79;
1211     }
1212     } elsif ($self->{next_input_character} == 103) { # g
1213     !!!next-input-character;
1214     if ($self->{next_input_character} == 114) { # r
1215     !!!next-input-character;
1216     if ($self->{next_input_character} == 97) { # a
1217     !!!next-input-character;
1218     if ($self->{next_input_character} == 118) { # v
1219     !!!next-input-character;
1220     if ($self->{next_input_character} == 101) { # e
1221     !!!next-input-character;
1222     {
1223     $r = {type => 'character', data => qq<\x{00D2}>}; # Ograve
1224     if ($self->{next_input_character} == 0x003B) { # ;
1225     !!!next-input-character;
1226     } else {
1227     !!!parse-error;
1228     ## reconsume
1229     }
1230     }
1231     } else {
1232     !!!parse-error;
1233     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
1234     $self->{next_input_character} = 79;
1235     }
1236     } else {
1237     !!!parse-error;
1238     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
1239     $self->{next_input_character} = 79;
1240     }
1241     } else {
1242     !!!parse-error;
1243     !!!back-next-input-character (103, 114, $self->{next_input_character});
1244     $self->{next_input_character} = 79;
1245     }
1246     } else {
1247     !!!parse-error;
1248     !!!back-next-input-character (103, $self->{next_input_character});
1249     $self->{next_input_character} = 79;
1250     }
1251     } elsif ($self->{next_input_character} == 109) { # m
1252     !!!next-input-character;
1253     if ($self->{next_input_character} == 101) { # e
1254     !!!next-input-character;
1255     if ($self->{next_input_character} == 103) { # g
1256     !!!next-input-character;
1257     if ($self->{next_input_character} == 97) { # a
1258     !!!next-input-character;
1259     {
1260     $r = {type => 'character', data => qq<\x{03A9}>}; # Omega
1261     if ($self->{next_input_character} == 0x003B) { # ;
1262     !!!next-input-character;
1263     } else {
1264     !!!parse-error;
1265     ## reconsume
1266     }
1267     }
1268     } else {
1269     !!!parse-error;
1270     !!!back-next-input-character (109, 101, 103, $self->{next_input_character});
1271     $self->{next_input_character} = 79;
1272     }
1273     } else {
1274     !!!parse-error;
1275     !!!back-next-input-character (109, 101, $self->{next_input_character});
1276     $self->{next_input_character} = 79;
1277     }
1278     } elsif ($self->{next_input_character} == 105) { # i
1279     !!!next-input-character;
1280     if ($self->{next_input_character} == 99) { # c
1281     !!!next-input-character;
1282     if ($self->{next_input_character} == 114) { # r
1283     !!!next-input-character;
1284     if ($self->{next_input_character} == 111) { # o
1285     !!!next-input-character;
1286     if ($self->{next_input_character} == 110) { # n
1287     !!!next-input-character;
1288     {
1289     $r = {type => 'character', data => qq<\x{039F}>}; # Omicron
1290     if ($self->{next_input_character} == 0x003B) { # ;
1291     !!!next-input-character;
1292     } else {
1293     !!!parse-error;
1294     ## reconsume
1295     }
1296     }
1297     } else {
1298     !!!parse-error;
1299     !!!back-next-input-character (109, 105, 99, 114, 111, $self->{next_input_character});
1300     $self->{next_input_character} = 79;
1301     }
1302     } else {
1303     !!!parse-error;
1304     !!!back-next-input-character (109, 105, 99, 114, $self->{next_input_character});
1305     $self->{next_input_character} = 79;
1306     }
1307     } else {
1308     !!!parse-error;
1309     !!!back-next-input-character (109, 105, 99, $self->{next_input_character});
1310     $self->{next_input_character} = 79;
1311     }
1312     } else {
1313     !!!parse-error;
1314     !!!back-next-input-character (109, 105, $self->{next_input_character});
1315     $self->{next_input_character} = 79;
1316     }
1317     } else {
1318     !!!parse-error;
1319     !!!back-next-input-character (109, $self->{next_input_character});
1320     $self->{next_input_character} = 79;
1321     }
1322     } elsif ($self->{next_input_character} == 115) { # s
1323     !!!next-input-character;
1324     if ($self->{next_input_character} == 108) { # l
1325     !!!next-input-character;
1326     if ($self->{next_input_character} == 97) { # a
1327     !!!next-input-character;
1328     if ($self->{next_input_character} == 115) { # s
1329     !!!next-input-character;
1330     if ($self->{next_input_character} == 104) { # h
1331     !!!next-input-character;
1332     {
1333     $r = {type => 'character', data => qq<\x{00D8}>}; # Oslash
1334     if ($self->{next_input_character} == 0x003B) { # ;
1335     !!!next-input-character;
1336     } else {
1337     !!!parse-error;
1338     ## reconsume
1339     }
1340     }
1341     } else {
1342     !!!parse-error;
1343     !!!back-next-input-character (115, 108, 97, 115, $self->{next_input_character});
1344     $self->{next_input_character} = 79;
1345     }
1346     } else {
1347     !!!parse-error;
1348     !!!back-next-input-character (115, 108, 97, $self->{next_input_character});
1349     $self->{next_input_character} = 79;
1350     }
1351     } else {
1352     !!!parse-error;
1353     !!!back-next-input-character (115, 108, $self->{next_input_character});
1354     $self->{next_input_character} = 79;
1355     }
1356     } else {
1357     !!!parse-error;
1358     !!!back-next-input-character (115, $self->{next_input_character});
1359     $self->{next_input_character} = 79;
1360     }
1361     } elsif ($self->{next_input_character} == 116) { # t
1362     !!!next-input-character;
1363     if ($self->{next_input_character} == 105) { # i
1364     !!!next-input-character;
1365     if ($self->{next_input_character} == 108) { # l
1366     !!!next-input-character;
1367     if ($self->{next_input_character} == 100) { # d
1368     !!!next-input-character;
1369     if ($self->{next_input_character} == 101) { # e
1370     !!!next-input-character;
1371     {
1372     $r = {type => 'character', data => qq<\x{00D5}>}; # Otilde
1373     if ($self->{next_input_character} == 0x003B) { # ;
1374     !!!next-input-character;
1375     } else {
1376     !!!parse-error;
1377     ## reconsume
1378     }
1379     }
1380     } else {
1381     !!!parse-error;
1382     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
1383     $self->{next_input_character} = 79;
1384     }
1385     } else {
1386     !!!parse-error;
1387     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
1388     $self->{next_input_character} = 79;
1389     }
1390     } else {
1391     !!!parse-error;
1392     !!!back-next-input-character (116, 105, $self->{next_input_character});
1393     $self->{next_input_character} = 79;
1394     }
1395     } else {
1396     !!!parse-error;
1397     !!!back-next-input-character (116, $self->{next_input_character});
1398     $self->{next_input_character} = 79;
1399     }
1400     } elsif ($self->{next_input_character} == 117) { # u
1401     !!!next-input-character;
1402     if ($self->{next_input_character} == 109) { # m
1403     !!!next-input-character;
1404     if ($self->{next_input_character} == 108) { # l
1405     !!!next-input-character;
1406     {
1407     $r = {type => 'character', data => qq<\x{00D6}>}; # Ouml
1408     if ($self->{next_input_character} == 0x003B) { # ;
1409     !!!next-input-character;
1410     } else {
1411     !!!parse-error;
1412     ## reconsume
1413     }
1414     }
1415     } else {
1416     !!!parse-error;
1417     !!!back-next-input-character (117, 109, $self->{next_input_character});
1418     $self->{next_input_character} = 79;
1419     }
1420     } else {
1421     !!!parse-error;
1422     !!!back-next-input-character (117, $self->{next_input_character});
1423     $self->{next_input_character} = 79;
1424     }
1425     } else {
1426     !!!parse-error;
1427     !!!back-next-input-character ($self->{next_input_character});
1428     $self->{next_input_character} = 79;
1429     }
1430     } elsif ($self->{next_input_character} == 80) { # P
1431     !!!next-input-character;
1432     if ($self->{next_input_character} == 104) { # h
1433     !!!next-input-character;
1434     if ($self->{next_input_character} == 105) { # i
1435     !!!next-input-character;
1436     {
1437     $r = {type => 'character', data => qq<\x{03A6}>}; # Phi
1438     if ($self->{next_input_character} == 0x003B) { # ;
1439     !!!next-input-character;
1440     } else {
1441     !!!parse-error;
1442     ## reconsume
1443     }
1444     }
1445     } else {
1446     !!!parse-error;
1447     !!!back-next-input-character (104, $self->{next_input_character});
1448     $self->{next_input_character} = 80;
1449     }
1450     } elsif ($self->{next_input_character} == 105) { # i
1451     !!!next-input-character;
1452     {
1453     $r = {type => 'character', data => qq<\x{03A0}>}; # Pi
1454     if ($self->{next_input_character} == 0x003B) { # ;
1455     !!!next-input-character;
1456     } else {
1457     !!!parse-error;
1458     ## reconsume
1459     }
1460     }
1461     } elsif ($self->{next_input_character} == 114) { # r
1462     !!!next-input-character;
1463     if ($self->{next_input_character} == 105) { # i
1464     !!!next-input-character;
1465     if ($self->{next_input_character} == 109) { # m
1466     !!!next-input-character;
1467     if ($self->{next_input_character} == 101) { # e
1468     !!!next-input-character;
1469     {
1470     $r = {type => 'character', data => qq<\x{2033}>}; # Prime
1471     if ($self->{next_input_character} == 0x003B) { # ;
1472     !!!next-input-character;
1473     } else {
1474     !!!parse-error;
1475     ## reconsume
1476     }
1477     }
1478     } else {
1479     !!!parse-error;
1480     !!!back-next-input-character (114, 105, 109, $self->{next_input_character});
1481     $self->{next_input_character} = 80;
1482     }
1483     } else {
1484     !!!parse-error;
1485     !!!back-next-input-character (114, 105, $self->{next_input_character});
1486     $self->{next_input_character} = 80;
1487     }
1488     } else {
1489     !!!parse-error;
1490     !!!back-next-input-character (114, $self->{next_input_character});
1491     $self->{next_input_character} = 80;
1492     }
1493     } elsif ($self->{next_input_character} == 115) { # s
1494     !!!next-input-character;
1495     if ($self->{next_input_character} == 105) { # i
1496     !!!next-input-character;
1497     {
1498     $r = {type => 'character', data => qq<\x{03A8}>}; # Psi
1499     if ($self->{next_input_character} == 0x003B) { # ;
1500     !!!next-input-character;
1501     } else {
1502     !!!parse-error;
1503     ## reconsume
1504     }
1505     }
1506     } else {
1507     !!!parse-error;
1508     !!!back-next-input-character (115, $self->{next_input_character});
1509     $self->{next_input_character} = 80;
1510     }
1511     } else {
1512     !!!parse-error;
1513     !!!back-next-input-character ($self->{next_input_character});
1514     $self->{next_input_character} = 80;
1515     }
1516     } elsif ($self->{next_input_character} == 82) { # R
1517     !!!next-input-character;
1518     if ($self->{next_input_character} == 104) { # h
1519     !!!next-input-character;
1520     if ($self->{next_input_character} == 111) { # o
1521     !!!next-input-character;
1522     {
1523     $r = {type => 'character', data => qq<\x{03A1}>}; # Rho
1524     if ($self->{next_input_character} == 0x003B) { # ;
1525     !!!next-input-character;
1526     } else {
1527     !!!parse-error;
1528     ## reconsume
1529     }
1530     }
1531     } else {
1532     !!!parse-error;
1533     !!!back-next-input-character (104, $self->{next_input_character});
1534     $self->{next_input_character} = 82;
1535     }
1536     } elsif ($self->{next_input_character} == 69) { # E
1537     !!!next-input-character;
1538     if ($self->{next_input_character} == 71) { # G
1539     !!!next-input-character;
1540     {
1541     $r = {type => 'character', data => qq<\x{00AE}>}; # REG
1542     if ($self->{next_input_character} == 0x003B) { # ;
1543     !!!next-input-character;
1544     } else {
1545     !!!parse-error;
1546     ## reconsume
1547     }
1548     }
1549     } else {
1550     !!!parse-error;
1551     !!!back-next-input-character (69, $self->{next_input_character});
1552     $self->{next_input_character} = 82;
1553     }
1554     } else {
1555     !!!parse-error;
1556     !!!back-next-input-character ($self->{next_input_character});
1557     $self->{next_input_character} = 82;
1558     }
1559     } elsif ($self->{next_input_character} == 83) { # S
1560     !!!next-input-character;
1561     if ($self->{next_input_character} == 99) { # c
1562     !!!next-input-character;
1563     if ($self->{next_input_character} == 97) { # a
1564     !!!next-input-character;
1565     if ($self->{next_input_character} == 114) { # r
1566     !!!next-input-character;
1567     if ($self->{next_input_character} == 111) { # o
1568     !!!next-input-character;
1569     if ($self->{next_input_character} == 110) { # n
1570     !!!next-input-character;
1571     {
1572     $r = {type => 'character', data => qq<\x{0160}>}; # Scaron
1573     if ($self->{next_input_character} == 0x003B) { # ;
1574     !!!next-input-character;
1575     } else {
1576     !!!parse-error;
1577     ## reconsume
1578     }
1579     }
1580     } else {
1581     !!!parse-error;
1582     !!!back-next-input-character (99, 97, 114, 111, $self->{next_input_character});
1583     $self->{next_input_character} = 83;
1584     }
1585     } else {
1586     !!!parse-error;
1587     !!!back-next-input-character (99, 97, 114, $self->{next_input_character});
1588     $self->{next_input_character} = 83;
1589     }
1590     } else {
1591     !!!parse-error;
1592     !!!back-next-input-character (99, 97, $self->{next_input_character});
1593     $self->{next_input_character} = 83;
1594     }
1595     } else {
1596     !!!parse-error;
1597     !!!back-next-input-character (99, $self->{next_input_character});
1598     $self->{next_input_character} = 83;
1599     }
1600     } elsif ($self->{next_input_character} == 105) { # i
1601     !!!next-input-character;
1602     if ($self->{next_input_character} == 103) { # g
1603     !!!next-input-character;
1604     if ($self->{next_input_character} == 109) { # m
1605     !!!next-input-character;
1606     if ($self->{next_input_character} == 97) { # a
1607     !!!next-input-character;
1608     {
1609     $r = {type => 'character', data => qq<\x{03A3}>}; # Sigma
1610     if ($self->{next_input_character} == 0x003B) { # ;
1611     !!!next-input-character;
1612     } else {
1613     !!!parse-error;
1614     ## reconsume
1615     }
1616     }
1617     } else {
1618     !!!parse-error;
1619     !!!back-next-input-character (105, 103, 109, $self->{next_input_character});
1620     $self->{next_input_character} = 83;
1621     }
1622     } else {
1623     !!!parse-error;
1624     !!!back-next-input-character (105, 103, $self->{next_input_character});
1625     $self->{next_input_character} = 83;
1626     }
1627     } else {
1628     !!!parse-error;
1629     !!!back-next-input-character (105, $self->{next_input_character});
1630     $self->{next_input_character} = 83;
1631     }
1632     } else {
1633     !!!parse-error;
1634     !!!back-next-input-character ($self->{next_input_character});
1635     $self->{next_input_character} = 83;
1636     }
1637     } elsif ($self->{next_input_character} == 84) { # T
1638     !!!next-input-character;
1639     if ($self->{next_input_character} == 72) { # H
1640     !!!next-input-character;
1641     if ($self->{next_input_character} == 79) { # O
1642     !!!next-input-character;
1643     if ($self->{next_input_character} == 82) { # R
1644     !!!next-input-character;
1645     if ($self->{next_input_character} == 78) { # N
1646     !!!next-input-character;
1647     {
1648     $r = {type => 'character', data => qq<\x{00DE}>}; # THORN
1649     if ($self->{next_input_character} == 0x003B) { # ;
1650     !!!next-input-character;
1651     } else {
1652     !!!parse-error;
1653     ## reconsume
1654     }
1655     }
1656     } else {
1657     !!!parse-error;
1658     !!!back-next-input-character (72, 79, 82, $self->{next_input_character});
1659     $self->{next_input_character} = 84;
1660     }
1661     } else {
1662     !!!parse-error;
1663     !!!back-next-input-character (72, 79, $self->{next_input_character});
1664     $self->{next_input_character} = 84;
1665     }
1666     } else {
1667     !!!parse-error;
1668     !!!back-next-input-character (72, $self->{next_input_character});
1669     $self->{next_input_character} = 84;
1670     }
1671     } elsif ($self->{next_input_character} == 97) { # a
1672     !!!next-input-character;
1673     if ($self->{next_input_character} == 117) { # u
1674     !!!next-input-character;
1675     {
1676     $r = {type => 'character', data => qq<\x{03A4}>}; # Tau
1677     if ($self->{next_input_character} == 0x003B) { # ;
1678     !!!next-input-character;
1679     } else {
1680     !!!parse-error;
1681     ## reconsume
1682     }
1683     }
1684     } else {
1685     !!!parse-error;
1686     !!!back-next-input-character (97, $self->{next_input_character});
1687     $self->{next_input_character} = 84;
1688     }
1689     } elsif ($self->{next_input_character} == 104) { # h
1690     !!!next-input-character;
1691     if ($self->{next_input_character} == 101) { # e
1692     !!!next-input-character;
1693     if ($self->{next_input_character} == 116) { # t
1694     !!!next-input-character;
1695     if ($self->{next_input_character} == 97) { # a
1696     !!!next-input-character;
1697     {
1698     $r = {type => 'character', data => qq<\x{0398}>}; # Theta
1699     if ($self->{next_input_character} == 0x003B) { # ;
1700     !!!next-input-character;
1701     } else {
1702     !!!parse-error;
1703     ## reconsume
1704     }
1705     }
1706     } else {
1707     !!!parse-error;
1708     !!!back-next-input-character (104, 101, 116, $self->{next_input_character});
1709     $self->{next_input_character} = 84;
1710     }
1711     } else {
1712     !!!parse-error;
1713     !!!back-next-input-character (104, 101, $self->{next_input_character});
1714     $self->{next_input_character} = 84;
1715     }
1716     } else {
1717     !!!parse-error;
1718     !!!back-next-input-character (104, $self->{next_input_character});
1719     $self->{next_input_character} = 84;
1720     }
1721     } else {
1722     !!!parse-error;
1723     !!!back-next-input-character ($self->{next_input_character});
1724     $self->{next_input_character} = 84;
1725     }
1726     } elsif ($self->{next_input_character} == 85) { # U
1727     !!!next-input-character;
1728     if ($self->{next_input_character} == 97) { # a
1729     !!!next-input-character;
1730     if ($self->{next_input_character} == 99) { # c
1731     !!!next-input-character;
1732     if ($self->{next_input_character} == 117) { # u
1733     !!!next-input-character;
1734     if ($self->{next_input_character} == 116) { # t
1735     !!!next-input-character;
1736     if ($self->{next_input_character} == 101) { # e
1737     !!!next-input-character;
1738     {
1739     $r = {type => 'character', data => qq<\x{00DA}>}; # Uacute
1740     if ($self->{next_input_character} == 0x003B) { # ;
1741     !!!next-input-character;
1742     } else {
1743     !!!parse-error;
1744     ## reconsume
1745     }
1746     }
1747     } else {
1748     !!!parse-error;
1749     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
1750     $self->{next_input_character} = 85;
1751     }
1752     } else {
1753     !!!parse-error;
1754     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
1755     $self->{next_input_character} = 85;
1756     }
1757     } else {
1758     !!!parse-error;
1759     !!!back-next-input-character (97, 99, $self->{next_input_character});
1760     $self->{next_input_character} = 85;
1761     }
1762     } else {
1763     !!!parse-error;
1764     !!!back-next-input-character (97, $self->{next_input_character});
1765     $self->{next_input_character} = 85;
1766     }
1767     } elsif ($self->{next_input_character} == 99) { # c
1768     !!!next-input-character;
1769     if ($self->{next_input_character} == 105) { # i
1770     !!!next-input-character;
1771     if ($self->{next_input_character} == 114) { # r
1772     !!!next-input-character;
1773     if ($self->{next_input_character} == 99) { # c
1774     !!!next-input-character;
1775     {
1776     $r = {type => 'character', data => qq<\x{00DB}>}; # Ucirc
1777     if ($self->{next_input_character} == 0x003B) { # ;
1778     !!!next-input-character;
1779     } else {
1780     !!!parse-error;
1781     ## reconsume
1782     }
1783     }
1784     } else {
1785     !!!parse-error;
1786     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
1787     $self->{next_input_character} = 85;
1788     }
1789     } else {
1790     !!!parse-error;
1791     !!!back-next-input-character (99, 105, $self->{next_input_character});
1792     $self->{next_input_character} = 85;
1793     }
1794     } else {
1795     !!!parse-error;
1796     !!!back-next-input-character (99, $self->{next_input_character});
1797     $self->{next_input_character} = 85;
1798     }
1799     } elsif ($self->{next_input_character} == 103) { # g
1800     !!!next-input-character;
1801     if ($self->{next_input_character} == 114) { # r
1802     !!!next-input-character;
1803     if ($self->{next_input_character} == 97) { # a
1804     !!!next-input-character;
1805     if ($self->{next_input_character} == 118) { # v
1806     !!!next-input-character;
1807     if ($self->{next_input_character} == 101) { # e
1808     !!!next-input-character;
1809     {
1810     $r = {type => 'character', data => qq<\x{00D9}>}; # Ugrave
1811     if ($self->{next_input_character} == 0x003B) { # ;
1812     !!!next-input-character;
1813     } else {
1814     !!!parse-error;
1815     ## reconsume
1816     }
1817     }
1818     } else {
1819     !!!parse-error;
1820     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
1821     $self->{next_input_character} = 85;
1822     }
1823     } else {
1824     !!!parse-error;
1825     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
1826     $self->{next_input_character} = 85;
1827     }
1828     } else {
1829     !!!parse-error;
1830     !!!back-next-input-character (103, 114, $self->{next_input_character});
1831     $self->{next_input_character} = 85;
1832     }
1833     } else {
1834     !!!parse-error;
1835     !!!back-next-input-character (103, $self->{next_input_character});
1836     $self->{next_input_character} = 85;
1837     }
1838     } elsif ($self->{next_input_character} == 112) { # p
1839     !!!next-input-character;
1840     if ($self->{next_input_character} == 115) { # s
1841     !!!next-input-character;
1842     if ($self->{next_input_character} == 105) { # i
1843     !!!next-input-character;
1844     if ($self->{next_input_character} == 108) { # l
1845     !!!next-input-character;
1846     if ($self->{next_input_character} == 111) { # o
1847     !!!next-input-character;
1848     if ($self->{next_input_character} == 110) { # n
1849     !!!next-input-character;
1850     {
1851     $r = {type => 'character', data => qq<\x{03A5}>}; # Upsilon
1852     if ($self->{next_input_character} == 0x003B) { # ;
1853     !!!next-input-character;
1854     } else {
1855     !!!parse-error;
1856     ## reconsume
1857     }
1858     }
1859     } else {
1860     !!!parse-error;
1861     !!!back-next-input-character (112, 115, 105, 108, 111, $self->{next_input_character});
1862     $self->{next_input_character} = 85;
1863     }
1864     } else {
1865     !!!parse-error;
1866     !!!back-next-input-character (112, 115, 105, 108, $self->{next_input_character});
1867     $self->{next_input_character} = 85;
1868     }
1869     } else {
1870     !!!parse-error;
1871     !!!back-next-input-character (112, 115, 105, $self->{next_input_character});
1872     $self->{next_input_character} = 85;
1873     }
1874     } else {
1875     !!!parse-error;
1876     !!!back-next-input-character (112, 115, $self->{next_input_character});
1877     $self->{next_input_character} = 85;
1878     }
1879     } else {
1880     !!!parse-error;
1881     !!!back-next-input-character (112, $self->{next_input_character});
1882     $self->{next_input_character} = 85;
1883     }
1884     } elsif ($self->{next_input_character} == 117) { # u
1885     !!!next-input-character;
1886     if ($self->{next_input_character} == 109) { # m
1887     !!!next-input-character;
1888     if ($self->{next_input_character} == 108) { # l
1889     !!!next-input-character;
1890     {
1891     $r = {type => 'character', data => qq<\x{00DC}>}; # Uuml
1892     if ($self->{next_input_character} == 0x003B) { # ;
1893     !!!next-input-character;
1894     } else {
1895     !!!parse-error;
1896     ## reconsume
1897     }
1898     }
1899     } else {
1900     !!!parse-error;
1901     !!!back-next-input-character (117, 109, $self->{next_input_character});
1902     $self->{next_input_character} = 85;
1903     }
1904     } else {
1905     !!!parse-error;
1906     !!!back-next-input-character (117, $self->{next_input_character});
1907     $self->{next_input_character} = 85;
1908     }
1909     } else {
1910     !!!parse-error;
1911     !!!back-next-input-character ($self->{next_input_character});
1912     $self->{next_input_character} = 85;
1913     }
1914     } elsif ($self->{next_input_character} == 88) { # X
1915     !!!next-input-character;
1916     if ($self->{next_input_character} == 105) { # i
1917     !!!next-input-character;
1918     {
1919     $r = {type => 'character', data => qq<\x{039E}>}; # Xi
1920     if ($self->{next_input_character} == 0x003B) { # ;
1921     !!!next-input-character;
1922     } else {
1923     !!!parse-error;
1924     ## reconsume
1925     }
1926     }
1927     } else {
1928     !!!parse-error;
1929     !!!back-next-input-character ($self->{next_input_character});
1930     $self->{next_input_character} = 88;
1931     }
1932     } elsif ($self->{next_input_character} == 89) { # Y
1933     !!!next-input-character;
1934     if ($self->{next_input_character} == 97) { # a
1935     !!!next-input-character;
1936     if ($self->{next_input_character} == 99) { # c
1937     !!!next-input-character;
1938     if ($self->{next_input_character} == 117) { # u
1939     !!!next-input-character;
1940     if ($self->{next_input_character} == 116) { # t
1941     !!!next-input-character;
1942     if ($self->{next_input_character} == 101) { # e
1943     !!!next-input-character;
1944     {
1945     $r = {type => 'character', data => qq<\x{00DD}>}; # Yacute
1946     if ($self->{next_input_character} == 0x003B) { # ;
1947     !!!next-input-character;
1948     } else {
1949     !!!parse-error;
1950     ## reconsume
1951     }
1952     }
1953     } else {
1954     !!!parse-error;
1955     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
1956     $self->{next_input_character} = 89;
1957     }
1958     } else {
1959     !!!parse-error;
1960     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
1961     $self->{next_input_character} = 89;
1962     }
1963     } else {
1964     !!!parse-error;
1965     !!!back-next-input-character (97, 99, $self->{next_input_character});
1966     $self->{next_input_character} = 89;
1967     }
1968     } else {
1969     !!!parse-error;
1970     !!!back-next-input-character (97, $self->{next_input_character});
1971     $self->{next_input_character} = 89;
1972     }
1973     } elsif ($self->{next_input_character} == 117) { # u
1974     !!!next-input-character;
1975     if ($self->{next_input_character} == 109) { # m
1976     !!!next-input-character;
1977     if ($self->{next_input_character} == 108) { # l
1978     !!!next-input-character;
1979     {
1980     $r = {type => 'character', data => qq<\x{0178}>}; # Yuml
1981     if ($self->{next_input_character} == 0x003B) { # ;
1982     !!!next-input-character;
1983     } else {
1984     !!!parse-error;
1985     ## reconsume
1986     }
1987     }
1988     } else {
1989     !!!parse-error;
1990     !!!back-next-input-character (117, 109, $self->{next_input_character});
1991     $self->{next_input_character} = 89;
1992     }
1993     } else {
1994     !!!parse-error;
1995     !!!back-next-input-character (117, $self->{next_input_character});
1996     $self->{next_input_character} = 89;
1997     }
1998     } else {
1999     !!!parse-error;
2000     !!!back-next-input-character ($self->{next_input_character});
2001     $self->{next_input_character} = 89;
2002     }
2003     } elsif ($self->{next_input_character} == 90) { # Z
2004     !!!next-input-character;
2005     if ($self->{next_input_character} == 101) { # e
2006     !!!next-input-character;
2007     if ($self->{next_input_character} == 116) { # t
2008     !!!next-input-character;
2009     if ($self->{next_input_character} == 97) { # a
2010     !!!next-input-character;
2011     {
2012     $r = {type => 'character', data => qq<\x{0396}>}; # Zeta
2013     if ($self->{next_input_character} == 0x003B) { # ;
2014     !!!next-input-character;
2015     } else {
2016     !!!parse-error;
2017     ## reconsume
2018     }
2019     }
2020     } else {
2021     !!!parse-error;
2022     !!!back-next-input-character (101, 116, $self->{next_input_character});
2023     $self->{next_input_character} = 90;
2024     }
2025     } else {
2026     !!!parse-error;
2027     !!!back-next-input-character (101, $self->{next_input_character});
2028     $self->{next_input_character} = 90;
2029     }
2030     } else {
2031     !!!parse-error;
2032     !!!back-next-input-character ($self->{next_input_character});
2033     $self->{next_input_character} = 90;
2034     }
2035     } elsif ($self->{next_input_character} == 97) { # a
2036     !!!next-input-character;
2037     if ($self->{next_input_character} == 97) { # a
2038     !!!next-input-character;
2039     if ($self->{next_input_character} == 99) { # c
2040     !!!next-input-character;
2041     if ($self->{next_input_character} == 117) { # u
2042     !!!next-input-character;
2043     if ($self->{next_input_character} == 116) { # t
2044     !!!next-input-character;
2045     if ($self->{next_input_character} == 101) { # e
2046     !!!next-input-character;
2047     {
2048     $r = {type => 'character', data => qq<\x{00E1}>}; # aacute
2049     if ($self->{next_input_character} == 0x003B) { # ;
2050     !!!next-input-character;
2051     } else {
2052     !!!parse-error;
2053     ## reconsume
2054     }
2055     }
2056     } else {
2057     !!!parse-error;
2058     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
2059     $self->{next_input_character} = 97;
2060     }
2061     } else {
2062     !!!parse-error;
2063     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
2064     $self->{next_input_character} = 97;
2065     }
2066     } else {
2067     !!!parse-error;
2068     !!!back-next-input-character (97, 99, $self->{next_input_character});
2069     $self->{next_input_character} = 97;
2070     }
2071     } else {
2072     !!!parse-error;
2073     !!!back-next-input-character (97, $self->{next_input_character});
2074     $self->{next_input_character} = 97;
2075     }
2076     } elsif ($self->{next_input_character} == 99) { # c
2077     !!!next-input-character;
2078     if ($self->{next_input_character} == 105) { # i
2079     !!!next-input-character;
2080     if ($self->{next_input_character} == 114) { # r
2081     !!!next-input-character;
2082     if ($self->{next_input_character} == 99) { # c
2083     !!!next-input-character;
2084     {
2085     $r = {type => 'character', data => qq<\x{00E2}>}; # acirc
2086     if ($self->{next_input_character} == 0x003B) { # ;
2087     !!!next-input-character;
2088     } else {
2089     !!!parse-error;
2090     ## reconsume
2091     }
2092     }
2093     } else {
2094     !!!parse-error;
2095     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
2096     $self->{next_input_character} = 97;
2097     }
2098     } else {
2099     !!!parse-error;
2100     !!!back-next-input-character (99, 105, $self->{next_input_character});
2101     $self->{next_input_character} = 97;
2102     }
2103     } elsif ($self->{next_input_character} == 117) { # u
2104     !!!next-input-character;
2105     if ($self->{next_input_character} == 116) { # t
2106     !!!next-input-character;
2107     if ($self->{next_input_character} == 101) { # e
2108     !!!next-input-character;
2109     {
2110     $r = {type => 'character', data => qq<\x{00B4}>}; # acute
2111     if ($self->{next_input_character} == 0x003B) { # ;
2112     !!!next-input-character;
2113     } else {
2114     !!!parse-error;
2115     ## reconsume
2116     }
2117     }
2118     } else {
2119     !!!parse-error;
2120     !!!back-next-input-character (99, 117, 116, $self->{next_input_character});
2121     $self->{next_input_character} = 97;
2122     }
2123     } else {
2124     !!!parse-error;
2125     !!!back-next-input-character (99, 117, $self->{next_input_character});
2126     $self->{next_input_character} = 97;
2127     }
2128     } else {
2129     !!!parse-error;
2130     !!!back-next-input-character (99, $self->{next_input_character});
2131     $self->{next_input_character} = 97;
2132     }
2133     } elsif ($self->{next_input_character} == 101) { # e
2134     !!!next-input-character;
2135     if ($self->{next_input_character} == 108) { # l
2136     !!!next-input-character;
2137     if ($self->{next_input_character} == 105) { # i
2138     !!!next-input-character;
2139     if ($self->{next_input_character} == 103) { # g
2140     !!!next-input-character;
2141     {
2142     $r = {type => 'character', data => qq<\x{00E6}>}; # aelig
2143     if ($self->{next_input_character} == 0x003B) { # ;
2144     !!!next-input-character;
2145     } else {
2146     !!!parse-error;
2147     ## reconsume
2148     }
2149     }
2150     } else {
2151     !!!parse-error;
2152     !!!back-next-input-character (101, 108, 105, $self->{next_input_character});
2153     $self->{next_input_character} = 97;
2154     }
2155     } else {
2156     !!!parse-error;
2157     !!!back-next-input-character (101, 108, $self->{next_input_character});
2158     $self->{next_input_character} = 97;
2159     }
2160     } else {
2161     !!!parse-error;
2162     !!!back-next-input-character (101, $self->{next_input_character});
2163     $self->{next_input_character} = 97;
2164     }
2165     } elsif ($self->{next_input_character} == 103) { # g
2166     !!!next-input-character;
2167     if ($self->{next_input_character} == 114) { # r
2168     !!!next-input-character;
2169     if ($self->{next_input_character} == 97) { # a
2170     !!!next-input-character;
2171     if ($self->{next_input_character} == 118) { # v
2172     !!!next-input-character;
2173     if ($self->{next_input_character} == 101) { # e
2174     !!!next-input-character;
2175     {
2176     $r = {type => 'character', data => qq<\x{00E0}>}; # agrave
2177     if ($self->{next_input_character} == 0x003B) { # ;
2178     !!!next-input-character;
2179     } else {
2180     !!!parse-error;
2181     ## reconsume
2182     }
2183     }
2184     } else {
2185     !!!parse-error;
2186     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
2187     $self->{next_input_character} = 97;
2188     }
2189     } else {
2190     !!!parse-error;
2191     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
2192     $self->{next_input_character} = 97;
2193     }
2194     } else {
2195     !!!parse-error;
2196     !!!back-next-input-character (103, 114, $self->{next_input_character});
2197     $self->{next_input_character} = 97;
2198     }
2199     } else {
2200     !!!parse-error;
2201     !!!back-next-input-character (103, $self->{next_input_character});
2202     $self->{next_input_character} = 97;
2203     }
2204     } elsif ($self->{next_input_character} == 108) { # l
2205     !!!next-input-character;
2206     if ($self->{next_input_character} == 101) { # e
2207     !!!next-input-character;
2208     if ($self->{next_input_character} == 102) { # f
2209     !!!next-input-character;
2210     if ($self->{next_input_character} == 115) { # s
2211     !!!next-input-character;
2212     if ($self->{next_input_character} == 121) { # y
2213     !!!next-input-character;
2214     if ($self->{next_input_character} == 109) { # m
2215     !!!next-input-character;
2216     {
2217     $r = {type => 'character', data => qq<\x{2135}>}; # alefsym
2218     if ($self->{next_input_character} == 0x003B) { # ;
2219     !!!next-input-character;
2220     } else {
2221     !!!parse-error;
2222     ## reconsume
2223     }
2224     }
2225     } else {
2226     !!!parse-error;
2227     !!!back-next-input-character (108, 101, 102, 115, 121, $self->{next_input_character});
2228     $self->{next_input_character} = 97;
2229     }
2230     } else {
2231     !!!parse-error;
2232     !!!back-next-input-character (108, 101, 102, 115, $self->{next_input_character});
2233     $self->{next_input_character} = 97;
2234     }
2235     } else {
2236     !!!parse-error;
2237     !!!back-next-input-character (108, 101, 102, $self->{next_input_character});
2238     $self->{next_input_character} = 97;
2239     }
2240     } else {
2241     !!!parse-error;
2242     !!!back-next-input-character (108, 101, $self->{next_input_character});
2243     $self->{next_input_character} = 97;
2244     }
2245     } elsif ($self->{next_input_character} == 112) { # p
2246     !!!next-input-character;
2247     if ($self->{next_input_character} == 104) { # h
2248     !!!next-input-character;
2249     if ($self->{next_input_character} == 97) { # a
2250     !!!next-input-character;
2251     {
2252     $r = {type => 'character', data => qq<\x{03B1}>}; # alpha
2253     if ($self->{next_input_character} == 0x003B) { # ;
2254     !!!next-input-character;
2255     } else {
2256     !!!parse-error;
2257     ## reconsume
2258     }
2259     }
2260     } else {
2261     !!!parse-error;
2262     !!!back-next-input-character (108, 112, 104, $self->{next_input_character});
2263     $self->{next_input_character} = 97;
2264     }
2265     } else {
2266     !!!parse-error;
2267     !!!back-next-input-character (108, 112, $self->{next_input_character});
2268     $self->{next_input_character} = 97;
2269     }
2270     } else {
2271     !!!parse-error;
2272     !!!back-next-input-character (108, $self->{next_input_character});
2273     $self->{next_input_character} = 97;
2274     }
2275     } elsif ($self->{next_input_character} == 109) { # m
2276     !!!next-input-character;
2277     if ($self->{next_input_character} == 112) { # p
2278     !!!next-input-character;
2279     {
2280     $r = {type => 'character', data => qq<\x{0026}>}; # amp
2281     if ($self->{next_input_character} == 0x003B) { # ;
2282     !!!next-input-character;
2283     } else {
2284     !!!parse-error;
2285     ## reconsume
2286     }
2287     }
2288     } else {
2289     !!!parse-error;
2290     !!!back-next-input-character (109, $self->{next_input_character});
2291     $self->{next_input_character} = 97;
2292     }
2293     } elsif ($self->{next_input_character} == 110) { # n
2294     !!!next-input-character;
2295     if ($self->{next_input_character} == 100) { # d
2296     !!!next-input-character;
2297     {
2298     $r = {type => 'character', data => qq<\x{2227}>}; # and
2299     if ($self->{next_input_character} == 0x003B) { # ;
2300     !!!next-input-character;
2301     } else {
2302     !!!parse-error;
2303     ## reconsume
2304     }
2305     }
2306     } elsif ($self->{next_input_character} == 103) { # g
2307     !!!next-input-character;
2308     {
2309     $r = {type => 'character', data => qq<\x{2220}>}; # ang
2310     if ($self->{next_input_character} == 0x003B) { # ;
2311     !!!next-input-character;
2312     } else {
2313     !!!parse-error;
2314     ## reconsume
2315     }
2316     }
2317     } else {
2318     !!!parse-error;
2319     !!!back-next-input-character (110, $self->{next_input_character});
2320     $self->{next_input_character} = 97;
2321     }
2322     } elsif ($self->{next_input_character} == 112) { # p
2323     !!!next-input-character;
2324     if ($self->{next_input_character} == 111) { # o
2325     !!!next-input-character;
2326     if ($self->{next_input_character} == 115) { # s
2327     !!!next-input-character;
2328     {
2329     $r = {type => 'character', data => qq<\x{0027}>}; # apos
2330     if ($self->{next_input_character} == 0x003B) { # ;
2331     !!!next-input-character;
2332     } else {
2333     !!!parse-error;
2334     ## reconsume
2335     }
2336     }
2337     } else {
2338     !!!parse-error;
2339     !!!back-next-input-character (112, 111, $self->{next_input_character});
2340     $self->{next_input_character} = 97;
2341     }
2342     } else {
2343     !!!parse-error;
2344     !!!back-next-input-character (112, $self->{next_input_character});
2345     $self->{next_input_character} = 97;
2346     }
2347     } elsif ($self->{next_input_character} == 114) { # r
2348     !!!next-input-character;
2349     if ($self->{next_input_character} == 105) { # i
2350     !!!next-input-character;
2351     if ($self->{next_input_character} == 110) { # n
2352     !!!next-input-character;
2353     if ($self->{next_input_character} == 103) { # g
2354     !!!next-input-character;
2355     {
2356     $r = {type => 'character', data => qq<\x{00E5}>}; # aring
2357     if ($self->{next_input_character} == 0x003B) { # ;
2358     !!!next-input-character;
2359     } else {
2360     !!!parse-error;
2361     ## reconsume
2362     }
2363     }
2364     } else {
2365     !!!parse-error;
2366     !!!back-next-input-character (114, 105, 110, $self->{next_input_character});
2367     $self->{next_input_character} = 97;
2368     }
2369     } else {
2370     !!!parse-error;
2371     !!!back-next-input-character (114, 105, $self->{next_input_character});
2372     $self->{next_input_character} = 97;
2373     }
2374     } else {
2375     !!!parse-error;
2376     !!!back-next-input-character (114, $self->{next_input_character});
2377     $self->{next_input_character} = 97;
2378     }
2379     } elsif ($self->{next_input_character} == 115) { # s
2380     !!!next-input-character;
2381     if ($self->{next_input_character} == 121) { # y
2382     !!!next-input-character;
2383     if ($self->{next_input_character} == 109) { # m
2384     !!!next-input-character;
2385     if ($self->{next_input_character} == 112) { # p
2386     !!!next-input-character;
2387     {
2388     $r = {type => 'character', data => qq<\x{2248}>}; # asymp
2389     if ($self->{next_input_character} == 0x003B) { # ;
2390     !!!next-input-character;
2391     } else {
2392     !!!parse-error;
2393     ## reconsume
2394     }
2395     }
2396     } else {
2397     !!!parse-error;
2398     !!!back-next-input-character (115, 121, 109, $self->{next_input_character});
2399     $self->{next_input_character} = 97;
2400     }
2401     } else {
2402     !!!parse-error;
2403     !!!back-next-input-character (115, 121, $self->{next_input_character});
2404     $self->{next_input_character} = 97;
2405     }
2406     } else {
2407     !!!parse-error;
2408     !!!back-next-input-character (115, $self->{next_input_character});
2409     $self->{next_input_character} = 97;
2410     }
2411     } elsif ($self->{next_input_character} == 116) { # t
2412     !!!next-input-character;
2413     if ($self->{next_input_character} == 105) { # i
2414     !!!next-input-character;
2415     if ($self->{next_input_character} == 108) { # l
2416     !!!next-input-character;
2417     if ($self->{next_input_character} == 100) { # d
2418     !!!next-input-character;
2419     if ($self->{next_input_character} == 101) { # e
2420     !!!next-input-character;
2421     {
2422     $r = {type => 'character', data => qq<\x{00E3}>}; # atilde
2423     if ($self->{next_input_character} == 0x003B) { # ;
2424     !!!next-input-character;
2425     } else {
2426     !!!parse-error;
2427     ## reconsume
2428     }
2429     }
2430     } else {
2431     !!!parse-error;
2432     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
2433     $self->{next_input_character} = 97;
2434     }
2435     } else {
2436     !!!parse-error;
2437     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
2438     $self->{next_input_character} = 97;
2439     }
2440     } else {
2441     !!!parse-error;
2442     !!!back-next-input-character (116, 105, $self->{next_input_character});
2443     $self->{next_input_character} = 97;
2444     }
2445     } else {
2446     !!!parse-error;
2447     !!!back-next-input-character (116, $self->{next_input_character});
2448     $self->{next_input_character} = 97;
2449     }
2450     } elsif ($self->{next_input_character} == 117) { # u
2451     !!!next-input-character;
2452     if ($self->{next_input_character} == 109) { # m
2453     !!!next-input-character;
2454     if ($self->{next_input_character} == 108) { # l
2455     !!!next-input-character;
2456     {
2457     $r = {type => 'character', data => qq<\x{00E4}>}; # auml
2458     if ($self->{next_input_character} == 0x003B) { # ;
2459     !!!next-input-character;
2460     } else {
2461     !!!parse-error;
2462     ## reconsume
2463     }
2464     }
2465     } else {
2466     !!!parse-error;
2467     !!!back-next-input-character (117, 109, $self->{next_input_character});
2468     $self->{next_input_character} = 97;
2469     }
2470     } else {
2471     !!!parse-error;
2472     !!!back-next-input-character (117, $self->{next_input_character});
2473     $self->{next_input_character} = 97;
2474     }
2475     } else {
2476     !!!parse-error;
2477     !!!back-next-input-character ($self->{next_input_character});
2478     $self->{next_input_character} = 97;
2479     }
2480     } elsif ($self->{next_input_character} == 98) { # b
2481     !!!next-input-character;
2482     if ($self->{next_input_character} == 100) { # d
2483     !!!next-input-character;
2484     if ($self->{next_input_character} == 113) { # q
2485     !!!next-input-character;
2486     if ($self->{next_input_character} == 117) { # u
2487     !!!next-input-character;
2488     if ($self->{next_input_character} == 111) { # o
2489     !!!next-input-character;
2490     {
2491     $r = {type => 'character', data => qq<\x{201E}>}; # bdquo
2492     if ($self->{next_input_character} == 0x003B) { # ;
2493     !!!next-input-character;
2494     } else {
2495     !!!parse-error;
2496     ## reconsume
2497     }
2498     }
2499     } else {
2500     !!!parse-error;
2501     !!!back-next-input-character (100, 113, 117, $self->{next_input_character});
2502     $self->{next_input_character} = 98;
2503     }
2504     } else {
2505     !!!parse-error;
2506     !!!back-next-input-character (100, 113, $self->{next_input_character});
2507     $self->{next_input_character} = 98;
2508     }
2509     } else {
2510     !!!parse-error;
2511     !!!back-next-input-character (100, $self->{next_input_character});
2512     $self->{next_input_character} = 98;
2513     }
2514     } elsif ($self->{next_input_character} == 101) { # e
2515     !!!next-input-character;
2516     if ($self->{next_input_character} == 116) { # t
2517     !!!next-input-character;
2518     if ($self->{next_input_character} == 97) { # a
2519     !!!next-input-character;
2520     {
2521     $r = {type => 'character', data => qq<\x{03B2}>}; # beta
2522     if ($self->{next_input_character} == 0x003B) { # ;
2523     !!!next-input-character;
2524     } else {
2525     !!!parse-error;
2526     ## reconsume
2527     }
2528     }
2529     } else {
2530     !!!parse-error;
2531     !!!back-next-input-character (101, 116, $self->{next_input_character});
2532     $self->{next_input_character} = 98;
2533     }
2534     } else {
2535     !!!parse-error;
2536     !!!back-next-input-character (101, $self->{next_input_character});
2537     $self->{next_input_character} = 98;
2538     }
2539     } elsif ($self->{next_input_character} == 114) { # r
2540     !!!next-input-character;
2541     if ($self->{next_input_character} == 118) { # v
2542     !!!next-input-character;
2543     if ($self->{next_input_character} == 98) { # b
2544     !!!next-input-character;
2545     if ($self->{next_input_character} == 97) { # a
2546     !!!next-input-character;
2547     if ($self->{next_input_character} == 114) { # r
2548     !!!next-input-character;
2549     {
2550     $r = {type => 'character', data => qq<\x{00A6}>}; # brvbar
2551     if ($self->{next_input_character} == 0x003B) { # ;
2552     !!!next-input-character;
2553     } else {
2554     !!!parse-error;
2555     ## reconsume
2556     }
2557     }
2558     } else {
2559     !!!parse-error;
2560     !!!back-next-input-character (114, 118, 98, 97, $self->{next_input_character});
2561     $self->{next_input_character} = 98;
2562     }
2563     } else {
2564     !!!parse-error;
2565     !!!back-next-input-character (114, 118, 98, $self->{next_input_character});
2566     $self->{next_input_character} = 98;
2567     }
2568     } else {
2569     !!!parse-error;
2570     !!!back-next-input-character (114, 118, $self->{next_input_character});
2571     $self->{next_input_character} = 98;
2572     }
2573     } else {
2574     !!!parse-error;
2575     !!!back-next-input-character (114, $self->{next_input_character});
2576     $self->{next_input_character} = 98;
2577     }
2578     } elsif ($self->{next_input_character} == 117) { # u
2579     !!!next-input-character;
2580     if ($self->{next_input_character} == 108) { # l
2581     !!!next-input-character;
2582     if ($self->{next_input_character} == 108) { # l
2583     !!!next-input-character;
2584     {
2585     $r = {type => 'character', data => qq<\x{2022}>}; # bull
2586     if ($self->{next_input_character} == 0x003B) { # ;
2587     !!!next-input-character;
2588     } else {
2589     !!!parse-error;
2590     ## reconsume
2591     }
2592     }
2593     } else {
2594     !!!parse-error;
2595     !!!back-next-input-character (117, 108, $self->{next_input_character});
2596     $self->{next_input_character} = 98;
2597     }
2598     } else {
2599     !!!parse-error;
2600     !!!back-next-input-character (117, $self->{next_input_character});
2601     $self->{next_input_character} = 98;
2602     }
2603     } else {
2604     !!!parse-error;
2605     !!!back-next-input-character ($self->{next_input_character});
2606     $self->{next_input_character} = 98;
2607     }
2608     } elsif ($self->{next_input_character} == 99) { # c
2609     !!!next-input-character;
2610     if ($self->{next_input_character} == 97) { # a
2611     !!!next-input-character;
2612     if ($self->{next_input_character} == 112) { # p
2613     !!!next-input-character;
2614     {
2615     $r = {type => 'character', data => qq<\x{2229}>}; # cap
2616     if ($self->{next_input_character} == 0x003B) { # ;
2617     !!!next-input-character;
2618     } else {
2619     !!!parse-error;
2620     ## reconsume
2621     }
2622     }
2623     } else {
2624     !!!parse-error;
2625     !!!back-next-input-character (97, $self->{next_input_character});
2626     $self->{next_input_character} = 99;
2627     }
2628     } elsif ($self->{next_input_character} == 99) { # c
2629     !!!next-input-character;
2630     if ($self->{next_input_character} == 101) { # e
2631     !!!next-input-character;
2632     if ($self->{next_input_character} == 100) { # d
2633     !!!next-input-character;
2634     if ($self->{next_input_character} == 105) { # i
2635     !!!next-input-character;
2636     if ($self->{next_input_character} == 108) { # l
2637     !!!next-input-character;
2638     {
2639     $r = {type => 'character', data => qq<\x{00E7}>}; # ccedil
2640     if ($self->{next_input_character} == 0x003B) { # ;
2641     !!!next-input-character;
2642     } else {
2643     !!!parse-error;
2644     ## reconsume
2645     }
2646     }
2647     } else {
2648     !!!parse-error;
2649     !!!back-next-input-character (99, 101, 100, 105, $self->{next_input_character});
2650     $self->{next_input_character} = 99;
2651     }
2652     } else {
2653     !!!parse-error;
2654     !!!back-next-input-character (99, 101, 100, $self->{next_input_character});
2655     $self->{next_input_character} = 99;
2656     }
2657     } else {
2658     !!!parse-error;
2659     !!!back-next-input-character (99, 101, $self->{next_input_character});
2660     $self->{next_input_character} = 99;
2661     }
2662     } else {
2663     !!!parse-error;
2664     !!!back-next-input-character (99, $self->{next_input_character});
2665     $self->{next_input_character} = 99;
2666     }
2667     } elsif ($self->{next_input_character} == 101) { # e
2668     !!!next-input-character;
2669     if ($self->{next_input_character} == 100) { # d
2670     !!!next-input-character;
2671     if ($self->{next_input_character} == 105) { # i
2672     !!!next-input-character;
2673     if ($self->{next_input_character} == 108) { # l
2674     !!!next-input-character;
2675     {
2676     $r = {type => 'character', data => qq<\x{00B8}>}; # cedil
2677     if ($self->{next_input_character} == 0x003B) { # ;
2678     !!!next-input-character;
2679     } else {
2680     !!!parse-error;
2681     ## reconsume
2682     }
2683     }
2684     } else {
2685     !!!parse-error;
2686     !!!back-next-input-character (101, 100, 105, $self->{next_input_character});
2687     $self->{next_input_character} = 99;
2688     }
2689     } else {
2690     !!!parse-error;
2691     !!!back-next-input-character (101, 100, $self->{next_input_character});
2692     $self->{next_input_character} = 99;
2693     }
2694     } elsif ($self->{next_input_character} == 110) { # n
2695     !!!next-input-character;
2696     if ($self->{next_input_character} == 116) { # t
2697     !!!next-input-character;
2698     {
2699     $r = {type => 'character', data => qq<\x{00A2}>}; # cent
2700     if ($self->{next_input_character} == 0x003B) { # ;
2701     !!!next-input-character;
2702     } else {
2703     !!!parse-error;
2704     ## reconsume
2705     }
2706     }
2707     } else {
2708     !!!parse-error;
2709     !!!back-next-input-character (101, 110, $self->{next_input_character});
2710     $self->{next_input_character} = 99;
2711     }
2712     } else {
2713     !!!parse-error;
2714     !!!back-next-input-character (101, $self->{next_input_character});
2715     $self->{next_input_character} = 99;
2716     }
2717     } elsif ($self->{next_input_character} == 104) { # h
2718     !!!next-input-character;
2719     if ($self->{next_input_character} == 105) { # i
2720     !!!next-input-character;
2721     {
2722     $r = {type => 'character', data => qq<\x{03C7}>}; # chi
2723     if ($self->{next_input_character} == 0x003B) { # ;
2724     !!!next-input-character;
2725     } else {
2726     !!!parse-error;
2727     ## reconsume
2728     }
2729     }
2730     } else {
2731     !!!parse-error;
2732     !!!back-next-input-character (104, $self->{next_input_character});
2733     $self->{next_input_character} = 99;
2734     }
2735     } elsif ($self->{next_input_character} == 105) { # i
2736     !!!next-input-character;
2737     if ($self->{next_input_character} == 114) { # r
2738     !!!next-input-character;
2739     if ($self->{next_input_character} == 99) { # c
2740     !!!next-input-character;
2741     {
2742     $r = {type => 'character', data => qq<\x{02C6}>}; # circ
2743     if ($self->{next_input_character} == 0x003B) { # ;
2744     !!!next-input-character;
2745     } else {
2746     !!!parse-error;
2747     ## reconsume
2748     }
2749     }
2750     } else {
2751     !!!parse-error;
2752     !!!back-next-input-character (105, 114, $self->{next_input_character});
2753     $self->{next_input_character} = 99;
2754     }
2755     } else {
2756     !!!parse-error;
2757     !!!back-next-input-character (105, $self->{next_input_character});
2758     $self->{next_input_character} = 99;
2759     }
2760     } elsif ($self->{next_input_character} == 108) { # l
2761     !!!next-input-character;
2762     if ($self->{next_input_character} == 117) { # u
2763     !!!next-input-character;
2764     if ($self->{next_input_character} == 98) { # b
2765     !!!next-input-character;
2766     if ($self->{next_input_character} == 115) { # s
2767     !!!next-input-character;
2768     {
2769     $r = {type => 'character', data => qq<\x{2663}>}; # clubs
2770     if ($self->{next_input_character} == 0x003B) { # ;
2771     !!!next-input-character;
2772     } else {
2773     !!!parse-error;
2774     ## reconsume
2775     }
2776     }
2777     } else {
2778     !!!parse-error;
2779     !!!back-next-input-character (108, 117, 98, $self->{next_input_character});
2780     $self->{next_input_character} = 99;
2781     }
2782     } else {
2783     !!!parse-error;
2784     !!!back-next-input-character (108, 117, $self->{next_input_character});
2785     $self->{next_input_character} = 99;
2786     }
2787     } else {
2788     !!!parse-error;
2789     !!!back-next-input-character (108, $self->{next_input_character});
2790     $self->{next_input_character} = 99;
2791     }
2792     } elsif ($self->{next_input_character} == 111) { # o
2793     !!!next-input-character;
2794     if ($self->{next_input_character} == 110) { # n
2795     !!!next-input-character;
2796     if ($self->{next_input_character} == 103) { # g
2797     !!!next-input-character;
2798     {
2799     $r = {type => 'character', data => qq<\x{2245}>}; # cong
2800     if ($self->{next_input_character} == 0x003B) { # ;
2801     !!!next-input-character;
2802     } else {
2803     !!!parse-error;
2804     ## reconsume
2805     }
2806     }
2807     } else {
2808     !!!parse-error;
2809     !!!back-next-input-character (111, 110, $self->{next_input_character});
2810     $self->{next_input_character} = 99;
2811     }
2812     } elsif ($self->{next_input_character} == 112) { # p
2813     !!!next-input-character;
2814     if ($self->{next_input_character} == 121) { # y
2815     !!!next-input-character;
2816     {
2817     $r = {type => 'character', data => qq<\x{00A9}>}; # copy
2818     if ($self->{next_input_character} == 0x003B) { # ;
2819     !!!next-input-character;
2820     } else {
2821     !!!parse-error;
2822     ## reconsume
2823     }
2824     }
2825     } else {
2826     !!!parse-error;
2827     !!!back-next-input-character (111, 112, $self->{next_input_character});
2828     $self->{next_input_character} = 99;
2829     }
2830     } else {
2831     !!!parse-error;
2832     !!!back-next-input-character (111, $self->{next_input_character});
2833     $self->{next_input_character} = 99;
2834     }
2835     } elsif ($self->{next_input_character} == 114) { # r
2836     !!!next-input-character;
2837     if ($self->{next_input_character} == 97) { # a
2838     !!!next-input-character;
2839     if ($self->{next_input_character} == 114) { # r
2840     !!!next-input-character;
2841     if ($self->{next_input_character} == 114) { # r
2842     !!!next-input-character;
2843     {
2844     $r = {type => 'character', data => qq<\x{21B5}>}; # crarr
2845     if ($self->{next_input_character} == 0x003B) { # ;
2846     !!!next-input-character;
2847     } else {
2848     !!!parse-error;
2849     ## reconsume
2850     }
2851     }
2852     } else {
2853     !!!parse-error;
2854     !!!back-next-input-character (114, 97, 114, $self->{next_input_character});
2855     $self->{next_input_character} = 99;
2856     }
2857     } else {
2858     !!!parse-error;
2859     !!!back-next-input-character (114, 97, $self->{next_input_character});
2860     $self->{next_input_character} = 99;
2861     }
2862     } else {
2863     !!!parse-error;
2864     !!!back-next-input-character (114, $self->{next_input_character});
2865     $self->{next_input_character} = 99;
2866     }
2867     } elsif ($self->{next_input_character} == 117) { # u
2868     !!!next-input-character;
2869     if ($self->{next_input_character} == 112) { # p
2870     !!!next-input-character;
2871     {
2872     $r = {type => 'character', data => qq<\x{222A}>}; # cup
2873     if ($self->{next_input_character} == 0x003B) { # ;
2874     !!!next-input-character;
2875     } else {
2876     !!!parse-error;
2877     ## reconsume
2878     }
2879     }
2880     } elsif ($self->{next_input_character} == 114) { # r
2881     !!!next-input-character;
2882     if ($self->{next_input_character} == 114) { # r
2883     !!!next-input-character;
2884     if ($self->{next_input_character} == 101) { # e
2885     !!!next-input-character;
2886     if ($self->{next_input_character} == 110) { # n
2887     !!!next-input-character;
2888     {
2889     $r = {type => 'character', data => qq<\x{00A4}>}; # curren
2890     if ($self->{next_input_character} == 0x003B) { # ;
2891     !!!next-input-character;
2892     } else {
2893     !!!parse-error;
2894     ## reconsume
2895     }
2896     }
2897     } else {
2898     !!!parse-error;
2899     !!!back-next-input-character (117, 114, 114, 101, $self->{next_input_character});
2900     $self->{next_input_character} = 99;
2901     }
2902     } else {
2903     !!!parse-error;
2904     !!!back-next-input-character (117, 114, 114, $self->{next_input_character});
2905     $self->{next_input_character} = 99;
2906     }
2907     } else {
2908     !!!parse-error;
2909     !!!back-next-input-character (117, 114, $self->{next_input_character});
2910     $self->{next_input_character} = 99;
2911     }
2912     } else {
2913     !!!parse-error;
2914     !!!back-next-input-character (117, $self->{next_input_character});
2915     $self->{next_input_character} = 99;
2916     }
2917     } else {
2918     !!!parse-error;
2919     !!!back-next-input-character ($self->{next_input_character});
2920     $self->{next_input_character} = 99;
2921     }
2922     } elsif ($self->{next_input_character} == 100) { # d
2923     !!!next-input-character;
2924     if ($self->{next_input_character} == 65) { # A
2925     !!!next-input-character;
2926     if ($self->{next_input_character} == 114) { # r
2927     !!!next-input-character;
2928     if ($self->{next_input_character} == 114) { # r
2929     !!!next-input-character;
2930     {
2931     $r = {type => 'character', data => qq<\x{21D3}>}; # dArr
2932     if ($self->{next_input_character} == 0x003B) { # ;
2933     !!!next-input-character;
2934     } else {
2935     !!!parse-error;
2936     ## reconsume
2937     }
2938     }
2939     } else {
2940     !!!parse-error;
2941     !!!back-next-input-character (65, 114, $self->{next_input_character});
2942     $self->{next_input_character} = 100;
2943     }
2944     } else {
2945     !!!parse-error;
2946     !!!back-next-input-character (65, $self->{next_input_character});
2947     $self->{next_input_character} = 100;
2948     }
2949     } elsif ($self->{next_input_character} == 97) { # a
2950     !!!next-input-character;
2951     if ($self->{next_input_character} == 103) { # g
2952     !!!next-input-character;
2953     if ($self->{next_input_character} == 103) { # g
2954     !!!next-input-character;
2955     if ($self->{next_input_character} == 101) { # e
2956     !!!next-input-character;
2957     if ($self->{next_input_character} == 114) { # r
2958     !!!next-input-character;
2959     {
2960     $r = {type => 'character', data => qq<\x{2020}>}; # dagger
2961     if ($self->{next_input_character} == 0x003B) { # ;
2962     !!!next-input-character;
2963     } else {
2964     !!!parse-error;
2965     ## reconsume
2966     }
2967     }
2968     } else {
2969     !!!parse-error;
2970     !!!back-next-input-character (97, 103, 103, 101, $self->{next_input_character});
2971     $self->{next_input_character} = 100;
2972     }
2973     } else {
2974     !!!parse-error;
2975     !!!back-next-input-character (97, 103, 103, $self->{next_input_character});
2976     $self->{next_input_character} = 100;
2977     }
2978     } else {
2979     !!!parse-error;
2980     !!!back-next-input-character (97, 103, $self->{next_input_character});
2981     $self->{next_input_character} = 100;
2982     }
2983     } elsif ($self->{next_input_character} == 114) { # r
2984     !!!next-input-character;
2985     if ($self->{next_input_character} == 114) { # r
2986     !!!next-input-character;
2987     {
2988     $r = {type => 'character', data => qq<\x{2193}>}; # darr
2989     if ($self->{next_input_character} == 0x003B) { # ;
2990     !!!next-input-character;
2991     } else {
2992     !!!parse-error;
2993     ## reconsume
2994     }
2995     }
2996     } else {
2997     !!!parse-error;
2998     !!!back-next-input-character (97, 114, $self->{next_input_character});
2999     $self->{next_input_character} = 100;
3000     }
3001     } else {
3002     !!!parse-error;
3003     !!!back-next-input-character (97, $self->{next_input_character});
3004     $self->{next_input_character} = 100;
3005     }
3006     } elsif ($self->{next_input_character} == 101) { # e
3007     !!!next-input-character;
3008     if ($self->{next_input_character} == 103) { # g
3009     !!!next-input-character;
3010     {
3011     $r = {type => 'character', data => qq<\x{00B0}>}; # deg
3012     if ($self->{next_input_character} == 0x003B) { # ;
3013     !!!next-input-character;
3014     } else {
3015     !!!parse-error;
3016     ## reconsume
3017     }
3018     }
3019     } elsif ($self->{next_input_character} == 108) { # l
3020     !!!next-input-character;
3021     if ($self->{next_input_character} == 116) { # t
3022     !!!next-input-character;
3023     if ($self->{next_input_character} == 97) { # a
3024     !!!next-input-character;
3025     {
3026     $r = {type => 'character', data => qq<\x{03B4}>}; # delta
3027     if ($self->{next_input_character} == 0x003B) { # ;
3028     !!!next-input-character;
3029     } else {
3030     !!!parse-error;
3031     ## reconsume
3032     }
3033     }
3034     } else {
3035     !!!parse-error;
3036     !!!back-next-input-character (101, 108, 116, $self->{next_input_character});
3037     $self->{next_input_character} = 100;
3038     }
3039     } else {
3040     !!!parse-error;
3041     !!!back-next-input-character (101, 108, $self->{next_input_character});
3042     $self->{next_input_character} = 100;
3043     }
3044     } else {
3045     !!!parse-error;
3046     !!!back-next-input-character (101, $self->{next_input_character});
3047     $self->{next_input_character} = 100;
3048     }
3049     } elsif ($self->{next_input_character} == 105) { # i
3050     !!!next-input-character;
3051     if ($self->{next_input_character} == 97) { # a
3052     !!!next-input-character;
3053     if ($self->{next_input_character} == 109) { # m
3054     !!!next-input-character;
3055     if ($self->{next_input_character} == 115) { # s
3056     !!!next-input-character;
3057     {
3058     $r = {type => 'character', data => qq<\x{2666}>}; # diams
3059     if ($self->{next_input_character} == 0x003B) { # ;
3060     !!!next-input-character;
3061     } else {
3062     !!!parse-error;
3063     ## reconsume
3064     }
3065     }
3066     } else {
3067     !!!parse-error;
3068     !!!back-next-input-character (105, 97, 109, $self->{next_input_character});
3069     $self->{next_input_character} = 100;
3070     }
3071     } else {
3072     !!!parse-error;
3073     !!!back-next-input-character (105, 97, $self->{next_input_character});
3074     $self->{next_input_character} = 100;
3075     }
3076     } elsif ($self->{next_input_character} == 118) { # v
3077     !!!next-input-character;
3078     if ($self->{next_input_character} == 105) { # i
3079     !!!next-input-character;
3080     if ($self->{next_input_character} == 100) { # d
3081     !!!next-input-character;
3082     if ($self->{next_input_character} == 101) { # e
3083     !!!next-input-character;
3084     {
3085     $r = {type => 'character', data => qq<\x{00F7}>}; # divide
3086     if ($self->{next_input_character} == 0x003B) { # ;
3087     !!!next-input-character;
3088     } else {
3089     !!!parse-error;
3090     ## reconsume
3091     }
3092     }
3093     } else {
3094     !!!parse-error;
3095     !!!back-next-input-character (105, 118, 105, 100, $self->{next_input_character});
3096     $self->{next_input_character} = 100;
3097     }
3098     } else {
3099     !!!parse-error;
3100     !!!back-next-input-character (105, 118, 105, $self->{next_input_character});
3101     $self->{next_input_character} = 100;
3102     }
3103     } else {
3104     !!!parse-error;
3105     !!!back-next-input-character (105, 118, $self->{next_input_character});
3106     $self->{next_input_character} = 100;
3107     }
3108     } else {
3109     !!!parse-error;
3110     !!!back-next-input-character (105, $self->{next_input_character});
3111     $self->{next_input_character} = 100;
3112     }
3113     } else {
3114     !!!parse-error;
3115     !!!back-next-input-character ($self->{next_input_character});
3116     $self->{next_input_character} = 100;
3117     }
3118     } elsif ($self->{next_input_character} == 101) { # e
3119     !!!next-input-character;
3120     if ($self->{next_input_character} == 97) { # a
3121     !!!next-input-character;
3122     if ($self->{next_input_character} == 99) { # c
3123     !!!next-input-character;
3124     if ($self->{next_input_character} == 117) { # u
3125     !!!next-input-character;
3126     if ($self->{next_input_character} == 116) { # t
3127     !!!next-input-character;
3128     if ($self->{next_input_character} == 101) { # e
3129     !!!next-input-character;
3130     {
3131     $r = {type => 'character', data => qq<\x{00E9}>}; # eacute
3132     if ($self->{next_input_character} == 0x003B) { # ;
3133     !!!next-input-character;
3134     } else {
3135     !!!parse-error;
3136     ## reconsume
3137     }
3138     }
3139     } else {
3140     !!!parse-error;
3141     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
3142     $self->{next_input_character} = 101;
3143     }
3144     } else {
3145     !!!parse-error;
3146     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
3147     $self->{next_input_character} = 101;
3148     }
3149     } else {
3150     !!!parse-error;
3151     !!!back-next-input-character (97, 99, $self->{next_input_character});
3152     $self->{next_input_character} = 101;
3153     }
3154     } else {
3155     !!!parse-error;
3156     !!!back-next-input-character (97, $self->{next_input_character});
3157     $self->{next_input_character} = 101;
3158     }
3159     } elsif ($self->{next_input_character} == 99) { # c
3160     !!!next-input-character;
3161     if ($self->{next_input_character} == 105) { # i
3162     !!!next-input-character;
3163     if ($self->{next_input_character} == 114) { # r
3164     !!!next-input-character;
3165     if ($self->{next_input_character} == 99) { # c
3166     !!!next-input-character;
3167     {
3168     $r = {type => 'character', data => qq<\x{00EA}>}; # ecirc
3169     if ($self->{next_input_character} == 0x003B) { # ;
3170     !!!next-input-character;
3171     } else {
3172     !!!parse-error;
3173     ## reconsume
3174     }
3175     }
3176     } else {
3177     !!!parse-error;
3178     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
3179     $self->{next_input_character} = 101;
3180     }
3181     } else {
3182     !!!parse-error;
3183     !!!back-next-input-character (99, 105, $self->{next_input_character});
3184     $self->{next_input_character} = 101;
3185     }
3186     } else {
3187     !!!parse-error;
3188     !!!back-next-input-character (99, $self->{next_input_character});
3189     $self->{next_input_character} = 101;
3190     }
3191     } elsif ($self->{next_input_character} == 103) { # g
3192     !!!next-input-character;
3193     if ($self->{next_input_character} == 114) { # r
3194     !!!next-input-character;
3195     if ($self->{next_input_character} == 97) { # a
3196     !!!next-input-character;
3197     if ($self->{next_input_character} == 118) { # v
3198     !!!next-input-character;
3199     if ($self->{next_input_character} == 101) { # e
3200     !!!next-input-character;
3201     {
3202     $r = {type => 'character', data => qq<\x{00E8}>}; # egrave
3203     if ($self->{next_input_character} == 0x003B) { # ;
3204     !!!next-input-character;
3205     } else {
3206     !!!parse-error;
3207     ## reconsume
3208     }
3209     }
3210     } else {
3211     !!!parse-error;
3212     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
3213     $self->{next_input_character} = 101;
3214     }
3215     } else {
3216     !!!parse-error;
3217     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
3218     $self->{next_input_character} = 101;
3219     }
3220     } else {
3221     !!!parse-error;
3222     !!!back-next-input-character (103, 114, $self->{next_input_character});
3223     $self->{next_input_character} = 101;
3224     }
3225     } else {
3226     !!!parse-error;
3227     !!!back-next-input-character (103, $self->{next_input_character});
3228     $self->{next_input_character} = 101;
3229     }
3230     } elsif ($self->{next_input_character} == 109) { # m
3231     !!!next-input-character;
3232     if ($self->{next_input_character} == 112) { # p
3233     !!!next-input-character;
3234     if ($self->{next_input_character} == 116) { # t
3235     !!!next-input-character;
3236     if ($self->{next_input_character} == 121) { # y
3237     !!!next-input-character;
3238     {
3239     $r = {type => 'character', data => qq<\x{2205}>}; # empty
3240     if ($self->{next_input_character} == 0x003B) { # ;
3241     !!!next-input-character;
3242     } else {
3243     !!!parse-error;
3244     ## reconsume
3245     }
3246     }
3247     } else {
3248     !!!parse-error;
3249     !!!back-next-input-character (109, 112, 116, $self->{next_input_character});
3250     $self->{next_input_character} = 101;
3251     }
3252     } else {
3253     !!!parse-error;
3254     !!!back-next-input-character (109, 112, $self->{next_input_character});
3255     $self->{next_input_character} = 101;
3256     }
3257     } elsif ($self->{next_input_character} == 115) { # s
3258     !!!next-input-character;
3259     if ($self->{next_input_character} == 112) { # p
3260     !!!next-input-character;
3261     {
3262     $r = {type => 'character', data => qq<\x{2003}>}; # emsp
3263     if ($self->{next_input_character} == 0x003B) { # ;
3264     !!!next-input-character;
3265     } else {
3266     !!!parse-error;
3267     ## reconsume
3268     }
3269     }
3270     } else {
3271     !!!parse-error;
3272     !!!back-next-input-character (109, 115, $self->{next_input_character});
3273     $self->{next_input_character} = 101;
3274     }
3275     } else {
3276     !!!parse-error;
3277     !!!back-next-input-character (109, $self->{next_input_character});
3278     $self->{next_input_character} = 101;
3279     }
3280     } elsif ($self->{next_input_character} == 110) { # n
3281     !!!next-input-character;
3282     if ($self->{next_input_character} == 115) { # s
3283     !!!next-input-character;
3284     if ($self->{next_input_character} == 112) { # p
3285     !!!next-input-character;
3286     {
3287     $r = {type => 'character', data => qq<\x{2002}>}; # ensp
3288     if ($self->{next_input_character} == 0x003B) { # ;
3289     !!!next-input-character;
3290     } else {
3291     !!!parse-error;
3292     ## reconsume
3293     }
3294     }
3295     } else {
3296     !!!parse-error;
3297     !!!back-next-input-character (110, 115, $self->{next_input_character});
3298     $self->{next_input_character} = 101;
3299     }
3300     } else {
3301     !!!parse-error;
3302     !!!back-next-input-character (110, $self->{next_input_character});
3303     $self->{next_input_character} = 101;
3304     }
3305     } elsif ($self->{next_input_character} == 112) { # p
3306     !!!next-input-character;
3307     if ($self->{next_input_character} == 115) { # s
3308     !!!next-input-character;
3309     if ($self->{next_input_character} == 105) { # i
3310     !!!next-input-character;
3311     if ($self->{next_input_character} == 108) { # l
3312     !!!next-input-character;
3313     if ($self->{next_input_character} == 111) { # o
3314     !!!next-input-character;
3315     if ($self->{next_input_character} == 110) { # n
3316     !!!next-input-character;
3317     {
3318     $r = {type => 'character', data => qq<\x{03B5}>}; # epsilon
3319     if ($self->{next_input_character} == 0x003B) { # ;
3320     !!!next-input-character;
3321     } else {
3322     !!!parse-error;
3323     ## reconsume
3324     }
3325     }
3326     } else {
3327     !!!parse-error;
3328     !!!back-next-input-character (112, 115, 105, 108, 111, $self->{next_input_character});
3329     $self->{next_input_character} = 101;
3330     }
3331     } else {
3332     !!!parse-error;
3333     !!!back-next-input-character (112, 115, 105, 108, $self->{next_input_character});
3334     $self->{next_input_character} = 101;
3335     }
3336     } else {
3337     !!!parse-error;
3338     !!!back-next-input-character (112, 115, 105, $self->{next_input_character});
3339     $self->{next_input_character} = 101;
3340     }
3341     } else {
3342     !!!parse-error;
3343     !!!back-next-input-character (112, 115, $self->{next_input_character});
3344     $self->{next_input_character} = 101;
3345     }
3346     } else {
3347     !!!parse-error;
3348     !!!back-next-input-character (112, $self->{next_input_character});
3349     $self->{next_input_character} = 101;
3350     }
3351     } elsif ($self->{next_input_character} == 113) { # q
3352     !!!next-input-character;
3353     if ($self->{next_input_character} == 117) { # u
3354     !!!next-input-character;
3355     if ($self->{next_input_character} == 105) { # i
3356     !!!next-input-character;
3357     if ($self->{next_input_character} == 118) { # v
3358     !!!next-input-character;
3359     {
3360     $r = {type => 'character', data => qq<\x{2261}>}; # equiv
3361     if ($self->{next_input_character} == 0x003B) { # ;
3362     !!!next-input-character;
3363     } else {
3364     !!!parse-error;
3365     ## reconsume
3366     }
3367     }
3368     } else {
3369     !!!parse-error;
3370     !!!back-next-input-character (113, 117, 105, $self->{next_input_character});
3371     $self->{next_input_character} = 101;
3372     }
3373     } else {
3374     !!!parse-error;
3375     !!!back-next-input-character (113, 117, $self->{next_input_character});
3376     $self->{next_input_character} = 101;
3377     }
3378     } else {
3379     !!!parse-error;
3380     !!!back-next-input-character (113, $self->{next_input_character});
3381     $self->{next_input_character} = 101;
3382     }
3383     } elsif ($self->{next_input_character} == 116) { # t
3384     !!!next-input-character;
3385     if ($self->{next_input_character} == 97) { # a
3386     !!!next-input-character;
3387     {
3388     $r = {type => 'character', data => qq<\x{03B7}>}; # eta
3389     if ($self->{next_input_character} == 0x003B) { # ;
3390     !!!next-input-character;
3391     } else {
3392     !!!parse-error;
3393     ## reconsume
3394     }
3395     }
3396     } elsif ($self->{next_input_character} == 104) { # h
3397     !!!next-input-character;
3398     {
3399     $r = {type => 'character', data => qq<\x{00F0}>}; # eth
3400     if ($self->{next_input_character} == 0x003B) { # ;
3401     !!!next-input-character;
3402     } else {
3403     !!!parse-error;
3404     ## reconsume
3405     }
3406     }
3407     } else {
3408     !!!parse-error;
3409     !!!back-next-input-character (116, $self->{next_input_character});
3410     $self->{next_input_character} = 101;
3411     }
3412     } elsif ($self->{next_input_character} == 117) { # u
3413     !!!next-input-character;
3414     if ($self->{next_input_character} == 109) { # m
3415     !!!next-input-character;
3416     if ($self->{next_input_character} == 108) { # l
3417     !!!next-input-character;
3418     {
3419     $r = {type => 'character', data => qq<\x{00EB}>}; # euml
3420     if ($self->{next_input_character} == 0x003B) { # ;
3421     !!!next-input-character;
3422     } else {
3423     !!!parse-error;
3424     ## reconsume
3425     }
3426     }
3427     } else {
3428     !!!parse-error;
3429     !!!back-next-input-character (117, 109, $self->{next_input_character});
3430     $self->{next_input_character} = 101;
3431     }
3432     } elsif ($self->{next_input_character} == 114) { # r
3433     !!!next-input-character;
3434     if ($self->{next_input_character} == 111) { # o
3435     !!!next-input-character;
3436     {
3437     $r = {type => 'character', data => qq<\x{20AC}>}; # euro
3438     if ($self->{next_input_character} == 0x003B) { # ;
3439     !!!next-input-character;
3440     } else {
3441     !!!parse-error;
3442     ## reconsume
3443     }
3444     }
3445     } else {
3446     !!!parse-error;
3447     !!!back-next-input-character (117, 114, $self->{next_input_character});
3448     $self->{next_input_character} = 101;
3449     }
3450     } else {
3451     !!!parse-error;
3452     !!!back-next-input-character (117, $self->{next_input_character});
3453     $self->{next_input_character} = 101;
3454     }
3455     } elsif ($self->{next_input_character} == 120) { # x
3456     !!!next-input-character;
3457     if ($self->{next_input_character} == 105) { # i
3458     !!!next-input-character;
3459     if ($self->{next_input_character} == 115) { # s
3460     !!!next-input-character;
3461     if ($self->{next_input_character} == 116) { # t
3462     !!!next-input-character;
3463     {
3464     $r = {type => 'character', data => qq<\x{2203}>}; # exist
3465     if ($self->{next_input_character} == 0x003B) { # ;
3466     !!!next-input-character;
3467     } else {
3468     !!!parse-error;
3469     ## reconsume
3470     }
3471     }
3472     } else {
3473     !!!parse-error;
3474     !!!back-next-input-character (120, 105, 115, $self->{next_input_character});
3475     $self->{next_input_character} = 101;
3476     }
3477     } else {
3478     !!!parse-error;
3479     !!!back-next-input-character (120, 105, $self->{next_input_character});
3480     $self->{next_input_character} = 101;
3481     }
3482     } else {
3483     !!!parse-error;
3484     !!!back-next-input-character (120, $self->{next_input_character});
3485     $self->{next_input_character} = 101;
3486     }
3487     } else {
3488     !!!parse-error;
3489     !!!back-next-input-character ($self->{next_input_character});
3490     $self->{next_input_character} = 101;
3491     }
3492     } elsif ($self->{next_input_character} == 102) { # f
3493     !!!next-input-character;
3494     if ($self->{next_input_character} == 110) { # n
3495     !!!next-input-character;
3496     if ($self->{next_input_character} == 111) { # o
3497     !!!next-input-character;
3498     if ($self->{next_input_character} == 102) { # f
3499     !!!next-input-character;
3500     {
3501     $r = {type => 'character', data => qq<\x{0192}>}; # fnof
3502     if ($self->{next_input_character} == 0x003B) { # ;
3503     !!!next-input-character;
3504     } else {
3505     !!!parse-error;
3506     ## reconsume
3507     }
3508     }
3509     } else {
3510     !!!parse-error;
3511     !!!back-next-input-character (110, 111, $self->{next_input_character});
3512     $self->{next_input_character} = 102;
3513     }
3514     } else {
3515     !!!parse-error;
3516     !!!back-next-input-character (110, $self->{next_input_character});
3517     $self->{next_input_character} = 102;
3518     }
3519     } elsif ($self->{next_input_character} == 111) { # o
3520     !!!next-input-character;
3521     if ($self->{next_input_character} == 114) { # r
3522     !!!next-input-character;
3523     if ($self->{next_input_character} == 97) { # a
3524     !!!next-input-character;
3525     if ($self->{next_input_character} == 108) { # l
3526     !!!next-input-character;
3527     if ($self->{next_input_character} == 108) { # l
3528     !!!next-input-character;
3529     {
3530     $r = {type => 'character', data => qq<\x{2200}>}; # forall
3531     if ($self->{next_input_character} == 0x003B) { # ;
3532     !!!next-input-character;
3533     } else {
3534     !!!parse-error;
3535     ## reconsume
3536     }
3537     }
3538     } else {
3539     !!!parse-error;
3540     !!!back-next-input-character (111, 114, 97, 108, $self->{next_input_character});
3541     $self->{next_input_character} = 102;
3542     }
3543     } else {
3544     !!!parse-error;
3545     !!!back-next-input-character (111, 114, 97, $self->{next_input_character});
3546     $self->{next_input_character} = 102;
3547     }
3548     } else {
3549     !!!parse-error;
3550     !!!back-next-input-character (111, 114, $self->{next_input_character});
3551     $self->{next_input_character} = 102;
3552     }
3553     } else {
3554     !!!parse-error;
3555     !!!back-next-input-character (111, $self->{next_input_character});
3556     $self->{next_input_character} = 102;
3557     }
3558     } elsif ($self->{next_input_character} == 114) { # r
3559     !!!next-input-character;
3560     if ($self->{next_input_character} == 97) { # a
3561     !!!next-input-character;
3562     if ($self->{next_input_character} == 99) { # c
3563     !!!next-input-character;
3564     if ($self->{next_input_character} == 49) { # 1
3565     !!!next-input-character;
3566     if ($self->{next_input_character} == 50) { # 2
3567     !!!next-input-character;
3568     {
3569     $r = {type => 'character', data => qq<\x{00BD}>}; # frac12
3570     if ($self->{next_input_character} == 0x003B) { # ;
3571     !!!next-input-character;
3572     } else {
3573     !!!parse-error;
3574     ## reconsume
3575     }
3576     }
3577     } elsif ($self->{next_input_character} == 52) { # 4
3578     !!!next-input-character;
3579     {
3580     $r = {type => 'character', data => qq<\x{00BC}>}; # frac14
3581     if ($self->{next_input_character} == 0x003B) { # ;
3582     !!!next-input-character;
3583     } else {
3584     !!!parse-error;
3585     ## reconsume
3586     }
3587     }
3588     } else {
3589     !!!parse-error;
3590     !!!back-next-input-character (114, 97, 99, 49, $self->{next_input_character});
3591     $self->{next_input_character} = 102;
3592     }
3593     } elsif ($self->{next_input_character} == 51) { # 3
3594     !!!next-input-character;
3595     if ($self->{next_input_character} == 52) { # 4
3596     !!!next-input-character;
3597     {
3598     $r = {type => 'character', data => qq<\x{00BE}>}; # frac34
3599     if ($self->{next_input_character} == 0x003B) { # ;
3600     !!!next-input-character;
3601     } else {
3602     !!!parse-error;
3603     ## reconsume
3604     }
3605     }
3606     } else {
3607     !!!parse-error;
3608     !!!back-next-input-character (114, 97, 99, 51, $self->{next_input_character});
3609     $self->{next_input_character} = 102;
3610     }
3611     } else {
3612     !!!parse-error;
3613     !!!back-next-input-character (114, 97, 99, $self->{next_input_character});
3614     $self->{next_input_character} = 102;
3615     }
3616     } elsif ($self->{next_input_character} == 115) { # s
3617     !!!next-input-character;
3618     if ($self->{next_input_character} == 108) { # l
3619     !!!next-input-character;
3620     {
3621     $r = {type => 'character', data => qq<\x{2044}>}; # frasl
3622     if ($self->{next_input_character} == 0x003B) { # ;
3623     !!!next-input-character;
3624     } else {
3625     !!!parse-error;
3626     ## reconsume
3627     }
3628     }
3629     } else {
3630     !!!parse-error;
3631     !!!back-next-input-character (114, 97, 115, $self->{next_input_character});
3632     $self->{next_input_character} = 102;
3633     }
3634     } else {
3635     !!!parse-error;
3636     !!!back-next-input-character (114, 97, $self->{next_input_character});
3637     $self->{next_input_character} = 102;
3638     }
3639     } else {
3640     !!!parse-error;
3641     !!!back-next-input-character (114, $self->{next_input_character});
3642     $self->{next_input_character} = 102;
3643     }
3644     } else {
3645     !!!parse-error;
3646     !!!back-next-input-character ($self->{next_input_character});
3647     $self->{next_input_character} = 102;
3648     }
3649     } elsif ($self->{next_input_character} == 103) { # g
3650     !!!next-input-character;
3651     if ($self->{next_input_character} == 97) { # a
3652     !!!next-input-character;
3653     if ($self->{next_input_character} == 109) { # m
3654     !!!next-input-character;
3655     if ($self->{next_input_character} == 109) { # m
3656     !!!next-input-character;
3657     if ($self->{next_input_character} == 97) { # a
3658     !!!next-input-character;
3659     {
3660     $r = {type => 'character', data => qq<\x{03B3}>}; # gamma
3661     if ($self->{next_input_character} == 0x003B) { # ;
3662     !!!next-input-character;
3663     } else {
3664     !!!parse-error;
3665     ## reconsume
3666     }
3667     }
3668     } else {
3669     !!!parse-error;
3670     !!!back-next-input-character (97, 109, 109, $self->{next_input_character});
3671     $self->{next_input_character} = 103;
3672     }
3673     } else {
3674     !!!parse-error;
3675     !!!back-next-input-character (97, 109, $self->{next_input_character});
3676     $self->{next_input_character} = 103;
3677     }
3678     } else {
3679     !!!parse-error;
3680     !!!back-next-input-character (97, $self->{next_input_character});
3681     $self->{next_input_character} = 103;
3682     }
3683     } elsif ($self->{next_input_character} == 101) { # e
3684     !!!next-input-character;
3685     {
3686     $r = {type => 'character', data => qq<\x{2265}>}; # ge
3687     if ($self->{next_input_character} == 0x003B) { # ;
3688     !!!next-input-character;
3689     } else {
3690     !!!parse-error;
3691     ## reconsume
3692     }
3693     }
3694     } elsif ($self->{next_input_character} == 116) { # t
3695     !!!next-input-character;
3696     {
3697     $r = {type => 'character', data => qq<\x{003E}>}; # gt
3698     if ($self->{next_input_character} == 0x003B) { # ;
3699     !!!next-input-character;
3700     } else {
3701     !!!parse-error;
3702     ## reconsume
3703     }
3704     }
3705     } else {
3706     !!!parse-error;
3707     !!!back-next-input-character ($self->{next_input_character});
3708     $self->{next_input_character} = 103;
3709     }
3710     } elsif ($self->{next_input_character} == 104) { # h
3711     !!!next-input-character;
3712     if ($self->{next_input_character} == 65) { # A
3713     !!!next-input-character;
3714     if ($self->{next_input_character} == 114) { # r
3715     !!!next-input-character;
3716     if ($self->{next_input_character} == 114) { # r
3717     !!!next-input-character;
3718     {
3719     $r = {type => 'character', data => qq<\x{21D4}>}; # hArr
3720     if ($self->{next_input_character} == 0x003B) { # ;
3721     !!!next-input-character;
3722     } else {
3723     !!!parse-error;
3724     ## reconsume
3725     }
3726     }
3727     } else {
3728     !!!parse-error;
3729     !!!back-next-input-character (65, 114, $self->{next_input_character});
3730     $self->{next_input_character} = 104;
3731     }
3732     } else {
3733     !!!parse-error;
3734     !!!back-next-input-character (65, $self->{next_input_character});
3735     $self->{next_input_character} = 104;
3736     }
3737     } elsif ($self->{next_input_character} == 97) { # a
3738     !!!next-input-character;
3739     if ($self->{next_input_character} == 114) { # r
3740     !!!next-input-character;
3741     if ($self->{next_input_character} == 114) { # r
3742     !!!next-input-character;
3743     {
3744     $r = {type => 'character', data => qq<\x{2194}>}; # harr
3745     if ($self->{next_input_character} == 0x003B) { # ;
3746     !!!next-input-character;
3747     } else {
3748     !!!parse-error;
3749     ## reconsume
3750     }
3751     }
3752     } else {
3753     !!!parse-error;
3754     !!!back-next-input-character (97, 114, $self->{next_input_character});
3755     $self->{next_input_character} = 104;
3756     }
3757     } else {
3758     !!!parse-error;
3759     !!!back-next-input-character (97, $self->{next_input_character});
3760     $self->{next_input_character} = 104;
3761     }
3762     } elsif ($self->{next_input_character} == 101) { # e
3763     !!!next-input-character;
3764     if ($self->{next_input_character} == 97) { # a
3765     !!!next-input-character;
3766     if ($self->{next_input_character} == 114) { # r
3767     !!!next-input-character;
3768     if ($self->{next_input_character} == 116) { # t
3769     !!!next-input-character;
3770     if ($self->{next_input_character} == 115) { # s
3771     !!!next-input-character;
3772     {
3773     $r = {type => 'character', data => qq<\x{2665}>}; # hearts
3774     if ($self->{next_input_character} == 0x003B) { # ;
3775     !!!next-input-character;
3776     } else {
3777     !!!parse-error;
3778     ## reconsume
3779     }
3780     }
3781     } else {
3782     !!!parse-error;
3783     !!!back-next-input-character (101, 97, 114, 116, $self->{next_input_character});
3784     $self->{next_input_character} = 104;
3785     }
3786     } else {
3787     !!!parse-error;
3788     !!!back-next-input-character (101, 97, 114, $self->{next_input_character});
3789     $self->{next_input_character} = 104;
3790     }
3791     } else {
3792     !!!parse-error;
3793     !!!back-next-input-character (101, 97, $self->{next_input_character});
3794     $self->{next_input_character} = 104;
3795     }
3796     } elsif ($self->{next_input_character} == 108) { # l
3797     !!!next-input-character;
3798     if ($self->{next_input_character} == 108) { # l
3799     !!!next-input-character;
3800     if ($self->{next_input_character} == 105) { # i
3801     !!!next-input-character;
3802     if ($self->{next_input_character} == 112) { # p
3803     !!!next-input-character;
3804     {
3805     $r = {type => 'character', data => qq<\x{2026}>}; # hellip
3806     if ($self->{next_input_character} == 0x003B) { # ;
3807     !!!next-input-character;
3808     } else {
3809     !!!parse-error;
3810     ## reconsume
3811     }
3812     }
3813     } else {
3814     !!!parse-error;
3815     !!!back-next-input-character (101, 108, 108, 105, $self->{next_input_character});
3816     $self->{next_input_character} = 104;
3817     }
3818     } else {
3819     !!!parse-error;
3820     !!!back-next-input-character (101, 108, 108, $self->{next_input_character});
3821     $self->{next_input_character} = 104;
3822     }
3823     } else {
3824     !!!parse-error;
3825     !!!back-next-input-character (101, 108, $self->{next_input_character});
3826     $self->{next_input_character} = 104;
3827     }
3828     } else {
3829     !!!parse-error;
3830     !!!back-next-input-character (101, $self->{next_input_character});
3831     $self->{next_input_character} = 104;
3832     }
3833     } else {
3834     !!!parse-error;
3835     !!!back-next-input-character ($self->{next_input_character});
3836     $self->{next_input_character} = 104;
3837     }
3838     } elsif ($self->{next_input_character} == 105) { # i
3839     !!!next-input-character;
3840     if ($self->{next_input_character} == 97) { # a
3841     !!!next-input-character;
3842     if ($self->{next_input_character} == 99) { # c
3843     !!!next-input-character;
3844     if ($self->{next_input_character} == 117) { # u
3845     !!!next-input-character;
3846     if ($self->{next_input_character} == 116) { # t
3847     !!!next-input-character;
3848     if ($self->{next_input_character} == 101) { # e
3849     !!!next-input-character;
3850     {
3851     $r = {type => 'character', data => qq<\x{00ED}>}; # iacute
3852     if ($self->{next_input_character} == 0x003B) { # ;
3853     !!!next-input-character;
3854     } else {
3855     !!!parse-error;
3856     ## reconsume
3857     }
3858     }
3859     } else {
3860     !!!parse-error;
3861     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
3862     $self->{next_input_character} = 105;
3863     }
3864     } else {
3865     !!!parse-error;
3866     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
3867     $self->{next_input_character} = 105;
3868     }
3869     } else {
3870     !!!parse-error;
3871     !!!back-next-input-character (97, 99, $self->{next_input_character});
3872     $self->{next_input_character} = 105;
3873     }
3874     } else {
3875     !!!parse-error;
3876     !!!back-next-input-character (97, $self->{next_input_character});
3877     $self->{next_input_character} = 105;
3878     }
3879     } elsif ($self->{next_input_character} == 99) { # c
3880     !!!next-input-character;
3881     if ($self->{next_input_character} == 105) { # i
3882     !!!next-input-character;
3883     if ($self->{next_input_character} == 114) { # r
3884     !!!next-input-character;
3885     if ($self->{next_input_character} == 99) { # c
3886     !!!next-input-character;
3887     {
3888     $r = {type => 'character', data => qq<\x{00EE}>}; # icirc
3889     if ($self->{next_input_character} == 0x003B) { # ;
3890     !!!next-input-character;
3891     } else {
3892     !!!parse-error;
3893     ## reconsume
3894     }
3895     }
3896     } else {
3897     !!!parse-error;
3898     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
3899     $self->{next_input_character} = 105;
3900     }
3901     } else {
3902     !!!parse-error;
3903     !!!back-next-input-character (99, 105, $self->{next_input_character});
3904     $self->{next_input_character} = 105;
3905     }
3906     } else {
3907     !!!parse-error;
3908     !!!back-next-input-character (99, $self->{next_input_character});
3909     $self->{next_input_character} = 105;
3910     }
3911     } elsif ($self->{next_input_character} == 101) { # e
3912     !!!next-input-character;
3913     if ($self->{next_input_character} == 120) { # x
3914     !!!next-input-character;
3915     if ($self->{next_input_character} == 99) { # c
3916     !!!next-input-character;
3917     if ($self->{next_input_character} == 108) { # l
3918     !!!next-input-character;
3919     {
3920     $r = {type => 'character', data => qq<\x{00A1}>}; # iexcl
3921     if ($self->{next_input_character} == 0x003B) { # ;
3922     !!!next-input-character;
3923     } else {
3924     !!!parse-error;
3925     ## reconsume
3926     }
3927     }
3928     } else {
3929     !!!parse-error;
3930     !!!back-next-input-character (101, 120, 99, $self->{next_input_character});
3931     $self->{next_input_character} = 105;
3932     }
3933     } else {
3934     !!!parse-error;
3935     !!!back-next-input-character (101, 120, $self->{next_input_character});
3936     $self->{next_input_character} = 105;
3937     }
3938     } else {
3939     !!!parse-error;
3940     !!!back-next-input-character (101, $self->{next_input_character});
3941     $self->{next_input_character} = 105;
3942     }
3943     } elsif ($self->{next_input_character} == 103) { # g
3944     !!!next-input-character;
3945     if ($self->{next_input_character} == 114) { # r
3946     !!!next-input-character;
3947     if ($self->{next_input_character} == 97) { # a
3948     !!!next-input-character;
3949     if ($self->{next_input_character} == 118) { # v
3950     !!!next-input-character;
3951     if ($self->{next_input_character} == 101) { # e
3952     !!!next-input-character;
3953     {
3954     $r = {type => 'character', data => qq<\x{00EC}>}; # igrave
3955     if ($self->{next_input_character} == 0x003B) { # ;
3956     !!!next-input-character;
3957     } else {
3958     !!!parse-error;
3959     ## reconsume
3960     }
3961     }
3962     } else {
3963     !!!parse-error;
3964     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
3965     $self->{next_input_character} = 105;
3966     }
3967     } else {
3968     !!!parse-error;
3969     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
3970     $self->{next_input_character} = 105;
3971     }
3972     } else {
3973     !!!parse-error;
3974     !!!back-next-input-character (103, 114, $self->{next_input_character});
3975     $self->{next_input_character} = 105;
3976     }
3977     } else {
3978     !!!parse-error;
3979     !!!back-next-input-character (103, $self->{next_input_character});
3980     $self->{next_input_character} = 105;
3981     }
3982     } elsif ($self->{next_input_character} == 109) { # m
3983     !!!next-input-character;
3984     if ($self->{next_input_character} == 97) { # a
3985     !!!next-input-character;
3986     if ($self->{next_input_character} == 103) { # g
3987     !!!next-input-character;
3988     if ($self->{next_input_character} == 101) { # e
3989     !!!next-input-character;
3990     {
3991     $r = {type => 'character', data => qq<\x{2111}>}; # image
3992     if ($self->{next_input_character} == 0x003B) { # ;
3993     !!!next-input-character;
3994     } else {
3995     !!!parse-error;
3996     ## reconsume
3997     }
3998     }
3999     } else {
4000     !!!parse-error;
4001     !!!back-next-input-character (109, 97, 103, $self->{next_input_character});
4002     $self->{next_input_character} = 105;
4003     }
4004     } else {
4005     !!!parse-error;
4006     !!!back-next-input-character (109, 97, $self->{next_input_character});
4007     $self->{next_input_character} = 105;
4008     }
4009     } else {
4010     !!!parse-error;
4011     !!!back-next-input-character (109, $self->{next_input_character});
4012     $self->{next_input_character} = 105;
4013     }
4014     } elsif ($self->{next_input_character} == 110) { # n
4015     !!!next-input-character;
4016     if ($self->{next_input_character} == 102) { # f
4017     !!!next-input-character;
4018     if ($self->{next_input_character} == 105) { # i
4019     !!!next-input-character;
4020     if ($self->{next_input_character} == 110) { # n
4021     !!!next-input-character;
4022     {
4023     $r = {type => 'character', data => qq<\x{221E}>}; # infin
4024     if ($self->{next_input_character} == 0x003B) { # ;
4025     !!!next-input-character;
4026     } else {
4027     !!!parse-error;
4028     ## reconsume
4029     }
4030     }
4031     } else {
4032     !!!parse-error;
4033     !!!back-next-input-character (110, 102, 105, $self->{next_input_character});
4034     $self->{next_input_character} = 105;
4035     }
4036     } else {
4037     !!!parse-error;
4038     !!!back-next-input-character (110, 102, $self->{next_input_character});
4039     $self->{next_input_character} = 105;
4040     }
4041     } elsif ($self->{next_input_character} == 116) { # t
4042     !!!next-input-character;
4043     {
4044     $r = {type => 'character', data => qq<\x{222B}>}; # int
4045     if ($self->{next_input_character} == 0x003B) { # ;
4046     !!!next-input-character;
4047     } else {
4048     !!!parse-error;
4049     ## reconsume
4050     }
4051     }
4052     } else {
4053     !!!parse-error;
4054     !!!back-next-input-character (110, $self->{next_input_character});
4055     $self->{next_input_character} = 105;
4056     }
4057     } elsif ($self->{next_input_character} == 111) { # o
4058     !!!next-input-character;
4059     if ($self->{next_input_character} == 116) { # t
4060     !!!next-input-character;
4061     if ($self->{next_input_character} == 97) { # a
4062     !!!next-input-character;
4063     {
4064     $r = {type => 'character', data => qq<\x{03B9}>}; # iota
4065     if ($self->{next_input_character} == 0x003B) { # ;
4066     !!!next-input-character;
4067     } else {
4068     !!!parse-error;
4069     ## reconsume
4070     }
4071     }
4072     } else {
4073     !!!parse-error;
4074     !!!back-next-input-character (111, 116, $self->{next_input_character});
4075     $self->{next_input_character} = 105;
4076     }
4077     } else {
4078     !!!parse-error;
4079     !!!back-next-input-character (111, $self->{next_input_character});
4080     $self->{next_input_character} = 105;
4081     }
4082     } elsif ($self->{next_input_character} == 113) { # q
4083     !!!next-input-character;
4084     if ($self->{next_input_character} == 117) { # u
4085     !!!next-input-character;
4086     if ($self->{next_input_character} == 101) { # e
4087     !!!next-input-character;
4088     if ($self->{next_input_character} == 115) { # s
4089     !!!next-input-character;
4090     if ($self->{next_input_character} == 116) { # t
4091     !!!next-input-character;
4092     {
4093     $r = {type => 'character', data => qq<\x{00BF}>}; # iquest
4094     if ($self->{next_input_character} == 0x003B) { # ;
4095     !!!next-input-character;
4096     } else {
4097     !!!parse-error;
4098     ## reconsume
4099     }
4100     }
4101     } else {
4102     !!!parse-error;
4103     !!!back-next-input-character (113, 117, 101, 115, $self->{next_input_character});
4104     $self->{next_input_character} = 105;
4105     }
4106     } else {
4107     !!!parse-error;
4108     !!!back-next-input-character (113, 117, 101, $self->{next_input_character});
4109     $self->{next_input_character} = 105;
4110     }
4111     } else {
4112     !!!parse-error;
4113     !!!back-next-input-character (113, 117, $self->{next_input_character});
4114     $self->{next_input_character} = 105;
4115     }
4116     } else {
4117     !!!parse-error;
4118     !!!back-next-input-character (113, $self->{next_input_character});
4119     $self->{next_input_character} = 105;
4120     }
4121     } elsif ($self->{next_input_character} == 115) { # s
4122     !!!next-input-character;
4123     if ($self->{next_input_character} == 105) { # i
4124     !!!next-input-character;
4125     if ($self->{next_input_character} == 110) { # n
4126     !!!next-input-character;
4127     {
4128     $r = {type => 'character', data => qq<\x{2208}>}; # isin
4129     if ($self->{next_input_character} == 0x003B) { # ;
4130     !!!next-input-character;
4131     } else {
4132     !!!parse-error;
4133     ## reconsume
4134     }
4135     }
4136     } else {
4137     !!!parse-error;
4138     !!!back-next-input-character (115, 105, $self->{next_input_character});
4139     $self->{next_input_character} = 105;
4140     }
4141     } else {
4142     !!!parse-error;
4143     !!!back-next-input-character (115, $self->{next_input_character});
4144     $self->{next_input_character} = 105;
4145     }
4146     } elsif ($self->{next_input_character} == 117) { # u
4147     !!!next-input-character;
4148     if ($self->{next_input_character} == 109) { # m
4149     !!!next-input-character;
4150     if ($self->{next_input_character} == 108) { # l
4151     !!!next-input-character;
4152     {
4153     $r = {type => 'character', data => qq<\x{00EF}>}; # iuml
4154     if ($self->{next_input_character} == 0x003B) { # ;
4155     !!!next-input-character;
4156     } else {
4157     !!!parse-error;
4158     ## reconsume
4159     }
4160     }
4161     } else {
4162     !!!parse-error;
4163     !!!back-next-input-character (117, 109, $self->{next_input_character});
4164     $self->{next_input_character} = 105;
4165     }
4166     } else {
4167     !!!parse-error;
4168     !!!back-next-input-character (117, $self->{next_input_character});
4169     $self->{next_input_character} = 105;
4170     }
4171     } else {
4172     !!!parse-error;
4173     !!!back-next-input-character ($self->{next_input_character});
4174     $self->{next_input_character} = 105;
4175     }
4176     } elsif ($self->{next_input_character} == 107) { # k
4177     !!!next-input-character;
4178     if ($self->{next_input_character} == 97) { # a
4179     !!!next-input-character;
4180     if ($self->{next_input_character} == 112) { # p
4181     !!!next-input-character;
4182     if ($self->{next_input_character} == 112) { # p
4183     !!!next-input-character;
4184     if ($self->{next_input_character} == 97) { # a
4185     !!!next-input-character;
4186     {
4187     $r = {type => 'character', data => qq<\x{03BA}>}; # kappa
4188     if ($self->{next_input_character} == 0x003B) { # ;
4189     !!!next-input-character;
4190     } else {
4191     !!!parse-error;
4192     ## reconsume
4193     }
4194     }
4195     } else {
4196     !!!parse-error;
4197     !!!back-next-input-character (97, 112, 112, $self->{next_input_character});
4198     $self->{next_input_character} = 107;
4199     }
4200     } else {
4201     !!!parse-error;
4202     !!!back-next-input-character (97, 112, $self->{next_input_character});
4203     $self->{next_input_character} = 107;
4204     }
4205     } else {
4206     !!!parse-error;
4207     !!!back-next-input-character (97, $self->{next_input_character});
4208     $self->{next_input_character} = 107;
4209     }
4210     } else {
4211     !!!parse-error;
4212     !!!back-next-input-character ($self->{next_input_character});
4213     $self->{next_input_character} = 107;
4214     }
4215     } elsif ($self->{next_input_character} == 108) { # l
4216     !!!next-input-character;
4217     if ($self->{next_input_character} == 65) { # A
4218     !!!next-input-character;
4219     if ($self->{next_input_character} == 114) { # r
4220     !!!next-input-character;
4221     if ($self->{next_input_character} == 114) { # r
4222     !!!next-input-character;
4223     {
4224     $r = {type => 'character', data => qq<\x{21D0}>}; # lArr
4225     if ($self->{next_input_character} == 0x003B) { # ;
4226     !!!next-input-character;
4227     } else {
4228     !!!parse-error;
4229     ## reconsume
4230     }
4231     }
4232     } else {
4233     !!!parse-error;
4234     !!!back-next-input-character (65, 114, $self->{next_input_character});
4235     $self->{next_input_character} = 108;
4236     }
4237     } else {
4238     !!!parse-error;
4239     !!!back-next-input-character (65, $self->{next_input_character});
4240     $self->{next_input_character} = 108;
4241     }
4242     } elsif ($self->{next_input_character} == 97) { # a
4243     !!!next-input-character;
4244     if ($self->{next_input_character} == 109) { # m
4245     !!!next-input-character;
4246     if ($self->{next_input_character} == 98) { # b
4247     !!!next-input-character;
4248     if ($self->{next_input_character} == 100) { # d
4249     !!!next-input-character;
4250     if ($self->{next_input_character} == 97) { # a
4251     !!!next-input-character;
4252     {
4253     $r = {type => 'character', data => qq<\x{03BB}>}; # lambda
4254     if ($self->{next_input_character} == 0x003B) { # ;
4255     !!!next-input-character;
4256     } else {
4257     !!!parse-error;
4258     ## reconsume
4259     }
4260     }
4261     } else {
4262     !!!parse-error;
4263     !!!back-next-input-character (97, 109, 98, 100, $self->{next_input_character});
4264     $self->{next_input_character} = 108;
4265     }
4266     } else {
4267     !!!parse-error;
4268     !!!back-next-input-character (97, 109, 98, $self->{next_input_character});
4269     $self->{next_input_character} = 108;
4270     }
4271     } else {
4272     !!!parse-error;
4273     !!!back-next-input-character (97, 109, $self->{next_input_character});
4274     $self->{next_input_character} = 108;
4275     }
4276     } elsif ($self->{next_input_character} == 110) { # n
4277     !!!next-input-character;
4278     if ($self->{next_input_character} == 103) { # g
4279     !!!next-input-character;
4280     {
4281     $r = {type => 'character', data => qq<\x{2329}>}; # lang
4282     if ($self->{next_input_character} == 0x003B) { # ;
4283     !!!next-input-character;
4284     } else {
4285     !!!parse-error;
4286     ## reconsume
4287     }
4288     }
4289     } else {
4290     !!!parse-error;
4291     !!!back-next-input-character (97, 110, $self->{next_input_character});
4292     $self->{next_input_character} = 108;
4293     }
4294     } elsif ($self->{next_input_character} == 113) { # q
4295     !!!next-input-character;
4296     if ($self->{next_input_character} == 117) { # u
4297     !!!next-input-character;
4298     if ($self->{next_input_character} == 111) { # o
4299     !!!next-input-character;
4300     {
4301     $r = {type => 'character', data => qq<\x{00AB}>}; # laquo
4302     if ($self->{next_input_character} == 0x003B) { # ;
4303     !!!next-input-character;
4304     } else {
4305     !!!parse-error;
4306     ## reconsume
4307     }
4308     }
4309     } else {
4310     !!!parse-error;
4311     !!!back-next-input-character (97, 113, 117, $self->{next_input_character});
4312     $self->{next_input_character} = 108;
4313     }
4314     } else {
4315     !!!parse-error;
4316     !!!back-next-input-character (97, 113, $self->{next_input_character});
4317     $self->{next_input_character} = 108;
4318     }
4319     } elsif ($self->{next_input_character} == 114) { # r
4320     !!!next-input-character;
4321     if ($self->{next_input_character} == 114) { # r
4322     !!!next-input-character;
4323     {
4324     $r = {type => 'character', data => qq<\x{2190}>}; # larr
4325     if ($self->{next_input_character} == 0x003B) { # ;
4326     !!!next-input-character;
4327     } else {
4328     !!!parse-error;
4329     ## reconsume
4330     }
4331     }
4332     } else {
4333     !!!parse-error;
4334     !!!back-next-input-character (97, 114, $self->{next_input_character});
4335     $self->{next_input_character} = 108;
4336     }
4337     } else {
4338     !!!parse-error;
4339     !!!back-next-input-character (97, $self->{next_input_character});
4340     $self->{next_input_character} = 108;
4341     }
4342     } elsif ($self->{next_input_character} == 99) { # c
4343     !!!next-input-character;
4344     if ($self->{next_input_character} == 101) { # e
4345     !!!next-input-character;
4346     if ($self->{next_input_character} == 105) { # i
4347     !!!next-input-character;
4348     if ($self->{next_input_character} == 108) { # l
4349     !!!next-input-character;
4350     {
4351     $r = {type => 'character', data => qq<\x{2308}>}; # lceil
4352     if ($self->{next_input_character} == 0x003B) { # ;
4353     !!!next-input-character;
4354     } else {
4355     !!!parse-error;
4356     ## reconsume
4357     }
4358     }
4359     } else {
4360     !!!parse-error;
4361     !!!back-next-input-character (99, 101, 105, $self->{next_input_character});
4362     $self->{next_input_character} = 108;
4363     }
4364     } else {
4365     !!!parse-error;
4366     !!!back-next-input-character (99, 101, $self->{next_input_character});
4367     $self->{next_input_character} = 108;
4368     }
4369     } else {
4370     !!!parse-error;
4371     !!!back-next-input-character (99, $self->{next_input_character});
4372     $self->{next_input_character} = 108;
4373     }
4374     } elsif ($self->{next_input_character} == 100) { # d
4375     !!!next-input-character;
4376     if ($self->{next_input_character} == 113) { # q
4377     !!!next-input-character;
4378     if ($self->{next_input_character} == 117) { # u
4379     !!!next-input-character;
4380     if ($self->{next_input_character} == 111) { # o
4381     !!!next-input-character;
4382     {
4383     $r = {type => 'character', data => qq<\x{201C}>}; # ldquo
4384     if ($self->{next_input_character} == 0x003B) { # ;
4385     !!!next-input-character;
4386     } else {
4387     !!!parse-error;
4388     ## reconsume
4389     }
4390     }
4391     } else {
4392     !!!parse-error;
4393     !!!back-next-input-character (100, 113, 117, $self->{next_input_character});
4394     $self->{next_input_character} = 108;
4395     }
4396     } else {
4397     !!!parse-error;
4398     !!!back-next-input-character (100, 113, $self->{next_input_character});
4399     $self->{next_input_character} = 108;
4400     }
4401     } else {
4402     !!!parse-error;
4403     !!!back-next-input-character (100, $self->{next_input_character});
4404     $self->{next_input_character} = 108;
4405     }
4406     } elsif ($self->{next_input_character} == 101) { # e
4407     !!!next-input-character;
4408     {
4409     $r = {type => 'character', data => qq<\x{2264}>}; # le
4410     if ($self->{next_input_character} == 0x003B) { # ;
4411     !!!next-input-character;
4412     } else {
4413     !!!parse-error;
4414     ## reconsume
4415     }
4416     }
4417     } elsif ($self->{next_input_character} == 102) { # f
4418     !!!next-input-character;
4419     if ($self->{next_input_character} == 108) { # l
4420     !!!next-input-character;
4421     if ($self->{next_input_character} == 111) { # o
4422     !!!next-input-character;
4423     if ($self->{next_input_character} == 111) { # o
4424     !!!next-input-character;
4425     if ($self->{next_input_character} == 114) { # r
4426     !!!next-input-character;
4427     {
4428     $r = {type => 'character', data => qq<\x{230A}>}; # lfloor
4429     if ($self->{next_input_character} == 0x003B) { # ;
4430     !!!next-input-character;
4431     } else {
4432     !!!parse-error;
4433     ## reconsume
4434     }
4435     }
4436     } else {
4437     !!!parse-error;
4438     !!!back-next-input-character (102, 108, 111, 111, $self->{next_input_character});
4439     $self->{next_input_character} = 108;
4440     }
4441     } else {
4442     !!!parse-error;
4443     !!!back-next-input-character (102, 108, 111, $self->{next_input_character});
4444     $self->{next_input_character} = 108;
4445     }
4446     } else {
4447     !!!parse-error;
4448     !!!back-next-input-character (102, 108, $self->{next_input_character});
4449     $self->{next_input_character} = 108;
4450     }
4451     } else {
4452     !!!parse-error;
4453     !!!back-next-input-character (102, $self->{next_input_character});
4454     $self->{next_input_character} = 108;
4455     }
4456     } elsif ($self->{next_input_character} == 111) { # o
4457     !!!next-input-character;
4458     if ($self->{next_input_character} == 119) { # w
4459     !!!next-input-character;
4460     if ($self->{next_input_character} == 97) { # a
4461     !!!next-input-character;
4462     if ($self->{next_input_character} == 115) { # s
4463     !!!next-input-character;
4464     if ($self->{next_input_character} == 116) { # t
4465     !!!next-input-character;
4466     {
4467     $r = {type => 'character', data => qq<\x{2217}>}; # lowast
4468     if ($self->{next_input_character} == 0x003B) { # ;
4469     !!!next-input-character;
4470     } else {
4471     !!!parse-error;
4472     ## reconsume
4473     }
4474     }
4475     } else {
4476     !!!parse-error;
4477     !!!back-next-input-character (111, 119, 97, 115, $self->{next_input_character});
4478     $self->{next_input_character} = 108;
4479     }
4480     } else {
4481     !!!parse-error;
4482     !!!back-next-input-character (111, 119, 97, $self->{next_input_character});
4483     $self->{next_input_character} = 108;
4484     }
4485     } else {
4486     !!!parse-error;
4487     !!!back-next-input-character (111, 119, $self->{next_input_character});
4488     $self->{next_input_character} = 108;
4489     }
4490     } elsif ($self->{next_input_character} == 122) { # z
4491     !!!next-input-character;
4492     {
4493     $r = {type => 'character', data => qq<\x{25CA}>}; # loz
4494     if ($self->{next_input_character} == 0x003B) { # ;
4495     !!!next-input-character;
4496     } else {
4497     !!!parse-error;
4498     ## reconsume
4499     }
4500     }
4501     } else {
4502     !!!parse-error;
4503     !!!back-next-input-character (111, $self->{next_input_character});
4504     $self->{next_input_character} = 108;
4505     }
4506     } elsif ($self->{next_input_character} == 114) { # r
4507     !!!next-input-character;
4508     if ($self->{next_input_character} == 109) { # m
4509     !!!next-input-character;
4510     {
4511     $r = {type => 'character', data => qq<\x{200E}>}; # lrm
4512     if ($self->{next_input_character} == 0x003B) { # ;
4513     !!!next-input-character;
4514     } else {
4515     !!!parse-error;
4516     ## reconsume
4517     }
4518     }
4519     } else {
4520     !!!parse-error;
4521     !!!back-next-input-character (114, $self->{next_input_character});
4522     $self->{next_input_character} = 108;
4523     }
4524     } elsif ($self->{next_input_character} == 115) { # s
4525     !!!next-input-character;
4526     if ($self->{next_input_character} == 97) { # a
4527     !!!next-input-character;
4528     if ($self->{next_input_character} == 113) { # q
4529     !!!next-input-character;
4530     if ($self->{next_input_character} == 117) { # u
4531     !!!next-input-character;
4532     if ($self->{next_input_character} == 111) { # o
4533     !!!next-input-character;
4534     {
4535     $r = {type => 'character', data => qq<\x{2039}>}; # lsaquo
4536     if ($self->{next_input_character} == 0x003B) { # ;
4537     !!!next-input-character;
4538     } else {
4539     !!!parse-error;
4540     ## reconsume
4541     }
4542     }
4543     } else {
4544     !!!parse-error;
4545     !!!back-next-input-character (115, 97, 113, 117, $self->{next_input_character});
4546     $self->{next_input_character} = 108;
4547     }
4548     } else {
4549     !!!parse-error;
4550     !!!back-next-input-character (115, 97, 113, $self->{next_input_character});
4551     $self->{next_input_character} = 108;
4552     }
4553     } else {
4554     !!!parse-error;
4555     !!!back-next-input-character (115, 97, $self->{next_input_character});
4556     $self->{next_input_character} = 108;
4557     }
4558     } elsif ($self->{next_input_character} == 113) { # q
4559     !!!next-input-character;
4560     if ($self->{next_input_character} == 117) { # u
4561     !!!next-input-character;
4562     if ($self->{next_input_character} == 111) { # o
4563     !!!next-input-character;
4564     {
4565     $r = {type => 'character', data => qq<\x{2018}>}; # lsquo
4566     if ($self->{next_input_character} == 0x003B) { # ;
4567     !!!next-input-character;
4568     } else {
4569     !!!parse-error;
4570     ## reconsume
4571     }
4572     }
4573     } else {
4574     !!!parse-error;
4575     !!!back-next-input-character (115, 113, 117, $self->{next_input_character});
4576     $self->{next_input_character} = 108;
4577     }
4578     } else {
4579     !!!parse-error;
4580     !!!back-next-input-character (115, 113, $self->{next_input_character});
4581     $self->{next_input_character} = 108;
4582     }
4583     } else {
4584     !!!parse-error;
4585     !!!back-next-input-character (115, $self->{next_input_character});
4586     $self->{next_input_character} = 108;
4587     }
4588     } elsif ($self->{next_input_character} == 116) { # t
4589     !!!next-input-character;
4590     {
4591     $r = {type => 'character', data => qq<\x{003C}>}; # lt
4592     if ($self->{next_input_character} == 0x003B) { # ;
4593     !!!next-input-character;
4594     } else {
4595     !!!parse-error;
4596     ## reconsume
4597     }
4598     }
4599     } else {
4600     !!!parse-error;
4601     !!!back-next-input-character ($self->{next_input_character});
4602     $self->{next_input_character} = 108;
4603     }
4604     } elsif ($self->{next_input_character} == 109) { # m
4605     !!!next-input-character;
4606     if ($self->{next_input_character} == 97) { # a
4607     !!!next-input-character;
4608     if ($self->{next_input_character} == 99) { # c
4609     !!!next-input-character;
4610     if ($self->{next_input_character} == 114) { # r
4611     !!!next-input-character;
4612     {
4613     $r = {type => 'character', data => qq<\x{00AF}>}; # macr
4614     if ($self->{next_input_character} == 0x003B) { # ;
4615     !!!next-input-character;
4616     } else {
4617     !!!parse-error;
4618     ## reconsume
4619     }
4620     }
4621     } else {
4622     !!!parse-error;
4623     !!!back-next-input-character (97, 99, $self->{next_input_character});
4624     $self->{next_input_character} = 109;
4625     }
4626     } else {
4627     !!!parse-error;
4628     !!!back-next-input-character (97, $self->{next_input_character});
4629     $self->{next_input_character} = 109;
4630     }
4631     } elsif ($self->{next_input_character} == 100) { # d
4632     !!!next-input-character;
4633     if ($self->{next_input_character} == 97) { # a
4634     !!!next-input-character;
4635     if ($self->{next_input_character} == 115) { # s
4636     !!!next-input-character;
4637     if ($self->{next_input_character} == 104) { # h
4638     !!!next-input-character;
4639     {
4640     $r = {type => 'character', data => qq<\x{2014}>}; # mdash
4641     if ($self->{next_input_character} == 0x003B) { # ;
4642     !!!next-input-character;
4643     } else {
4644     !!!parse-error;
4645     ## reconsume
4646     }
4647     }
4648     } else {
4649     !!!parse-error;
4650     !!!back-next-input-character (100, 97, 115, $self->{next_input_character});
4651     $self->{next_input_character} = 109;
4652     }
4653     } else {
4654     !!!parse-error;
4655     !!!back-next-input-character (100, 97, $self->{next_input_character});
4656     $self->{next_input_character} = 109;
4657     }
4658     } else {
4659     !!!parse-error;
4660     !!!back-next-input-character (100, $self->{next_input_character});
4661     $self->{next_input_character} = 109;
4662     }
4663     } elsif ($self->{next_input_character} == 105) { # i
4664     !!!next-input-character;
4665     if ($self->{next_input_character} == 99) { # c
4666     !!!next-input-character;
4667     if ($self->{next_input_character} == 114) { # r
4668     !!!next-input-character;
4669     if ($self->{next_input_character} == 111) { # o
4670     !!!next-input-character;
4671     {
4672     $r = {type => 'character', data => qq<\x{00B5}>}; # micro
4673     if ($self->{next_input_character} == 0x003B) { # ;
4674     !!!next-input-character;
4675     } else {
4676     !!!parse-error;
4677     ## reconsume
4678     }
4679     }
4680     } else {
4681     !!!parse-error;
4682     !!!back-next-input-character (105, 99, 114, $self->{next_input_character});
4683     $self->{next_input_character} = 109;
4684     }
4685     } else {
4686     !!!parse-error;
4687     !!!back-next-input-character (105, 99, $self->{next_input_character});
4688     $self->{next_input_character} = 109;
4689     }
4690     } elsif ($self->{next_input_character} == 100) { # d
4691     !!!next-input-character;
4692     if ($self->{next_input_character} == 100) { # d
4693     !!!next-input-character;
4694     if ($self->{next_input_character} == 111) { # o
4695     !!!next-input-character;
4696     if ($self->{next_input_character} == 116) { # t
4697     !!!next-input-character;
4698     {
4699     $r = {type => 'character', data => qq<\x{00B7}>}; # middot
4700     if ($self->{next_input_character} == 0x003B) { # ;
4701     !!!next-input-character;
4702     } else {
4703     !!!parse-error;
4704     ## reconsume
4705     }
4706     }
4707     } else {
4708     !!!parse-error;
4709     !!!back-next-input-character (105, 100, 100, 111, $self->{next_input_character});
4710     $self->{next_input_character} = 109;
4711     }
4712     } else {
4713     !!!parse-error;
4714     !!!back-next-input-character (105, 100, 100, $self->{next_input_character});
4715     $self->{next_input_character} = 109;
4716     }
4717     } else {
4718     !!!parse-error;
4719     !!!back-next-input-character (105, 100, $self->{next_input_character});
4720     $self->{next_input_character} = 109;
4721     }
4722     } elsif ($self->{next_input_character} == 110) { # n
4723     !!!next-input-character;
4724     if ($self->{next_input_character} == 117) { # u
4725     !!!next-input-character;
4726     if ($self->{next_input_character} == 115) { # s
4727     !!!next-input-character;
4728     {
4729     $r = {type => 'character', data => qq<\x{2212}>}; # minus
4730     if ($self->{next_input_character} == 0x003B) { # ;
4731     !!!next-input-character;
4732     } else {
4733     !!!parse-error;
4734     ## reconsume
4735     }
4736     }
4737     } else {
4738     !!!parse-error;
4739     !!!back-next-input-character (105, 110, 117, $self->{next_input_character});
4740     $self->{next_input_character} = 109;
4741     }
4742     } else {
4743     !!!parse-error;
4744     !!!back-next-input-character (105, 110, $self->{next_input_character});
4745     $self->{next_input_character} = 109;
4746     }
4747     } else {
4748     !!!parse-error;
4749     !!!back-next-input-character (105, $self->{next_input_character});
4750     $self->{next_input_character} = 109;
4751     }
4752     } elsif ($self->{next_input_character} == 117) { # u
4753     !!!next-input-character;
4754     {
4755     $r = {type => 'character', data => qq<\x{03BC}>}; # mu
4756     if ($self->{next_input_character} == 0x003B) { # ;
4757     !!!next-input-character;
4758     } else {
4759     !!!parse-error;
4760     ## reconsume
4761     }
4762     }
4763     } else {
4764     !!!parse-error;
4765     !!!back-next-input-character ($self->{next_input_character});
4766     $self->{next_input_character} = 109;
4767     }
4768     } elsif ($self->{next_input_character} == 110) { # n
4769     !!!next-input-character;
4770     if ($self->{next_input_character} == 97) { # a
4771     !!!next-input-character;
4772     if ($self->{next_input_character} == 98) { # b
4773     !!!next-input-character;
4774     if ($self->{next_input_character} == 108) { # l
4775     !!!next-input-character;
4776     if ($self->{next_input_character} == 97) { # a
4777     !!!next-input-character;
4778     {
4779     $r = {type => 'character', data => qq<\x{2207}>}; # nabla
4780     if ($self->{next_input_character} == 0x003B) { # ;
4781     !!!next-input-character;
4782     } else {
4783     !!!parse-error;
4784     ## reconsume
4785     }
4786     }
4787     } else {
4788     !!!parse-error;
4789     !!!back-next-input-character (97, 98, 108, $self->{next_input_character});
4790     $self->{next_input_character} = 110;
4791     }
4792     } else {
4793     !!!parse-error;
4794     !!!back-next-input-character (97, 98, $self->{next_input_character});
4795     $self->{next_input_character} = 110;
4796     }
4797     } else {
4798     !!!parse-error;
4799     !!!back-next-input-character (97, $self->{next_input_character});
4800     $self->{next_input_character} = 110;
4801     }
4802     } elsif ($self->{next_input_character} == 98) { # b
4803     !!!next-input-character;
4804     if ($self->{next_input_character} == 115) { # s
4805     !!!next-input-character;
4806     if ($self->{next_input_character} == 112) { # p
4807     !!!next-input-character;
4808     {
4809     $r = {type => 'character', data => qq<\x{00A0}>}; # nbsp
4810     if ($self->{next_input_character} == 0x003B) { # ;
4811     !!!next-input-character;
4812     } else {
4813     !!!parse-error;
4814     ## reconsume
4815     }
4816     }
4817     } else {
4818     !!!parse-error;
4819     !!!back-next-input-character (98, 115, $self->{next_input_character});
4820     $self->{next_input_character} = 110;
4821     }
4822     } else {
4823     !!!parse-error;
4824     !!!back-next-input-character (98, $self->{next_input_character});
4825     $self->{next_input_character} = 110;
4826     }
4827     } elsif ($self->{next_input_character} == 100) { # d
4828     !!!next-input-character;
4829     if ($self->{next_input_character} == 97) { # a
4830     !!!next-input-character;
4831     if ($self->{next_input_character} == 115) { # s
4832     !!!next-input-character;
4833     if ($self->{next_input_character} == 104) { # h
4834     !!!next-input-character;
4835     {
4836     $r = {type => 'character', data => qq<\x{2013}>}; # ndash
4837     if ($self->{next_input_character} == 0x003B) { # ;
4838     !!!next-input-character;
4839     } else {
4840     !!!parse-error;
4841     ## reconsume
4842     }
4843     }
4844     } else {
4845     !!!parse-error;
4846     !!!back-next-input-character (100, 97, 115, $self->{next_input_character});
4847     $self->{next_input_character} = 110;
4848     }
4849     } else {
4850     !!!parse-error;
4851     !!!back-next-input-character (100, 97, $self->{next_input_character});
4852     $self->{next_input_character} = 110;
4853     }
4854     } else {
4855     !!!parse-error;
4856     !!!back-next-input-character (100, $self->{next_input_character});
4857     $self->{next_input_character} = 110;
4858     }
4859     } elsif ($self->{next_input_character} == 101) { # e
4860     !!!next-input-character;
4861     {
4862     $r = {type => 'character', data => qq<\x{2260}>}; # ne
4863     if ($self->{next_input_character} == 0x003B) { # ;
4864     !!!next-input-character;
4865     } else {
4866     !!!parse-error;
4867     ## reconsume
4868     }
4869     }
4870     } elsif ($self->{next_input_character} == 105) { # i
4871     !!!next-input-character;
4872     {
4873     $r = {type => 'character', data => qq<\x{220B}>}; # ni
4874     if ($self->{next_input_character} == 0x003B) { # ;
4875     !!!next-input-character;
4876     } else {
4877     !!!parse-error;
4878     ## reconsume
4879     }
4880     }
4881     } elsif ($self->{next_input_character} == 111) { # o
4882     !!!next-input-character;
4883     if ($self->{next_input_character} == 116) { # t
4884     !!!next-input-character;
4885     if ($self->{next_input_character} == 105) { # i
4886     !!!next-input-character;
4887     if ($self->{next_input_character} == 110) { # n
4888     !!!next-input-character;
4889     {
4890     $r = {type => 'character', data => qq<\x{2209}>}; # notin
4891     if ($self->{next_input_character} == 0x003B) { # ;
4892     !!!next-input-character;
4893     } else {
4894     !!!parse-error;
4895     ## reconsume
4896     }
4897     }
4898     } else {
4899     !!!parse-error;
4900     !!!back-next-input-character (111, 116, 105, $self->{next_input_character});
4901     $self->{next_input_character} = 110;
4902     }
4903     } else {
4904     $r = {type => 'character', data => qq<\x{00AC}>}; # not
4905     if ($self->{next_input_character} == 0x003B) { # ;
4906     !!!next-input-character;
4907     } else {
4908     !!!parse-error;
4909     ## reconsume
4910     }
4911     }
4912     } else {
4913     !!!parse-error;
4914     !!!back-next-input-character (111, $self->{next_input_character});
4915     $self->{next_input_character} = 110;
4916     }
4917     } elsif ($self->{next_input_character} == 115) { # s
4918     !!!next-input-character;
4919     if ($self->{next_input_character} == 117) { # u
4920     !!!next-input-character;
4921     if ($self->{next_input_character} == 98) { # b
4922     !!!next-input-character;
4923     {
4924     $r = {type => 'character', data => qq<\x{2284}>}; # nsub
4925     if ($self->{next_input_character} == 0x003B) { # ;
4926     !!!next-input-character;
4927     } else {
4928     !!!parse-error;
4929     ## reconsume
4930     }
4931     }
4932     } else {
4933     !!!parse-error;
4934     !!!back-next-input-character (115, 117, $self->{next_input_character});
4935     $self->{next_input_character} = 110;
4936     }
4937     } else {
4938     !!!parse-error;
4939     !!!back-next-input-character (115, $self->{next_input_character});
4940     $self->{next_input_character} = 110;
4941     }
4942     } elsif ($self->{next_input_character} == 116) { # t
4943     !!!next-input-character;
4944     if ($self->{next_input_character} == 105) { # i
4945     !!!next-input-character;
4946     if ($self->{next_input_character} == 108) { # l
4947     !!!next-input-character;
4948     if ($self->{next_input_character} == 100) { # d
4949     !!!next-input-character;
4950     if ($self->{next_input_character} == 101) { # e
4951     !!!next-input-character;
4952     {
4953     $r = {type => 'character', data => qq<\x{00F1}>}; # ntilde
4954     if ($self->{next_input_character} == 0x003B) { # ;
4955     !!!next-input-character;
4956     } else {
4957     !!!parse-error;
4958     ## reconsume
4959     }
4960     }
4961     } else {
4962     !!!parse-error;
4963     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
4964     $self->{next_input_character} = 110;
4965     }
4966     } else {
4967     !!!parse-error;
4968     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
4969     $self->{next_input_character} = 110;
4970     }
4971     } else {
4972     !!!parse-error;
4973     !!!back-next-input-character (116, 105, $self->{next_input_character});
4974     $self->{next_input_character} = 110;
4975     }
4976     } else {
4977     !!!parse-error;
4978     !!!back-next-input-character (116, $self->{next_input_character});
4979     $self->{next_input_character} = 110;
4980     }
4981     } elsif ($self->{next_input_character} == 117) { # u
4982     !!!next-input-character;
4983     {
4984     $r = {type => 'character', data => qq<\x{03BD}>}; # nu
4985     if ($self->{next_input_character} == 0x003B) { # ;
4986     !!!next-input-character;
4987     } else {
4988     !!!parse-error;
4989     ## reconsume
4990     }
4991     }
4992     } else {
4993     !!!parse-error;
4994     !!!back-next-input-character ($self->{next_input_character});
4995     $self->{next_input_character} = 110;
4996     }
4997     } elsif ($self->{next_input_character} == 111) { # o
4998     !!!next-input-character;
4999     if ($self->{next_input_character} == 97) { # a
5000     !!!next-input-character;
5001     if ($self->{next_input_character} == 99) { # c
5002     !!!next-input-character;
5003     if ($self->{next_input_character} == 117) { # u
5004     !!!next-input-character;
5005     if ($self->{next_input_character} == 116) { # t
5006     !!!next-input-character;
5007     if ($self->{next_input_character} == 101) { # e
5008     !!!next-input-character;
5009     {
5010     $r = {type => 'character', data => qq<\x{00F3}>}; # oacute
5011     if ($self->{next_input_character} == 0x003B) { # ;
5012     !!!next-input-character;
5013     } else {
5014     !!!parse-error;
5015     ## reconsume
5016     }
5017     }
5018     } else {
5019     !!!parse-error;
5020     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
5021     $self->{next_input_character} = 111;
5022     }
5023     } else {
5024     !!!parse-error;
5025     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
5026     $self->{next_input_character} = 111;
5027     }
5028     } else {
5029     !!!parse-error;
5030     !!!back-next-input-character (97, 99, $self->{next_input_character});
5031     $self->{next_input_character} = 111;
5032     }
5033     } else {
5034     !!!parse-error;
5035     !!!back-next-input-character (97, $self->{next_input_character});
5036     $self->{next_input_character} = 111;
5037     }
5038     } elsif ($self->{next_input_character} == 99) { # c
5039     !!!next-input-character;
5040     if ($self->{next_input_character} == 105) { # i
5041     !!!next-input-character;
5042     if ($self->{next_input_character} == 114) { # r
5043     !!!next-input-character;
5044     if ($self->{next_input_character} == 99) { # c
5045     !!!next-input-character;
5046     {
5047     $r = {type => 'character', data => qq<\x{00F4}>}; # ocirc
5048     if ($self->{next_input_character} == 0x003B) { # ;
5049     !!!next-input-character;
5050     } else {
5051     !!!parse-error;
5052     ## reconsume
5053     }
5054     }
5055     } else {
5056     !!!parse-error;
5057     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
5058     $self->{next_input_character} = 111;
5059     }
5060     } else {
5061     !!!parse-error;
5062     !!!back-next-input-character (99, 105, $self->{next_input_character});
5063     $self->{next_input_character} = 111;
5064     }
5065     } else {
5066     !!!parse-error;
5067     !!!back-next-input-character (99, $self->{next_input_character});
5068     $self->{next_input_character} = 111;
5069     }
5070     } elsif ($self->{next_input_character} == 101) { # e
5071     !!!next-input-character;
5072     if ($self->{next_input_character} == 108) { # l
5073     !!!next-input-character;
5074     if ($self->{next_input_character} == 105) { # i
5075     !!!next-input-character;
5076     if ($self->{next_input_character} == 103) { # g
5077     !!!next-input-character;
5078     {
5079     $r = {type => 'character', data => qq<\x{0153}>}; # oelig
5080     if ($self->{next_input_character} == 0x003B) { # ;
5081     !!!next-input-character;
5082     } else {
5083     !!!parse-error;
5084     ## reconsume
5085     }
5086     }
5087     } else {
5088     !!!parse-error;
5089     !!!back-next-input-character (101, 108, 105, $self->{next_input_character});
5090     $self->{next_input_character} = 111;
5091     }
5092     } else {
5093     !!!parse-error;
5094     !!!back-next-input-character (101, 108, $self->{next_input_character});
5095     $self->{next_input_character} = 111;
5096     }
5097     } else {
5098     !!!parse-error;
5099     !!!back-next-input-character (101, $self->{next_input_character});
5100     $self->{next_input_character} = 111;
5101     }
5102     } elsif ($self->{next_input_character} == 103) { # g
5103     !!!next-input-character;
5104     if ($self->{next_input_character} == 114) { # r
5105     !!!next-input-character;
5106     if ($self->{next_input_character} == 97) { # a
5107     !!!next-input-character;
5108     if ($self->{next_input_character} == 118) { # v
5109     !!!next-input-character;
5110     if ($self->{next_input_character} == 101) { # e
5111     !!!next-input-character;
5112     {
5113     $r = {type => 'character', data => qq<\x{00F2}>}; # ograve
5114     if ($self->{next_input_character} == 0x003B) { # ;
5115     !!!next-input-character;
5116     } else {
5117     !!!parse-error;
5118     ## reconsume
5119     }
5120     }
5121     } else {
5122     !!!parse-error;
5123     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
5124     $self->{next_input_character} = 111;
5125     }
5126     } else {
5127     !!!parse-error;
5128     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
5129     $self->{next_input_character} = 111;
5130     }
5131     } else {
5132     !!!parse-error;
5133     !!!back-next-input-character (103, 114, $self->{next_input_character});
5134     $self->{next_input_character} = 111;
5135     }
5136     } else {
5137     !!!parse-error;
5138     !!!back-next-input-character (103, $self->{next_input_character});
5139     $self->{next_input_character} = 111;
5140     }
5141     } elsif ($self->{next_input_character} == 108) { # l
5142     !!!next-input-character;
5143     if ($self->{next_input_character} == 105) { # i
5144     !!!next-input-character;
5145     if ($self->{next_input_character} == 110) { # n
5146     !!!next-input-character;
5147     if ($self->{next_input_character} == 101) { # e
5148     !!!next-input-character;
5149     {
5150     $r = {type => 'character', data => qq<\x{203E}>}; # oline
5151     if ($self->{next_input_character} == 0x003B) { # ;
5152     !!!next-input-character;
5153     } else {
5154     !!!parse-error;
5155     ## reconsume
5156     }
5157     }
5158     } else {
5159     !!!parse-error;
5160     !!!back-next-input-character (108, 105, 110, $self->{next_input_character});
5161     $self->{next_input_character} = 111;
5162     }
5163     } else {
5164     !!!parse-error;
5165     !!!back-next-input-character (108, 105, $self->{next_input_character});
5166     $self->{next_input_character} = 111;
5167     }
5168     } else {
5169     !!!parse-error;
5170     !!!back-next-input-character (108, $self->{next_input_character});
5171     $self->{next_input_character} = 111;
5172     }
5173     } elsif ($self->{next_input_character} == 109) { # m
5174     !!!next-input-character;
5175     if ($self->{next_input_character} == 101) { # e
5176     !!!next-input-character;
5177     if ($self->{next_input_character} == 103) { # g
5178     !!!next-input-character;
5179     if ($self->{next_input_character} == 97) { # a
5180     !!!next-input-character;
5181     {
5182     $r = {type => 'character', data => qq<\x{03C9}>}; # omega
5183     if ($self->{next_input_character} == 0x003B) { # ;
5184     !!!next-input-character;
5185     } else {
5186     !!!parse-error;
5187     ## reconsume
5188     }
5189     }
5190     } else {
5191     !!!parse-error;
5192     !!!back-next-input-character (109, 101, 103, $self->{next_input_character});
5193     $self->{next_input_character} = 111;
5194     }
5195     } else {
5196     !!!parse-error;
5197     !!!back-next-input-character (109, 101, $self->{next_input_character});
5198     $self->{next_input_character} = 111;
5199     }
5200     } elsif ($self->{next_input_character} == 105) { # i
5201     !!!next-input-character;
5202     if ($self->{next_input_character} == 99) { # c
5203     !!!next-input-character;
5204     if ($self->{next_input_character} == 114) { # r
5205     !!!next-input-character;
5206     if ($self->{next_input_character} == 111) { # o
5207     !!!next-input-character;
5208     if ($self->{next_input_character} == 110) { # n
5209     !!!next-input-character;
5210     {
5211     $r = {type => 'character', data => qq<\x{03BF}>}; # omicron
5212     if ($self->{next_input_character} == 0x003B) { # ;
5213     !!!next-input-character;
5214     } else {
5215     !!!parse-error;
5216     ## reconsume
5217     }
5218     }
5219     } else {
5220     !!!parse-error;
5221     !!!back-next-input-character (109, 105, 99, 114, 111, $self->{next_input_character});
5222     $self->{next_input_character} = 111;
5223     }
5224     } else {
5225     !!!parse-error;
5226     !!!back-next-input-character (109, 105, 99, 114, $self->{next_input_character});
5227     $self->{next_input_character} = 111;
5228     }
5229     } else {
5230     !!!parse-error;
5231     !!!back-next-input-character (109, 105, 99, $self->{next_input_character});
5232     $self->{next_input_character} = 111;
5233     }
5234     } else {
5235     !!!parse-error;
5236     !!!back-next-input-character (109, 105, $self->{next_input_character});
5237     $self->{next_input_character} = 111;
5238     }
5239     } else {
5240     !!!parse-error;
5241     !!!back-next-input-character (109, $self->{next_input_character});
5242     $self->{next_input_character} = 111;
5243     }
5244     } elsif ($self->{next_input_character} == 112) { # p
5245     !!!next-input-character;
5246     if ($self->{next_input_character} == 108) { # l
5247     !!!next-input-character;
5248     if ($self->{next_input_character} == 117) { # u
5249     !!!next-input-character;
5250     if ($self->{next_input_character} == 115) { # s
5251     !!!next-input-character;
5252     {
5253     $r = {type => 'character', data => qq<\x{2295}>}; # oplus
5254     if ($self->{next_input_character} == 0x003B) { # ;
5255     !!!next-input-character;
5256     } else {
5257     !!!parse-error;
5258     ## reconsume
5259     }
5260     }
5261     } else {
5262     !!!parse-error;
5263     !!!back-next-input-character (112, 108, 117, $self->{next_input_character});
5264     $self->{next_input_character} = 111;
5265     }
5266     } else {
5267     !!!parse-error;
5268     !!!back-next-input-character (112, 108, $self->{next_input_character});
5269     $self->{next_input_character} = 111;
5270     }
5271     } else {
5272     !!!parse-error;
5273     !!!back-next-input-character (112, $self->{next_input_character});
5274     $self->{next_input_character} = 111;
5275     }
5276     } elsif ($self->{next_input_character} == 114) { # r
5277     !!!next-input-character;
5278     if ($self->{next_input_character} == 100) { # d
5279     !!!next-input-character;
5280     if ($self->{next_input_character} == 102) { # f
5281     !!!next-input-character;
5282     {
5283     $r = {type => 'character', data => qq<\x{00AA}>}; # ordf
5284     if ($self->{next_input_character} == 0x003B) { # ;
5285     !!!next-input-character;
5286     } else {
5287     !!!parse-error;
5288     ## reconsume
5289     }
5290     }
5291     } elsif ($self->{next_input_character} == 109) { # m
5292     !!!next-input-character;
5293     {
5294     $r = {type => 'character', data => qq<\x{00BA}>}; # ordm
5295     if ($self->{next_input_character} == 0x003B) { # ;
5296     !!!next-input-character;
5297     } else {
5298     !!!parse-error;
5299     ## reconsume
5300     }
5301     }
5302     } else {
5303     !!!parse-error;
5304     !!!back-next-input-character (114, 100, $self->{next_input_character});
5305     $self->{next_input_character} = 111;
5306     }
5307     } else {
5308     $r = {type => 'character', data => qq<\x{2228}>}; # or
5309     if ($self->{next_input_character} == 0x003B) { # ;
5310     !!!next-input-character;
5311     } else {
5312     !!!parse-error;
5313     ## reconsume
5314     }
5315     }
5316     } elsif ($self->{next_input_character} == 115) { # s
5317     !!!next-input-character;
5318     if ($self->{next_input_character} == 108) { # l
5319     !!!next-input-character;
5320     if ($self->{next_input_character} == 97) { # a
5321     !!!next-input-character;
5322     if ($self->{next_input_character} == 115) { # s
5323     !!!next-input-character;
5324     if ($self->{next_input_character} == 104) { # h
5325     !!!next-input-character;
5326     {
5327     $r = {type => 'character', data => qq<\x{00F8}>}; # oslash
5328     if ($self->{next_input_character} == 0x003B) { # ;
5329     !!!next-input-character;
5330     } else {
5331     !!!parse-error;
5332     ## reconsume
5333     }
5334     }
5335     } else {
5336     !!!parse-error;
5337     !!!back-next-input-character (115, 108, 97, 115, $self->{next_input_character});
5338     $self->{next_input_character} = 111;
5339     }
5340     } else {
5341     !!!parse-error;
5342     !!!back-next-input-character (115, 108, 97, $self->{next_input_character});
5343     $self->{next_input_character} = 111;
5344     }
5345     } else {
5346     !!!parse-error;
5347     !!!back-next-input-character (115, 108, $self->{next_input_character});
5348     $self->{next_input_character} = 111;
5349     }
5350     } else {
5351     !!!parse-error;
5352     !!!back-next-input-character (115, $self->{next_input_character});
5353     $self->{next_input_character} = 111;
5354     }
5355     } elsif ($self->{next_input_character} == 116) { # t
5356     !!!next-input-character;
5357     if ($self->{next_input_character} == 105) { # i
5358     !!!next-input-character;
5359     if ($self->{next_input_character} == 108) { # l
5360     !!!next-input-character;
5361     if ($self->{next_input_character} == 100) { # d
5362     !!!next-input-character;
5363     if ($self->{next_input_character} == 101) { # e
5364     !!!next-input-character;
5365     {
5366     $r = {type => 'character', data => qq<\x{00F5}>}; # otilde
5367     if ($self->{next_input_character} == 0x003B) { # ;
5368     !!!next-input-character;
5369     } else {
5370     !!!parse-error;
5371     ## reconsume
5372     }
5373     }
5374     } else {
5375     !!!parse-error;
5376     !!!back-next-input-character (116, 105, 108, 100, $self->{next_input_character});
5377     $self->{next_input_character} = 111;
5378     }
5379     } else {
5380     !!!parse-error;
5381     !!!back-next-input-character (116, 105, 108, $self->{next_input_character});
5382     $self->{next_input_character} = 111;
5383     }
5384     } elsif ($self->{next_input_character} == 109) { # m
5385     !!!next-input-character;
5386     if ($self->{next_input_character} == 101) { # e
5387     !!!next-input-character;
5388     if ($self->{next_input_character} == 115) { # s
5389     !!!next-input-character;
5390     {
5391     $r = {type => 'character', data => qq<\x{2297}>}; # otimes
5392     if ($self->{next_input_character} == 0x003B) { # ;
5393     !!!next-input-character;
5394     } else {
5395     !!!parse-error;
5396     ## reconsume
5397     }
5398     }
5399     } else {
5400     !!!parse-error;
5401     !!!back-next-input-character (116, 105, 109, 101, $self->{next_input_character});
5402     $self->{next_input_character} = 111;
5403     }
5404     } else {
5405     !!!parse-error;
5406     !!!back-next-input-character (116, 105, 109, $self->{next_input_character});
5407     $self->{next_input_character} = 111;
5408     }
5409     } else {
5410     !!!parse-error;
5411     !!!back-next-input-character (116, 105, $self->{next_input_character});
5412     $self->{next_input_character} = 111;
5413     }
5414     } else {
5415     !!!parse-error;
5416     !!!back-next-input-character (116, $self->{next_input_character});
5417     $self->{next_input_character} = 111;
5418     }
5419     } elsif ($self->{next_input_character} == 117) { # u
5420     !!!next-input-character;
5421     if ($self->{next_input_character} == 109) { # m
5422     !!!next-input-character;
5423     if ($self->{next_input_character} == 108) { # l
5424     !!!next-input-character;
5425     {
5426     $r = {type => 'character', data => qq<\x{00F6}>}; # ouml
5427     if ($self->{next_input_character} == 0x003B) { # ;
5428     !!!next-input-character;
5429     } else {
5430     !!!parse-error;
5431     ## reconsume
5432     }
5433     }
5434     } else {
5435     !!!parse-error;
5436     !!!back-next-input-character (117, 109, $self->{next_input_character});
5437     $self->{next_input_character} = 111;
5438     }
5439     } else {
5440     !!!parse-error;
5441     !!!back-next-input-character (117, $self->{next_input_character});
5442     $self->{next_input_character} = 111;
5443     }
5444     } else {
5445     !!!parse-error;
5446     !!!back-next-input-character ($self->{next_input_character});
5447     $self->{next_input_character} = 111;
5448     }
5449     } elsif ($self->{next_input_character} == 112) { # p
5450     !!!next-input-character;
5451     if ($self->{next_input_character} == 97) { # a
5452     !!!next-input-character;
5453     if ($self->{next_input_character} == 114) { # r
5454     !!!next-input-character;
5455     if ($self->{next_input_character} == 97) { # a
5456     !!!next-input-character;
5457     {
5458     $r = {type => 'character', data => qq<\x{00B6}>}; # para
5459     if ($self->{next_input_character} == 0x003B) { # ;
5460     !!!next-input-character;
5461     } else {
5462     !!!parse-error;
5463     ## reconsume
5464     }
5465     }
5466     } elsif ($self->{next_input_character} == 116) { # t
5467     !!!next-input-character;
5468     {
5469     $r = {type => 'character', data => qq<\x{2202}>}; # part
5470     if ($self->{next_input_character} == 0x003B) { # ;
5471     !!!next-input-character;
5472     } else {
5473     !!!parse-error;
5474     ## reconsume
5475     }
5476     }
5477     } else {
5478     !!!parse-error;
5479     !!!back-next-input-character (97, 114, $self->{next_input_character});
5480     $self->{next_input_character} = 112;
5481     }
5482     } else {
5483     !!!parse-error;
5484     !!!back-next-input-character (97, $self->{next_input_character});
5485     $self->{next_input_character} = 112;
5486     }
5487     } elsif ($self->{next_input_character} == 101) { # e
5488     !!!next-input-character;
5489     if ($self->{next_input_character} == 114) { # r
5490     !!!next-input-character;
5491     if ($self->{next_input_character} == 109) { # m
5492     !!!next-input-character;
5493     if ($self->{next_input_character} == 105) { # i
5494     !!!next-input-character;
5495     if ($self->{next_input_character} == 108) { # l
5496     !!!next-input-character;
5497     {
5498     $r = {type => 'character', data => qq<\x{2030}>}; # permil
5499     if ($self->{next_input_character} == 0x003B) { # ;
5500     !!!next-input-character;
5501     } else {
5502     !!!parse-error;
5503     ## reconsume
5504     }
5505     }
5506     } else {
5507     !!!parse-error;
5508     !!!back-next-input-character (101, 114, 109, 105, $self->{next_input_character});
5509     $self->{next_input_character} = 112;
5510     }
5511     } else {
5512     !!!parse-error;
5513     !!!back-next-input-character (101, 114, 109, $self->{next_input_character});
5514     $self->{next_input_character} = 112;
5515     }
5516     } elsif ($self->{next_input_character} == 112) { # p
5517     !!!next-input-character;
5518     {
5519     $r = {type => 'character', data => qq<\x{22A5}>}; # perp
5520     if ($self->{next_input_character} == 0x003B) { # ;
5521     !!!next-input-character;
5522     } else {
5523     !!!parse-error;
5524     ## reconsume
5525     }
5526     }
5527     } else {
5528     !!!parse-error;
5529     !!!back-next-input-character (101, 114, $self->{next_input_character});
5530     $self->{next_input_character} = 112;
5531     }
5532     } else {
5533     !!!parse-error;
5534     !!!back-next-input-character (101, $self->{next_input_character});
5535     $self->{next_input_character} = 112;
5536     }
5537     } elsif ($self->{next_input_character} == 104) { # h
5538     !!!next-input-character;
5539     if ($self->{next_input_character} == 105) { # i
5540     !!!next-input-character;
5541     {
5542     $r = {type => 'character', data => qq<\x{03C6}>}; # phi
5543     if ($self->{next_input_character} == 0x003B) { # ;
5544     !!!next-input-character;
5545     } else {
5546     !!!parse-error;
5547     ## reconsume
5548     }
5549     }
5550     } else {
5551     !!!parse-error;
5552     !!!back-next-input-character (104, $self->{next_input_character});
5553     $self->{next_input_character} = 112;
5554     }
5555     } elsif ($self->{next_input_character} == 105) { # i
5556     !!!next-input-character;
5557     if ($self->{next_input_character} == 118) { # v
5558     !!!next-input-character;
5559     {
5560     $r = {type => 'character', data => qq<\x{03D6}>}; # piv
5561     if ($self->{next_input_character} == 0x003B) { # ;
5562     !!!next-input-character;
5563     } else {
5564     !!!parse-error;
5565     ## reconsume
5566     }
5567     }
5568     } else {
5569     $r = {type => 'character', data => qq<\x{03C0}>}; # pi
5570     if ($self->{next_input_character} == 0x003B) { # ;
5571     !!!next-input-character;
5572     } else {
5573     !!!parse-error;
5574     ## reconsume
5575     }
5576     }
5577     } elsif ($self->{next_input_character} == 108) { # l
5578     !!!next-input-character;
5579     if ($self->{next_input_character} == 117) { # u
5580     !!!next-input-character;
5581     if ($self->{next_input_character} == 115) { # s
5582     !!!next-input-character;
5583     if ($self->{next_input_character} == 109) { # m
5584     !!!next-input-character;
5585     if ($self->{next_input_character} == 110) { # n
5586     !!!next-input-character;
5587     {
5588     $r = {type => 'character', data => qq<\x{00B1}>}; # plusmn
5589     if ($self->{next_input_character} == 0x003B) { # ;
5590     !!!next-input-character;
5591     } else {
5592     !!!parse-error;
5593     ## reconsume
5594     }
5595     }
5596     } else {
5597     !!!parse-error;
5598     !!!back-next-input-character (108, 117, 115, 109, $self->{next_input_character});
5599     $self->{next_input_character} = 112;
5600     }
5601     } else {
5602     !!!parse-error;
5603     !!!back-next-input-character (108, 117, 115, $self->{next_input_character});
5604     $self->{next_input_character} = 112;
5605     }
5606     } else {
5607     !!!parse-error;
5608     !!!back-next-input-character (108, 117, $self->{next_input_character});
5609     $self->{next_input_character} = 112;
5610     }
5611     } else {
5612     !!!parse-error;
5613     !!!back-next-input-character (108, $self->{next_input_character});
5614     $self->{next_input_character} = 112;
5615     }
5616     } elsif ($self->{next_input_character} == 111) { # o
5617     !!!next-input-character;
5618     if ($self->{next_input_character} == 117) { # u
5619     !!!next-input-character;
5620     if ($self->{next_input_character} == 110) { # n
5621     !!!next-input-character;
5622     if ($self->{next_input_character} == 100) { # d
5623     !!!next-input-character;
5624     {
5625     $r = {type => 'character', data => qq<\x{00A3}>}; # pound
5626     if ($self->{next_input_character} == 0x003B) { # ;
5627     !!!next-input-character;
5628     } else {
5629     !!!parse-error;
5630     ## reconsume
5631     }
5632     }
5633     } else {
5634     !!!parse-error;
5635     !!!back-next-input-character (111, 117, 110, $self->{next_input_character});
5636     $self->{next_input_character} = 112;
5637     }
5638     } else {
5639     !!!parse-error;
5640     !!!back-next-input-character (111, 117, $self->{next_input_character});
5641     $self->{next_input_character} = 112;
5642     }
5643     } else {
5644     !!!parse-error;
5645     !!!back-next-input-character (111, $self->{next_input_character});
5646     $self->{next_input_character} = 112;
5647     }
5648     } elsif ($self->{next_input_character} == 114) { # r
5649     !!!next-input-character;
5650     if ($self->{next_input_character} == 105) { # i
5651     !!!next-input-character;
5652     if ($self->{next_input_character} == 109) { # m
5653     !!!next-input-character;
5654     if ($self->{next_input_character} == 101) { # e
5655     !!!next-input-character;
5656     {
5657     $r = {type => 'character', data => qq<\x{2032}>}; # prime
5658     if ($self->{next_input_character} == 0x003B) { # ;
5659     !!!next-input-character;
5660     } else {
5661     !!!parse-error;
5662     ## reconsume
5663     }
5664     }
5665     } else {
5666     !!!parse-error;
5667     !!!back-next-input-character (114, 105, 109, $self->{next_input_character});
5668     $self->{next_input_character} = 112;
5669     }
5670     } else {
5671     !!!parse-error;
5672     !!!back-next-input-character (114, 105, $self->{next_input_character});
5673     $self->{next_input_character} = 112;
5674     }
5675     } elsif ($self->{next_input_character} == 111) { # o
5676     !!!next-input-character;
5677     if ($self->{next_input_character} == 100) { # d
5678     !!!next-input-character;
5679     {
5680     $r = {type => 'character', data => qq<\x{220F}>}; # prod
5681     if ($self->{next_input_character} == 0x003B) { # ;
5682     !!!next-input-character;
5683     } else {
5684     !!!parse-error;
5685     ## reconsume
5686     }
5687     }
5688     } elsif ($self->{next_input_character} == 112) { # p
5689     !!!next-input-character;
5690     {
5691     $r = {type => 'character', data => qq<\x{221D}>}; # prop
5692     if ($self->{next_input_character} == 0x003B) { # ;
5693     !!!next-input-character;
5694     } else {
5695     !!!parse-error;
5696     ## reconsume
5697     }
5698     }
5699     } else {
5700     !!!parse-error;
5701     !!!back-next-input-character (114, 111, $self->{next_input_character});
5702     $self->{next_input_character} = 112;
5703     }
5704     } else {
5705     !!!parse-error;
5706     !!!back-next-input-character (114, $self->{next_input_character});
5707     $self->{next_input_character} = 112;
5708     }
5709     } elsif ($self->{next_input_character} == 115) { # s
5710     !!!next-input-character;
5711     if ($self->{next_input_character} == 105) { # i
5712     !!!next-input-character;
5713     {
5714     $r = {type => 'character', data => qq<\x{03C8}>}; # psi
5715     if ($self->{next_input_character} == 0x003B) { # ;
5716     !!!next-input-character;
5717     } else {
5718     !!!parse-error;
5719     ## reconsume
5720     }
5721     }
5722     } else {
5723     !!!parse-error;
5724     !!!back-next-input-character (115, $self->{next_input_character});
5725     $self->{next_input_character} = 112;
5726     }
5727     } else {
5728     !!!parse-error;
5729     !!!back-next-input-character ($self->{next_input_character});
5730     $self->{next_input_character} = 112;
5731     }
5732     } elsif ($self->{next_input_character} == 113) { # q
5733     !!!next-input-character;
5734     if ($self->{next_input_character} == 117) { # u
5735     !!!next-input-character;
5736     if ($self->{next_input_character} == 111) { # o
5737     !!!next-input-character;
5738     if ($self->{next_input_character} == 116) { # t
5739     !!!next-input-character;
5740     {
5741     $r = {type => 'character', data => qq<\x{0022}>}; # quot
5742     if ($self->{next_input_character} == 0x003B) { # ;
5743     !!!next-input-character;
5744     } else {
5745     !!!parse-error;
5746     ## reconsume
5747     }
5748     }
5749     } else {
5750     !!!parse-error;
5751     !!!back-next-input-character (117, 111, $self->{next_input_character});
5752     $self->{next_input_character} = 113;
5753     }
5754     } else {
5755     !!!parse-error;
5756     !!!back-next-input-character (117, $self->{next_input_character});
5757     $self->{next_input_character} = 113;
5758     }
5759     } else {
5760     !!!parse-error;
5761     !!!back-next-input-character ($self->{next_input_character});
5762     $self->{next_input_character} = 113;
5763     }
5764     } elsif ($self->{next_input_character} == 81) { # Q
5765     !!!next-input-character;
5766     if ($self->{next_input_character} == 85) { # U
5767     !!!next-input-character;
5768     if ($self->{next_input_character} == 79) { # O
5769     !!!next-input-character;
5770     if ($self->{next_input_character} == 84) { # T
5771     !!!next-input-character;
5772     {
5773     $r = {type => 'character', data => qq<\x{0022}>}; # QUOT
5774     if ($self->{next_input_character} == 0x003B) { # ;
5775     !!!next-input-character;
5776     } else {
5777     !!!parse-error;
5778     ## reconsume
5779     }
5780     }
5781     } else {
5782     !!!parse-error;
5783     !!!back-next-input-character (85, 79, $self->{next_input_character});
5784     $self->{next_input_character} = 81;
5785     }
5786     } else {
5787     !!!parse-error;
5788     !!!back-next-input-character (85, $self->{next_input_character});
5789     $self->{next_input_character} = 81;
5790     }
5791     } else {
5792     !!!parse-error;
5793     !!!back-next-input-character ($self->{next_input_character});
5794     $self->{next_input_character} = 81;
5795     }
5796     } elsif ($self->{next_input_character} == 114) { # r
5797     !!!next-input-character;
5798     if ($self->{next_input_character} == 65) { # A
5799     !!!next-input-character;
5800     if ($self->{next_input_character} == 114) { # r
5801     !!!next-input-character;
5802     if ($self->{next_input_character} == 114) { # r
5803     !!!next-input-character;
5804     {
5805     $r = {type => 'character', data => qq<\x{21D2}>}; # rArr
5806     if ($self->{next_input_character} == 0x003B) { # ;
5807     !!!next-input-character;
5808     } else {
5809     !!!parse-error;
5810     ## reconsume
5811     }
5812     }
5813     } else {
5814     !!!parse-error;
5815     !!!back-next-input-character (65, 114, $self->{next_input_character});
5816     $self->{next_input_character} = 114;
5817     }
5818     } else {
5819     !!!parse-error;
5820     !!!back-next-input-character (65, $self->{next_input_character});
5821     $self->{next_input_character} = 114;
5822     }
5823     } elsif ($self->{next_input_character} == 97) { # a
5824     !!!next-input-character;
5825     if ($self->{next_input_character} == 100) { # d
5826     !!!next-input-character;
5827     if ($self->{next_input_character} == 105) { # i
5828     !!!next-input-character;
5829     if ($self->{next_input_character} == 99) { # c
5830     !!!next-input-character;
5831     {
5832     $r = {type => 'character', data => qq<\x{221A}>}; # radic
5833     if ($self->{next_input_character} == 0x003B) { # ;
5834     !!!next-input-character;
5835     } else {
5836     !!!parse-error;
5837     ## reconsume
5838     }
5839     }
5840     } else {
5841     !!!parse-error;
5842     !!!back-next-input-character (97, 100, 105, $self->{next_input_character});
5843     $self->{next_input_character} = 114;
5844     }
5845     } else {
5846     !!!parse-error;
5847     !!!back-next-input-character (97, 100, $self->{next_input_character});
5848     $self->{next_input_character} = 114;
5849     }
5850     } elsif ($self->{next_input_character} == 110) { # n
5851     !!!next-input-character;
5852     if ($self->{next_input_character} == 103) { # g
5853     !!!next-input-character;
5854     {
5855     $r = {type => 'character', data => qq<\x{232A}>}; # rang
5856     if ($self->{next_input_character} == 0x003B) { # ;
5857     !!!next-input-character;
5858     } else {
5859     !!!parse-error;
5860     ## reconsume
5861     }
5862     }
5863     } else {
5864     !!!parse-error;
5865     !!!back-next-input-character (97, 110, $self->{next_input_character});
5866     $self->{next_input_character} = 114;
5867     }
5868     } elsif ($self->{next_input_character} == 113) { # q
5869     !!!next-input-character;
5870     if ($self->{next_input_character} == 117) { # u
5871     !!!next-input-character;
5872     if ($self->{next_input_character} == 111) { # o
5873     !!!next-input-character;
5874     {
5875     $r = {type => 'character', data => qq<\x{00BB}>}; # raquo
5876     if ($self->{next_input_character} == 0x003B) { # ;
5877     !!!next-input-character;
5878     } else {
5879     !!!parse-error;
5880     ## reconsume
5881     }
5882     }
5883     } else {
5884     !!!parse-error;
5885     !!!back-next-input-character (97, 113, 117, $self->{next_input_character});
5886     $self->{next_input_character} = 114;
5887     }
5888     } else {
5889     !!!parse-error;
5890     !!!back-next-input-character (97, 113, $self->{next_input_character});
5891     $self->{next_input_character} = 114;
5892     }
5893     } elsif ($self->{next_input_character} == 114) { # r
5894     !!!next-input-character;
5895     if ($self->{next_input_character} == 114) { # r
5896     !!!next-input-character;
5897     {
5898     $r = {type => 'character', data => qq<\x{2192}>}; # rarr
5899     if ($self->{next_input_character} == 0x003B) { # ;
5900     !!!next-input-character;
5901     } else {
5902     !!!parse-error;
5903     ## reconsume
5904     }
5905     }
5906     } else {
5907     !!!parse-error;
5908     !!!back-next-input-character (97, 114, $self->{next_input_character});
5909     $self->{next_input_character} = 114;
5910     }
5911     } else {
5912     !!!parse-error;
5913     !!!back-next-input-character (97, $self->{next_input_character});
5914     $self->{next_input_character} = 114;
5915     }
5916     } elsif ($self->{next_input_character} == 99) { # c
5917     !!!next-input-character;
5918     if ($self->{next_input_character} == 101) { # e
5919     !!!next-input-character;
5920     if ($self->{next_input_character} == 105) { # i
5921     !!!next-input-character;
5922     if ($self->{next_input_character} == 108) { # l
5923     !!!next-input-character;
5924     {
5925     $r = {type => 'character', data => qq<\x{2309}>}; # rceil
5926     if ($self->{next_input_character} == 0x003B) { # ;
5927     !!!next-input-character;
5928     } else {
5929     !!!parse-error;
5930     ## reconsume
5931     }
5932     }
5933     } else {
5934     !!!parse-error;
5935     !!!back-next-input-character (99, 101, 105, $self->{next_input_character});
5936     $self->{next_input_character} = 114;
5937     }
5938     } else {
5939     !!!parse-error;
5940     !!!back-next-input-character (99, 101, $self->{next_input_character});
5941     $self->{next_input_character} = 114;
5942     }
5943     } else {
5944     !!!parse-error;
5945     !!!back-next-input-character (99, $self->{next_input_character});
5946     $self->{next_input_character} = 114;
5947     }
5948     } elsif ($self->{next_input_character} == 100) { # d
5949     !!!next-input-character;
5950     if ($self->{next_input_character} == 113) { # q
5951     !!!next-input-character;
5952     if ($self->{next_input_character} == 117) { # u
5953     !!!next-input-character;
5954     if ($self->{next_input_character} == 111) { # o
5955     !!!next-input-character;
5956     {
5957     $r = {type => 'character', data => qq<\x{201D}>}; # rdquo
5958     if ($self->{next_input_character} == 0x003B) { # ;
5959     !!!next-input-character;
5960     } else {
5961     !!!parse-error;
5962     ## reconsume
5963     }
5964     }
5965     } else {
5966     !!!parse-error;
5967     !!!back-next-input-character (100, 113, 117, $self->{next_input_character});
5968     $self->{next_input_character} = 114;
5969     }
5970     } else {
5971     !!!parse-error;
5972     !!!back-next-input-character (100, 113, $self->{next_input_character});
5973     $self->{next_input_character} = 114;
5974     }
5975     } else {
5976     !!!parse-error;
5977     !!!back-next-input-character (100, $self->{next_input_character});
5978     $self->{next_input_character} = 114;
5979     }
5980     } elsif ($self->{next_input_character} == 101) { # e
5981     !!!next-input-character;
5982     if ($self->{next_input_character} == 97) { # a
5983     !!!next-input-character;
5984     if ($self->{next_input_character} == 108) { # l
5985     !!!next-input-character;
5986     {
5987     $r = {type => 'character', data => qq<\x{211C}>}; # real
5988     if ($self->{next_input_character} == 0x003B) { # ;
5989     !!!next-input-character;
5990     } else {
5991     !!!parse-error;
5992     ## reconsume
5993     }
5994     }
5995     } else {
5996     !!!parse-error;
5997     !!!back-next-input-character (101, 97, $self->{next_input_character});
5998     $self->{next_input_character} = 114;
5999     }
6000     } elsif ($self->{next_input_character} == 103) { # g
6001     !!!next-input-character;
6002     {
6003     $r = {type => 'character', data => qq<\x{00AE}>}; # reg
6004     if ($self->{next_input_character} == 0x003B) { # ;
6005     !!!next-input-character;
6006     } else {
6007     !!!parse-error;
6008     ## reconsume
6009     }
6010     }
6011     } else {
6012     !!!parse-error;
6013     !!!back-next-input-character (101, $self->{next_input_character});
6014     $self->{next_input_character} = 114;
6015     }
6016     } elsif ($self->{next_input_character} == 102) { # f
6017     !!!next-input-character;
6018     if ($self->{next_input_character} == 108) { # l
6019     !!!next-input-character;
6020     if ($self->{next_input_character} == 111) { # o
6021     !!!next-input-character;
6022     if ($self->{next_input_character} == 111) { # o
6023     !!!next-input-character;
6024     if ($self->{next_input_character} == 114) { # r
6025     !!!next-input-character;
6026     {
6027     $r = {type => 'character', data => qq<\x{230B}>}; # rfloor
6028     if ($self->{next_input_character} == 0x003B) { # ;
6029     !!!next-input-character;
6030     } else {
6031     !!!parse-error;
6032     ## reconsume
6033     }
6034     }
6035     } else {
6036     !!!parse-error;
6037     !!!back-next-input-character (102, 108, 111, 111, $self->{next_input_character});
6038     $self->{next_input_character} = 114;
6039     }
6040     } else {
6041     !!!parse-error;
6042     !!!back-next-input-character (102, 108, 111, $self->{next_input_character});
6043     $self->{next_input_character} = 114;
6044     }
6045     } else {
6046     !!!parse-error;
6047     !!!back-next-input-character (102, 108, $self->{next_input_character});
6048     $self->{next_input_character} = 114;
6049     }
6050     } else {
6051     !!!parse-error;
6052     !!!back-next-input-character (102, $self->{next_input_character});
6053     $self->{next_input_character} = 114;
6054     }
6055     } elsif ($self->{next_input_character} == 104) { # h
6056     !!!next-input-character;
6057     if ($self->{next_input_character} == 111) { # o
6058     !!!next-input-character;
6059     {
6060     $r = {type => 'character', data => qq<\x{03C1}>}; # rho
6061     if ($self->{next_input_character} == 0x003B) { # ;
6062     !!!next-input-character;
6063     } else {
6064     !!!parse-error;
6065     ## reconsume
6066     }
6067     }
6068     } else {
6069     !!!parse-error;
6070     !!!back-next-input-character (104, $self->{next_input_character});
6071     $self->{next_input_character} = 114;
6072     }
6073     } elsif ($self->{next_input_character} == 108) { # l
6074     !!!next-input-character;
6075     if ($self->{next_input_character} == 109) { # m
6076     !!!next-input-character;
6077     {
6078     $r = {type => 'character', data => qq<\x{200F}>}; # rlm
6079     if ($self->{next_input_character} == 0x003B) { # ;
6080     !!!next-input-character;
6081     } else {
6082     !!!parse-error;
6083     ## reconsume
6084     }
6085     }
6086     } else {
6087     !!!parse-error;
6088     !!!back-next-input-character (108, $self->{next_input_character});
6089     $self->{next_input_character} = 114;
6090     }
6091     } elsif ($self->{next_input_character} == 115) { # s
6092     !!!next-input-character;
6093     if ($self->{next_input_character} == 97) { # a
6094     !!!next-input-character;
6095     if ($self->{next_input_character} == 113) { # q
6096     !!!next-input-character;
6097     if ($self->{next_input_character} == 117) { # u
6098     !!!next-input-character;
6099     if ($self->{next_input_character} == 111) { # o
6100     !!!next-input-character;
6101     {
6102     $r = {type => 'character', data => qq<\x{203A}>}; # rsaquo
6103     if ($self->{next_input_character} == 0x003B) { # ;
6104     !!!next-input-character;
6105     } else {
6106     !!!parse-error;
6107     ## reconsume
6108     }
6109     }
6110     } else {
6111     !!!parse-error;
6112     !!!back-next-input-character (115, 97, 113, 117, $self->{next_input_character});
6113     $self->{next_input_character} = 114;
6114     }
6115     } else {
6116     !!!parse-error;
6117     !!!back-next-input-character (115, 97, 113, $self->{next_input_character});
6118     $self->{next_input_character} = 114;
6119     }
6120     } else {
6121     !!!parse-error;
6122     !!!back-next-input-character (115, 97, $self->{next_input_character});
6123     $self->{next_input_character} = 114;
6124     }
6125     } elsif ($self->{next_input_character} == 113) { # q
6126     !!!next-input-character;
6127     if ($self->{next_input_character} == 117) { # u
6128     !!!next-input-character;
6129     if ($self->{next_input_character} == 111) { # o
6130     !!!next-input-character;
6131     {
6132     $r = {type => 'character', data => qq<\x{2019}>}; # rsquo
6133     if ($self->{next_input_character} == 0x003B) { # ;
6134     !!!next-input-character;
6135     } else {
6136     !!!parse-error;
6137     ## reconsume
6138     }
6139     }
6140     } else {
6141     !!!parse-error;
6142     !!!back-next-input-character (115, 113, 117, $self->{next_input_character});
6143     $self->{next_input_character} = 114;
6144     }
6145     } else {
6146     !!!parse-error;
6147     !!!back-next-input-character (115, 113, $self->{next_input_character});
6148     $self->{next_input_character} = 114;
6149     }
6150     } else {
6151     !!!parse-error;
6152     !!!back-next-input-character (115, $self->{next_input_character});
6153     $self->{next_input_character} = 114;
6154     }
6155     } else {
6156     !!!parse-error;
6157     !!!back-next-input-character ($self->{next_input_character});
6158     $self->{next_input_character} = 114;
6159     }
6160     } elsif ($self->{next_input_character} == 115) { # s
6161     !!!next-input-character;
6162     if ($self->{next_input_character} == 98) { # b
6163     !!!next-input-character;
6164     if ($self->{next_input_character} == 113) { # q
6165     !!!next-input-character;
6166     if ($self->{next_input_character} == 117) { # u
6167     !!!next-input-character;
6168     if ($self->{next_input_character} == 111) { # o
6169     !!!next-input-character;
6170     {
6171     $r = {type => 'character', data => qq<\x{201A}>}; # sbquo
6172     if ($self->{next_input_character} == 0x003B) { # ;
6173     !!!next-input-character;
6174     } else {
6175     !!!parse-error;
6176     ## reconsume
6177     }
6178     }
6179     } else {
6180     !!!parse-error;
6181     !!!back-next-input-character (98, 113, 117, $self->{next_input_character});
6182     $self->{next_input_character} = 115;
6183     }
6184     } else {
6185     !!!parse-error;
6186     !!!back-next-input-character (98, 113, $self->{next_input_character});
6187     $self->{next_input_character} = 115;
6188     }
6189     } else {
6190     !!!parse-error;
6191     !!!back-next-input-character (98, $self->{next_input_character});
6192     $self->{next_input_character} = 115;
6193     }
6194     } elsif ($self->{next_input_character} == 99) { # c
6195     !!!next-input-character;
6196     if ($self->{next_input_character} == 97) { # a
6197     !!!next-input-character;
6198     if ($self->{next_input_character} == 114) { # r
6199     !!!next-input-character;
6200     if ($self->{next_input_character} == 111) { # o
6201     !!!next-input-character;
6202     if ($self->{next_input_character} == 110) { # n
6203     !!!next-input-character;
6204     {
6205     $r = {type => 'character', data => qq<\x{0161}>}; # scaron
6206     if ($self->{next_input_character} == 0x003B) { # ;
6207     !!!next-input-character;
6208     } else {
6209     !!!parse-error;
6210     ## reconsume
6211     }
6212     }
6213     } else {
6214     !!!parse-error;
6215     !!!back-next-input-character (99, 97, 114, 111, $self->{next_input_character});
6216     $self->{next_input_character} = 115;
6217     }
6218     } else {
6219     !!!parse-error;
6220     !!!back-next-input-character (99, 97, 114, $self->{next_input_character});
6221     $self->{next_input_character} = 115;
6222     }
6223     } else {
6224     !!!parse-error;
6225     !!!back-next-input-character (99, 97, $self->{next_input_character});
6226     $self->{next_input_character} = 115;
6227     }
6228     } else {
6229     !!!parse-error;
6230     !!!back-next-input-character (99, $self->{next_input_character});
6231     $self->{next_input_character} = 115;
6232     }
6233     } elsif ($self->{next_input_character} == 100) { # d
6234     !!!next-input-character;
6235     if ($self->{next_input_character} == 111) { # o
6236     !!!next-input-character;
6237     if ($self->{next_input_character} == 116) { # t
6238     !!!next-input-character;
6239     {
6240     $r = {type => 'character', data => qq<\x{22C5}>}; # sdot
6241     if ($self->{next_input_character} == 0x003B) { # ;
6242     !!!next-input-character;
6243     } else {
6244     !!!parse-error;
6245     ## reconsume
6246     }
6247     }
6248     } else {
6249     !!!parse-error;
6250     !!!back-next-input-character (100, 111, $self->{next_input_character});
6251     $self->{next_input_character} = 115;
6252     }
6253     } else {
6254     !!!parse-error;
6255     !!!back-next-input-character (100, $self->{next_input_character});
6256     $self->{next_input_character} = 115;
6257     }
6258     } elsif ($self->{next_input_character} == 101) { # e
6259     !!!next-input-character;
6260     if ($self->{next_input_character} == 99) { # c
6261     !!!next-input-character;
6262     if ($self->{next_input_character} == 116) { # t
6263     !!!next-input-character;
6264     {
6265     $r = {type => 'character', data => qq<\x{00A7}>}; # sect
6266     if ($self->{next_input_character} == 0x003B) { # ;
6267     !!!next-input-character;
6268     } else {
6269     !!!parse-error;
6270     ## reconsume
6271     }
6272     }
6273     } else {
6274     !!!parse-error;
6275     !!!back-next-input-character (101, 99, $self->{next_input_character});
6276     $self->{next_input_character} = 115;
6277     }
6278     } else {
6279     !!!parse-error;
6280     !!!back-next-input-character (101, $self->{next_input_character});
6281     $self->{next_input_character} = 115;
6282     }
6283     } elsif ($self->{next_input_character} == 104) { # h
6284     !!!next-input-character;
6285     if ($self->{next_input_character} == 121) { # y
6286     !!!next-input-character;
6287     {
6288     $r = {type => 'character', data => qq<\x{00AD}>}; # shy
6289     if ($self->{next_input_character} == 0x003B) { # ;
6290     !!!next-input-character;
6291     } else {
6292     !!!parse-error;
6293     ## reconsume
6294     }
6295     }
6296     } else {
6297     !!!parse-error;
6298     !!!back-next-input-character (104, $self->{next_input_character});
6299     $self->{next_input_character} = 115;
6300     }
6301     } elsif ($self->{next_input_character} == 105) { # i
6302     !!!next-input-character;
6303     if ($self->{next_input_character} == 103) { # g
6304     !!!next-input-character;
6305     if ($self->{next_input_character} == 109) { # m
6306     !!!next-input-character;
6307     if ($self->{next_input_character} == 97) { # a
6308     !!!next-input-character;
6309     if ($self->{next_input_character} == 102) { # f
6310     !!!next-input-character;
6311     {
6312     $r = {type => 'character', data => qq<\x{03C2}>}; # sigmaf
6313     if ($self->{next_input_character} == 0x003B) { # ;
6314     !!!next-input-character;
6315     } else {
6316     !!!parse-error;
6317     ## reconsume
6318     }
6319     }
6320     } else {
6321     $r = {type => 'character', data => qq<\x{03C3}>}; # sigma
6322     if ($self->{next_input_character} == 0x003B) { # ;
6323     !!!next-input-character;
6324     } else {
6325     !!!parse-error;
6326     ## reconsume
6327     }
6328     }
6329     } else {
6330     !!!parse-error;
6331     !!!back-next-input-character (105, 103, 109, $self->{next_input_character});
6332     $self->{next_input_character} = 115;
6333     }
6334     } else {
6335     !!!parse-error;
6336     !!!back-next-input-character (105, 103, $self->{next_input_character});
6337     $self->{next_input_character} = 115;
6338     }
6339     } elsif ($self->{next_input_character} == 109) { # m
6340     !!!next-input-character;
6341     {
6342     $r = {type => 'character', data => qq<\x{223C}>}; # sim
6343     if ($self->{next_input_character} == 0x003B) { # ;
6344     !!!next-input-character;
6345     } else {
6346     !!!parse-error;
6347     ## reconsume
6348     }
6349     }
6350     } else {
6351     !!!parse-error;
6352     !!!back-next-input-character (105, $self->{next_input_character});
6353     $self->{next_input_character} = 115;
6354     }
6355     } elsif ($self->{next_input_character} == 112) { # p
6356     !!!next-input-character;
6357     if ($self->{next_input_character} == 97) { # a
6358     !!!next-input-character;
6359     if ($self->{next_input_character} == 100) { # d
6360     !!!next-input-character;
6361     if ($self->{next_input_character} == 101) { # e
6362     !!!next-input-character;
6363     if ($self->{next_input_character} == 115) { # s
6364     !!!next-input-character;
6365     {
6366     $r = {type => 'character', data => qq<\x{2660}>}; # spades
6367     if ($self->{next_input_character} == 0x003B) { # ;
6368     !!!next-input-character;
6369     } else {
6370     !!!parse-error;
6371     ## reconsume
6372     }
6373     }
6374     } else {
6375     !!!parse-error;
6376     !!!back-next-input-character (112, 97, 100, 101, $self->{next_input_character});
6377     $self->{next_input_character} = 115;
6378     }
6379     } else {
6380     !!!parse-error;
6381     !!!back-next-input-character (112, 97, 100, $self->{next_input_character});
6382     $self->{next_input_character} = 115;
6383     }
6384     } else {
6385     !!!parse-error;
6386     !!!back-next-input-character (112, 97, $self->{next_input_character});
6387     $self->{next_input_character} = 115;
6388     }
6389     } else {
6390     !!!parse-error;
6391     !!!back-next-input-character (112, $self->{next_input_character});
6392     $self->{next_input_character} = 115;
6393     }
6394     } elsif ($self->{next_input_character} == 117) { # u
6395     !!!next-input-character;
6396     if ($self->{next_input_character} == 98) { # b
6397     !!!next-input-character;
6398     if ($self->{next_input_character} == 101) { # e
6399     !!!next-input-character;
6400     {
6401     $r = {type => 'character', data => qq<\x{2286}>}; # sube
6402     if ($self->{next_input_character} == 0x003B) { # ;
6403     !!!next-input-character;
6404     } else {
6405     !!!parse-error;
6406     ## reconsume
6407     }
6408     }
6409     } else {
6410     $r = {type => 'character', data => qq<\x{2282}>}; # sub
6411     if ($self->{next_input_character} == 0x003B) { # ;
6412     !!!next-input-character;
6413     } else {
6414     !!!parse-error;
6415     ## reconsume
6416     }
6417     }
6418     } elsif ($self->{next_input_character} == 109) { # m
6419     !!!next-input-character;
6420     {
6421     $r = {type => 'character', data => qq<\x{2211}>}; # sum
6422     if ($self->{next_input_character} == 0x003B) { # ;
6423     !!!next-input-character;
6424     } else {
6425     !!!parse-error;
6426     ## reconsume
6427     }
6428     }
6429     } elsif ($self->{next_input_character} == 112) { # p
6430     !!!next-input-character;
6431     if ($self->{next_input_character} == 49) { # 1
6432     !!!next-input-character;
6433     {
6434     $r = {type => 'character', data => qq<\x{00B9}>}; # sup1
6435     if ($self->{next_input_character} == 0x003B) { # ;
6436     !!!next-input-character;
6437     } else {
6438     !!!parse-error;
6439     ## reconsume
6440     }
6441     }
6442     } elsif ($self->{next_input_character} == 50) { # 2
6443     !!!next-input-character;
6444     {
6445     $r = {type => 'character', data => qq<\x{00B2}>}; # sup2
6446     if ($self->{next_input_character} == 0x003B) { # ;
6447     !!!next-input-character;
6448     } else {
6449     !!!parse-error;
6450     ## reconsume
6451     }
6452     }
6453     } elsif ($self->{next_input_character} == 51) { # 3
6454     !!!next-input-character;
6455     {
6456     $r = {type => 'character', data => qq<\x{00B3}>}; # sup3
6457     if ($self->{next_input_character} == 0x003B) { # ;
6458     !!!next-input-character;
6459     } else {
6460     !!!parse-error;
6461     ## reconsume
6462     }
6463     }
6464     } elsif ($self->{next_input_character} == 101) { # e
6465     !!!next-input-character;
6466     {
6467     $r = {type => 'character', data => qq<\x{2287}>}; # supe
6468     if ($self->{next_input_character} == 0x003B) { # ;
6469     !!!next-input-character;
6470     } else {
6471     !!!parse-error;
6472     ## reconsume
6473     }
6474     }
6475     } else {
6476     $r = {type => 'character', data => qq<\x{2283}>}; # sup
6477     if ($self->{next_input_character} == 0x003B) { # ;
6478     !!!next-input-character;
6479     } else {
6480     !!!parse-error;
6481     ## reconsume
6482     }
6483     }
6484     } else {
6485     !!!parse-error;
6486     !!!back-next-input-character (117, $self->{next_input_character});
6487     $self->{next_input_character} = 115;
6488     }
6489     } elsif ($self->{next_input_character} == 122) { # z
6490     !!!next-input-character;
6491     if ($self->{next_input_character} == 108) { # l
6492     !!!next-input-character;
6493     if ($self->{next_input_character} == 105) { # i
6494     !!!next-input-character;
6495     if ($self->{next_input_character} == 103) { # g
6496     !!!next-input-character;
6497     {
6498     $r = {type => 'character', data => qq<\x{00DF}>}; # szlig
6499     if ($self->{next_input_character} == 0x003B) { # ;
6500     !!!next-input-character;
6501     } else {
6502     !!!parse-error;
6503     ## reconsume
6504     }
6505     }
6506     } else {
6507     !!!parse-error;
6508     !!!back-next-input-character (122, 108, 105, $self->{next_input_character});
6509     $self->{next_input_character} = 115;
6510     }
6511     } else {
6512     !!!parse-error;
6513     !!!back-next-input-character (122, 108, $self->{next_input_character});
6514     $self->{next_input_character} = 115;
6515     }
6516     } else {
6517     !!!parse-error;
6518     !!!back-next-input-character (122, $self->{next_input_character});
6519     $self->{next_input_character} = 115;
6520     }
6521     } else {
6522     !!!parse-error;
6523     !!!back-next-input-character ($self->{next_input_character});
6524     $self->{next_input_character} = 115;
6525     }
6526     } elsif ($self->{next_input_character} == 116) { # t
6527     !!!next-input-character;
6528     if ($self->{next_input_character} == 97) { # a
6529     !!!next-input-character;
6530     if ($self->{next_input_character} == 117) { # u
6531     !!!next-input-character;
6532     {
6533     $r = {type => 'character', data => qq<\x{03C4}>}; # tau
6534     if ($self->{next_input_character} == 0x003B) { # ;
6535     !!!next-input-character;
6536     } else {
6537     !!!parse-error;
6538     ## reconsume
6539     }
6540     }
6541     } else {
6542     !!!parse-error;
6543     !!!back-next-input-character (97, $self->{next_input_character});
6544     $self->{next_input_character} = 116;
6545     }
6546     } elsif ($self->{next_input_character} == 104) { # h
6547     !!!next-input-character;
6548     if ($self->{next_input_character} == 101) { # e
6549     !!!next-input-character;
6550     if ($self->{next_input_character} == 114) { # r
6551     !!!next-input-character;
6552     if ($self->{next_input_character} == 101) { # e
6553     !!!next-input-character;
6554     if ($self->{next_input_character} == 52) { # 4
6555     !!!next-input-character;
6556     {
6557     $r = {type => 'character', data => qq<\x{2234}>}; # there4
6558     if ($self->{next_input_character} == 0x003B) { # ;
6559     !!!next-input-character;
6560     } else {
6561     !!!parse-error;
6562     ## reconsume
6563     }
6564     }
6565     } else {
6566     !!!parse-error;
6567     !!!back-next-input-character (104, 101, 114, 101, $self->{next_input_character});
6568     $self->{next_input_character} = 116;
6569     }
6570     } else {
6571     !!!parse-error;
6572     !!!back-next-input-character (104, 101, 114, $self->{next_input_character});
6573     $self->{next_input_character} = 116;
6574     }
6575     } elsif ($self->{next_input_character} == 116) { # t
6576     !!!next-input-character;
6577     if ($self->{next_input_character} == 97) { # a
6578     !!!next-input-character;
6579     if ($self->{next_input_character} == 115) { # s
6580     !!!next-input-character;
6581     if ($self->{next_input_character} == 121) { # y
6582     !!!next-input-character;
6583     if ($self->{next_input_character} == 109) { # m
6584     !!!next-input-character;
6585     {
6586     $r = {type => 'character', data => qq<\x{03D1}>}; # thetasym
6587     if ($self->{next_input_character} == 0x003B) { # ;
6588     !!!next-input-character;
6589     } else {
6590     !!!parse-error;
6591     ## reconsume
6592     }
6593     }
6594     } else {
6595     !!!parse-error;
6596     !!!back-next-input-character (104, 101, 116, 97, 115, 121, $self->{next_input_character});
6597     $self->{next_input_character} = 116;
6598     }
6599     } else {
6600     !!!parse-error;
6601     !!!back-next-input-character (104, 101, 116, 97, 115, $self->{next_input_character});
6602     $self->{next_input_character} = 116;
6603     }
6604     } else {
6605     $r = {type => 'character', data => qq<\x{03B8}>}; # theta
6606     if ($self->{next_input_character} == 0x003B) { # ;
6607     !!!next-input-character;
6608     } else {
6609     !!!parse-error;
6610     ## reconsume
6611     }
6612     }
6613     } else {
6614     !!!parse-error;
6615     !!!back-next-input-character (104, 101, 116, $self->{next_input_character});
6616     $self->{next_input_character} = 116;
6617     }
6618     } else {
6619     !!!parse-error;
6620     !!!back-next-input-character (104, 101, $self->{next_input_character});
6621     $self->{next_input_character} = 116;
6622     }
6623     } elsif ($self->{next_input_character} == 105) { # i
6624     !!!next-input-character;
6625     if ($self->{next_input_character} == 110) { # n
6626     !!!next-input-character;
6627     if ($self->{next_input_character} == 115) { # s
6628     !!!next-input-character;
6629     if ($self->{next_input_character} == 112) { # p
6630     !!!next-input-character;
6631     {
6632     $r = {type => 'character', data => qq<\x{2009}>}; # thinsp
6633     if ($self->{next_input_character} == 0x003B) { # ;
6634     !!!next-input-character;
6635     } else {
6636     !!!parse-error;
6637     ## reconsume
6638     }
6639     }
6640     } else {
6641     !!!parse-error;
6642     !!!back-next-input-character (104, 105, 110, 115, $self->{next_input_character});
6643     $self->{next_input_character} = 116;
6644     }
6645     } else {
6646     !!!parse-error;
6647     !!!back-next-input-character (104, 105, 110, $self->{next_input_character});
6648     $self->{next_input_character} = 116;
6649     }
6650     } else {
6651     !!!parse-error;
6652     !!!back-next-input-character (104, 105, $self->{next_input_character});
6653     $self->{next_input_character} = 116;
6654     }
6655     } elsif ($self->{next_input_character} == 111) { # o
6656     !!!next-input-character;
6657     if ($self->{next_input_character} == 114) { # r
6658     !!!next-input-character;
6659     if ($self->{next_input_character} == 110) { # n
6660     !!!next-input-character;
6661     {
6662     $r = {type => 'character', data => qq<\x{00FE}>}; # thorn
6663     if ($self->{next_input_character} == 0x003B) { # ;
6664     !!!next-input-character;
6665     } else {
6666     !!!parse-error;
6667     ## reconsume
6668     }
6669     }
6670     } else {
6671     !!!parse-error;
6672     !!!back-next-input-character (104, 111, 114, $self->{next_input_character});
6673     $self->{next_input_character} = 116;
6674     }
6675     } else {
6676     !!!parse-error;
6677     !!!back-next-input-character (104, 111, $self->{next_input_character});
6678     $self->{next_input_character} = 116;
6679     }
6680     } else {
6681     !!!parse-error;
6682     !!!back-next-input-character (104, $self->{next_input_character});
6683     $self->{next_input_character} = 116;
6684     }
6685     } elsif ($self->{next_input_character} == 105) { # i
6686     !!!next-input-character;
6687     if ($self->{next_input_character} == 108) { # l
6688     !!!next-input-character;
6689     if ($self->{next_input_character} == 100) { # d
6690     !!!next-input-character;
6691     if ($self->{next_input_character} == 101) { # e
6692     !!!next-input-character;
6693     {
6694     $r = {type => 'character', data => qq<\x{02DC}>}; # tilde
6695     if ($self->{next_input_character} == 0x003B) { # ;
6696     !!!next-input-character;
6697     } else {
6698     !!!parse-error;
6699     ## reconsume
6700     }
6701     }
6702     } else {
6703     !!!parse-error;
6704     !!!back-next-input-character (105, 108, 100, $self->{next_input_character});
6705     $self->{next_input_character} = 116;
6706     }
6707     } else {
6708     !!!parse-error;
6709     !!!back-next-input-character (105, 108, $self->{next_input_character});
6710     $self->{next_input_character} = 116;
6711     }
6712     } elsif ($self->{next_input_character} == 109) { # m
6713     !!!next-input-character;
6714     if ($self->{next_input_character} == 101) { # e
6715     !!!next-input-character;
6716     if ($self->{next_input_character} == 115) { # s
6717     !!!next-input-character;
6718     {
6719     $r = {type => 'character', data => qq<\x{00D7}>}; # times
6720     if ($self->{next_input_character} == 0x003B) { # ;
6721     !!!next-input-character;
6722     } else {
6723     !!!parse-error;
6724     ## reconsume
6725     }
6726     }
6727     } else {
6728     !!!parse-error;
6729     !!!back-next-input-character (105, 109, 101, $self->{next_input_character});
6730     $self->{next_input_character} = 116;
6731     }
6732     } else {
6733     !!!parse-error;
6734     !!!back-next-input-character (105, 109, $self->{next_input_character});
6735     $self->{next_input_character} = 116;
6736     }
6737     } else {
6738     !!!parse-error;
6739     !!!back-next-input-character (105, $self->{next_input_character});
6740     $self->{next_input_character} = 116;
6741     }
6742     } elsif ($self->{next_input_character} == 114) { # r
6743     !!!next-input-character;
6744     if ($self->{next_input_character} == 97) { # a
6745     !!!next-input-character;
6746     if ($self->{next_input_character} == 100) { # d
6747     !!!next-input-character;
6748     if ($self->{next_input_character} == 101) { # e
6749     !!!next-input-character;
6750     {
6751     $r = {type => 'character', data => qq<\x{2122}>}; # trade
6752     if ($self->{next_input_character} == 0x003B) { # ;
6753     !!!next-input-character;
6754     } else {
6755     !!!parse-error;
6756     ## reconsume
6757     }
6758     }
6759     } else {
6760     !!!parse-error;
6761     !!!back-next-input-character (114, 97, 100, $self->{next_input_character});
6762     $self->{next_input_character} = 116;
6763     }
6764     } else {
6765     !!!parse-error;
6766     !!!back-next-input-character (114, 97, $self->{next_input_character});
6767     $self->{next_input_character} = 116;
6768     }
6769     } else {
6770     !!!parse-error;
6771     !!!back-next-input-character (114, $self->{next_input_character});
6772     $self->{next_input_character} = 116;
6773     }
6774     } else {
6775     !!!parse-error;
6776     !!!back-next-input-character ($self->{next_input_character});
6777     $self->{next_input_character} = 116;
6778     }
6779     } elsif ($self->{next_input_character} == 117) { # u
6780     !!!next-input-character;
6781     if ($self->{next_input_character} == 65) { # A
6782     !!!next-input-character;
6783     if ($self->{next_input_character} == 114) { # r
6784     !!!next-input-character;
6785     if ($self->{next_input_character} == 114) { # r
6786     !!!next-input-character;
6787     {
6788     $r = {type => 'character', data => qq<\x{21D1}>}; # uArr
6789     if ($self->{next_input_character} == 0x003B) { # ;
6790     !!!next-input-character;
6791     } else {
6792     !!!parse-error;
6793     ## reconsume
6794     }
6795     }
6796     } else {
6797     !!!parse-error;
6798     !!!back-next-input-character (65, 114, $self->{next_input_character});
6799     $self->{next_input_character} = 117;
6800     }
6801     } else {
6802     !!!parse-error;
6803     !!!back-next-input-character (65, $self->{next_input_character});
6804     $self->{next_input_character} = 117;
6805     }
6806     } elsif ($self->{next_input_character} == 97) { # a
6807     !!!next-input-character;
6808     if ($self->{next_input_character} == 99) { # c
6809     !!!next-input-character;
6810     if ($self->{next_input_character} == 117) { # u
6811     !!!next-input-character;
6812     if ($self->{next_input_character} == 116) { # t
6813     !!!next-input-character;
6814     if ($self->{next_input_character} == 101) { # e
6815     !!!next-input-character;
6816     {
6817     $r = {type => 'character', data => qq<\x{00FA}>}; # uacute
6818     if ($self->{next_input_character} == 0x003B) { # ;
6819     !!!next-input-character;
6820     } else {
6821     !!!parse-error;
6822     ## reconsume
6823     }
6824     }
6825     } else {
6826     !!!parse-error;
6827     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
6828     $self->{next_input_character} = 117;
6829     }
6830     } else {
6831     !!!parse-error;
6832     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
6833     $self->{next_input_character} = 117;
6834     }
6835     } else {
6836     !!!parse-error;
6837     !!!back-next-input-character (97, 99, $self->{next_input_character});
6838     $self->{next_input_character} = 117;
6839     }
6840     } elsif ($self->{next_input_character} == 114) { # r
6841     !!!next-input-character;
6842     if ($self->{next_input_character} == 114) { # r
6843     !!!next-input-character;
6844     {
6845     $r = {type => 'character', data => qq<\x{2191}>}; # uarr
6846     if ($self->{next_input_character} == 0x003B) { # ;
6847     !!!next-input-character;
6848     } else {
6849     !!!parse-error;
6850     ## reconsume
6851     }
6852     }
6853     } else {
6854     !!!parse-error;
6855     !!!back-next-input-character (97, 114, $self->{next_input_character});
6856     $self->{next_input_character} = 117;
6857     }
6858     } else {
6859     !!!parse-error;
6860     !!!back-next-input-character (97, $self->{next_input_character});
6861     $self->{next_input_character} = 117;
6862     }
6863     } elsif ($self->{next_input_character} == 99) { # c
6864     !!!next-input-character;
6865     if ($self->{next_input_character} == 105) { # i
6866     !!!next-input-character;
6867     if ($self->{next_input_character} == 114) { # r
6868     !!!next-input-character;
6869     if ($self->{next_input_character} == 99) { # c
6870     !!!next-input-character;
6871     {
6872     $r = {type => 'character', data => qq<\x{00FB}>}; # ucirc
6873     if ($self->{next_input_character} == 0x003B) { # ;
6874     !!!next-input-character;
6875     } else {
6876     !!!parse-error;
6877     ## reconsume
6878     }
6879     }
6880     } else {
6881     !!!parse-error;
6882     !!!back-next-input-character (99, 105, 114, $self->{next_input_character});
6883     $self->{next_input_character} = 117;
6884     }
6885     } else {
6886     !!!parse-error;
6887     !!!back-next-input-character (99, 105, $self->{next_input_character});
6888     $self->{next_input_character} = 117;
6889     }
6890     } else {
6891     !!!parse-error;
6892     !!!back-next-input-character (99, $self->{next_input_character});
6893     $self->{next_input_character} = 117;
6894     }
6895     } elsif ($self->{next_input_character} == 103) { # g
6896     !!!next-input-character;
6897     if ($self->{next_input_character} == 114) { # r
6898     !!!next-input-character;
6899     if ($self->{next_input_character} == 97) { # a
6900     !!!next-input-character;
6901     if ($self->{next_input_character} == 118) { # v
6902     !!!next-input-character;
6903     if ($self->{next_input_character} == 101) { # e
6904     !!!next-input-character;
6905     {
6906     $r = {type => 'character', data => qq<\x{00F9}>}; # ugrave
6907     if ($self->{next_input_character} == 0x003B) { # ;
6908     !!!next-input-character;
6909     } else {
6910     !!!parse-error;
6911     ## reconsume
6912     }
6913     }
6914     } else {
6915     !!!parse-error;
6916     !!!back-next-input-character (103, 114, 97, 118, $self->{next_input_character});
6917     $self->{next_input_character} = 117;
6918     }
6919     } else {
6920     !!!parse-error;
6921     !!!back-next-input-character (103, 114, 97, $self->{next_input_character});
6922     $self->{next_input_character} = 117;
6923     }
6924     } else {
6925     !!!parse-error;
6926     !!!back-next-input-character (103, 114, $self->{next_input_character});
6927     $self->{next_input_character} = 117;
6928     }
6929     } else {
6930     !!!parse-error;
6931     !!!back-next-input-character (103, $self->{next_input_character});
6932     $self->{next_input_character} = 117;
6933     }
6934     } elsif ($self->{next_input_character} == 109) { # m
6935     !!!next-input-character;
6936     if ($self->{next_input_character} == 108) { # l
6937     !!!next-input-character;
6938     {
6939     $r = {type => 'character', data => qq<\x{00A8}>}; # uml
6940     if ($self->{next_input_character} == 0x003B) { # ;
6941     !!!next-input-character;
6942     } else {
6943     !!!parse-error;
6944     ## reconsume
6945     }
6946     }
6947     } else {
6948     !!!parse-error;
6949     !!!back-next-input-character (109, $self->{next_input_character});
6950     $self->{next_input_character} = 117;
6951     }
6952     } elsif ($self->{next_input_character} == 112) { # p
6953     !!!next-input-character;
6954     if ($self->{next_input_character} == 115) { # s
6955     !!!next-input-character;
6956     if ($self->{next_input_character} == 105) { # i
6957     !!!next-input-character;
6958     if ($self->{next_input_character} == 104) { # h
6959     !!!next-input-character;
6960     {
6961     $r = {type => 'character', data => qq<\x{03D2}>}; # upsih
6962     if ($self->{next_input_character} == 0x003B) { # ;
6963     !!!next-input-character;
6964     } else {
6965     !!!parse-error;
6966     ## reconsume
6967     }
6968     }
6969     } elsif ($self->{next_input_character} == 108) { # l
6970     !!!next-input-character;
6971     if ($self->{next_input_character} == 111) { # o
6972     !!!next-input-character;
6973     if ($self->{next_input_character} == 110) { # n
6974     !!!next-input-character;
6975     {
6976     $r = {type => 'character', data => qq<\x{03C5}>}; # upsilon
6977     if ($self->{next_input_character} == 0x003B) { # ;
6978     !!!next-input-character;
6979     } else {
6980     !!!parse-error;
6981     ## reconsume
6982     }
6983     }
6984     } else {
6985     !!!parse-error;
6986     !!!back-next-input-character (112, 115, 105, 108, 111, $self->{next_input_character});
6987     $self->{next_input_character} = 117;
6988     }
6989     } else {
6990     !!!parse-error;
6991     !!!back-next-input-character (112, 115, 105, 108, $self->{next_input_character});
6992     $self->{next_input_character} = 117;
6993     }
6994     } else {
6995     !!!parse-error;
6996     !!!back-next-input-character (112, 115, 105, $self->{next_input_character});
6997     $self->{next_input_character} = 117;
6998     }
6999     } else {
7000     !!!parse-error;
7001     !!!back-next-input-character (112, 115, $self->{next_input_character});
7002     $self->{next_input_character} = 117;
7003     }
7004     } else {
7005     !!!parse-error;
7006     !!!back-next-input-character (112, $self->{next_input_character});
7007     $self->{next_input_character} = 117;
7008     }
7009     } elsif ($self->{next_input_character} == 117) { # u
7010     !!!next-input-character;
7011     if ($self->{next_input_character} == 109) { # m
7012     !!!next-input-character;
7013     if ($self->{next_input_character} == 108) { # l
7014     !!!next-input-character;
7015     {
7016     $r = {type => 'character', data => qq<\x{00FC}>}; # uuml
7017     if ($self->{next_input_character} == 0x003B) { # ;
7018     !!!next-input-character;
7019     } else {
7020     !!!parse-error;
7021     ## reconsume
7022     }
7023     }
7024     } else {
7025     !!!parse-error;
7026     !!!back-next-input-character (117, 109, $self->{next_input_character});
7027     $self->{next_input_character} = 117;
7028     }
7029     } else {
7030     !!!parse-error;
7031     !!!back-next-input-character (117, $self->{next_input_character});
7032     $self->{next_input_character} = 117;
7033     }
7034     } else {
7035     !!!parse-error;
7036     !!!back-next-input-character ($self->{next_input_character});
7037     $self->{next_input_character} = 117;
7038     }
7039     } elsif ($self->{next_input_character} == 119) { # w
7040     !!!next-input-character;
7041     if ($self->{next_input_character} == 101) { # e
7042     !!!next-input-character;
7043     if ($self->{next_input_character} == 105) { # i
7044     !!!next-input-character;
7045     if ($self->{next_input_character} == 101) { # e
7046     !!!next-input-character;
7047     if ($self->{next_input_character} == 114) { # r
7048     !!!next-input-character;
7049     if ($self->{next_input_character} == 112) { # p
7050     !!!next-input-character;
7051     {
7052     $r = {type => 'character', data => qq<\x{2118}>}; # weierp
7053     if ($self->{next_input_character} == 0x003B) { # ;
7054     !!!next-input-character;
7055     } else {
7056     !!!parse-error;
7057     ## reconsume
7058     }
7059     }
7060     } else {
7061     !!!parse-error;
7062     !!!back-next-input-character (101, 105, 101, 114, $self->{next_input_character});
7063     $self->{next_input_character} = 119;
7064     }
7065     } else {
7066     !!!parse-error;
7067     !!!back-next-input-character (101, 105, 101, $self->{next_input_character});
7068     $self->{next_input_character} = 119;
7069     }
7070     } else {
7071     !!!parse-error;
7072     !!!back-next-input-character (101, 105, $self->{next_input_character});
7073     $self->{next_input_character} = 119;
7074     }
7075     } else {
7076     !!!parse-error;
7077     !!!back-next-input-character (101, $self->{next_input_character});
7078     $self->{next_input_character} = 119;
7079     }
7080     } else {
7081     !!!parse-error;
7082     !!!back-next-input-character ($self->{next_input_character});
7083     $self->{next_input_character} = 119;
7084     }
7085     } elsif ($self->{next_input_character} == 120) { # x
7086     !!!next-input-character;
7087     if ($self->{next_input_character} == 105) { # i
7088     !!!next-input-character;
7089     {
7090     $r = {type => 'character', data => qq<\x{03BE}>}; # xi
7091     if ($self->{next_input_character} == 0x003B) { # ;
7092     !!!next-input-character;
7093     } else {
7094     !!!parse-error;
7095     ## reconsume
7096     }
7097     }
7098     } else {
7099     !!!parse-error;
7100     !!!back-next-input-character ($self->{next_input_character});
7101     $self->{next_input_character} = 120;
7102     }
7103     } elsif ($self->{next_input_character} == 121) { # y
7104     !!!next-input-character;
7105     if ($self->{next_input_character} == 97) { # a
7106     !!!next-input-character;
7107     if ($self->{next_input_character} == 99) { # c
7108     !!!next-input-character;
7109     if ($self->{next_input_character} == 117) { # u
7110     !!!next-input-character;
7111     if ($self->{next_input_character} == 116) { # t
7112     !!!next-input-character;
7113     if ($self->{next_input_character} == 101) { # e
7114     !!!next-input-character;
7115     {
7116     $r = {type => 'character', data => qq<\x{00FD}>}; # yacute
7117     if ($self->{next_input_character} == 0x003B) { # ;
7118     !!!next-input-character;
7119     } else {
7120     !!!parse-error;
7121     ## reconsume
7122     }
7123     }
7124     } else {
7125     !!!parse-error;
7126     !!!back-next-input-character (97, 99, 117, 116, $self->{next_input_character});
7127     $self->{next_input_character} = 121;
7128     }
7129     } else {
7130     !!!parse-error;
7131     !!!back-next-input-character (97, 99, 117, $self->{next_input_character});
7132     $self->{next_input_character} = 121;
7133     }
7134     } else {
7135     !!!parse-error;
7136     !!!back-next-input-character (97, 99, $self->{next_input_character});
7137     $self->{next_input_character} = 121;
7138     }
7139     } else {
7140     !!!parse-error;
7141     !!!back-next-input-character (97, $self->{next_input_character});
7142     $self->{next_input_character} = 121;
7143     }
7144     } elsif ($self->{next_input_character} == 101) { # e
7145     !!!next-input-character;
7146     if ($self->{next_input_character} == 110) { # n
7147     !!!next-input-character;
7148     {
7149     $r = {type => 'character', data => qq<\x{00A5}>}; # yen
7150     if ($self->{next_input_character} == 0x003B) { # ;
7151     !!!next-input-character;
7152     } else {
7153     !!!parse-error;
7154     ## reconsume
7155     }
7156     }
7157     } else {
7158     !!!parse-error;
7159     !!!back-next-input-character (101, $self->{next_input_character});
7160     $self->{next_input_character} = 121;
7161     }
7162     } elsif ($self->{next_input_character} == 117) { # u
7163     !!!next-input-character;
7164     if ($self->{next_input_character} == 109) { # m
7165     !!!next-input-character;
7166     if ($self->{next_input_character} == 108) { # l
7167     !!!next-input-character;
7168     {
7169     $r = {type => 'character', data => qq<\x{00FF}>}; # yuml
7170     if ($self->{next_input_character} == 0x003B) { # ;
7171     !!!next-input-character;
7172     } else {
7173     !!!parse-error;
7174     ## reconsume
7175     }
7176     }
7177     } else {
7178     !!!parse-error;
7179     !!!back-next-input-character (117, 109, $self->{next_input_character});
7180     $self->{next_input_character} = 121;
7181     }
7182     } else {
7183     !!!parse-error;
7184     !!!back-next-input-character (117, $self->{next_input_character});
7185     $self->{next_input_character} = 121;
7186     }
7187     } else {
7188     !!!parse-error;
7189     !!!back-next-input-character ($self->{next_input_character});
7190     $self->{next_input_character} = 121;
7191     }
7192     } elsif ($self->{next_input_character} == 122) { # z
7193     !!!next-input-character;
7194     if ($self->{next_input_character} == 101) { # e
7195     !!!next-input-character;
7196     if ($self->{next_input_character} == 116) { # t
7197     !!!next-input-character;
7198     if ($self->{next_input_character} == 97) { # a
7199     !!!next-input-character;
7200     {
7201     $r = {type => 'character', data => qq<\x{03B6}>}; # zeta
7202     if ($self->{next_input_character} == 0x003B) { # ;
7203     !!!next-input-character;
7204     } else {
7205     !!!parse-error;
7206     ## reconsume
7207     }
7208     }
7209     } else {
7210     !!!parse-error;
7211     !!!back-next-input-character (101, 116, $self->{next_input_character});
7212     $self->{next_input_character} = 122;
7213     }
7214     } else {
7215     !!!parse-error;
7216     !!!back-next-input-character (101, $self->{next_input_character});
7217     $self->{next_input_character} = 122;
7218     }
7219     } elsif ($self->{next_input_character} == 119) { # w
7220     !!!next-input-character;
7221     if ($self->{next_input_character} == 106) { # j
7222     !!!next-input-character;
7223     {
7224     $r = {type => 'character', data => qq<\x{200D}>}; # zwj
7225     if ($self->{next_input_character} == 0x003B) { # ;
7226     !!!next-input-character;
7227     } else {
7228     !!!parse-error;
7229     ## reconsume
7230     }
7231     }
7232     } elsif ($self->{next_input_character} == 110) { # n
7233     !!!next-input-character;
7234     if ($self->{next_input_character} == 106) { # j
7235     !!!next-input-character;
7236     {
7237     $r = {type => 'character', data => qq<\x{200C}>}; # zwnj
7238     if ($self->{next_input_character} == 0x003B) { # ;
7239     !!!next-input-character;
7240     } else {
7241     !!!parse-error;
7242     ## reconsume
7243     }
7244     }
7245     } else {
7246     !!!parse-error;
7247     !!!back-next-input-character (119, 110, $self->{next_input_character});
7248     $self->{next_input_character} = 122;
7249     }
7250     } else {
7251     !!!parse-error;
7252     !!!back-next-input-character (119, $self->{next_input_character});
7253     $self->{next_input_character} = 122;
7254     }
7255     } else {
7256     !!!parse-error;
7257     !!!back-next-input-character ($self->{next_input_character});
7258     $self->{next_input_character} = 122;
7259     }
7260     } else {
7261     !!!parse-error;
7262     }
7263    
7264     ## Generated by: <javascript:%0A%0Avar%20table%20%3D%20document.getElementsByTagName%20%28%27table%27%29%5B0%5D%3B%0Avar%20trs%20%3D%20table.getElementsByTagName%20%28%27tr%27%29%3B%0A%0Afunction%20State%20%28%29%20%7B%20this.reparseNextChars%20%3D%20%5B%5D%20%7D%0AState.prototype.toString%20%3D%20function%20%28indent%29%20%7B%0A%20%20var%20r%20%3D%20%27%27%3B%0A%20%20var%20e%20%3D%20%27%27%3B%0A%20%20for%20%28var%20i%20in%20this%29%20%7B%0A%20%20%20%20if%20%28parseInt%20%28i%29.toString%20%28%29%20%3D%3D%20i%29%20%7B%0A%20%20%20%20%20%20r%20%2B%3D%20%27if%20%28%24next_input_character%20%3D%3D%20%27%20%2B%20i.toString%20%28%29%20%2B%20%27%29%20%7B%20%23%20%27%20%2B%20String.fromCharCode%20%28i%29%20%2B%20%27%5Cn%27%20%2B%0A%20%20%20%20%20%20%20%20%20%20indent%20%2B%20%27%20%20!!!next-input-character%3B%5Cn%27%3B%0A%20%20%20%20%20%20r%20%2B%3D%20indent%20%2B%20%27%20%20%27%20%2B%20this%5Bi%5D.toString%20%28indent%20%2B%20%27%20%20%27%29%3B%0A%20%20%20%20%20%20r%20%2B%3D%20indent%20%2B%20%27%7D%20els%27%3B%0A%20%20%20%20%20%20e%20%3D%20%27e%20%27%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20r%20%2B%3D%20e%20%2B%20%22%7B%5Cn%22%3B%0A%20%20if%20%28this.codePoint%29%20%7B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%24r%20%3D%20%7Btype%20%3D%3E%20%27character%27%2C%20data%20%3D%3E%20qq%3C%5C%5Cx%7B%22%0A%20%20%20%20%20%20%20%20%2B%20this.codePoint%20%2B%20%22%7D%3E%7D%3B%20%23%20%22%20%2B%20this.entityName%20%2B%20%22%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20if%20%28%24next_input_character%20%3D%3D%200x003B%29%20%7B%20%23%20%3B%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%20%20!!!next-input-character%3B%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%7D%20else%20%7B%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%20%20!!!parse-error%3B%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%20%20%23%23%20reconsume%5Cn%22%3B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%7D%5Cn%22%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20!!!parse-error%3B%5Cn%22%3B%0A%20%20%20%20if%20%28this.reparseNextChar%29%20%7B%0A%20%20%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20!!!back-next-input-character%20%28%22%0A%20%20%20%20%20%20%20%20%20%20%2B%20this.reparseNextChars.map%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28function%20%28s%29%20%7Breturn%20s%20%2B%20%27%2C%20%27%7D%29.join%20%28%27%27%29%0A%20%20%20%20%20%20%20%20%20%20%2B%20%22%24next_input_character%29%3B%5Cn%22%3B%0A%20%20%20%20%20%20r%20%2B%3D%20indent%20%2B%20%22%20%20%24next_input_character%20%3D%20%22%0A%20%20%20%20%20%20%20%20%20%20%2B%20this.reparseNextChar%20%2B%20%22%3B%5Cn%22%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20indent%20%2B%20%22%20%20%23%23%20reconsume%22%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20r%20%2B%3D%20indent%20%2B%20%27%7D%5Cn%27%3B%0A%20%20return%20r%3B%0A%7D%3B%20%2F%2F%20toString%0A%0Avar%20initialState%20%3D%20new%20State%20%28%29%3B%0A%0Afor%20%28var%20i%20%3D%201%20%2F*%20skip%20header%20*%2F%3B%20i%20%3C%20trs.length%3B%20i%2B%2B%29%20%7B%0A%20%20var%20tds%20%3D%20trs%5Bi%5D.getElementsByTagName%20%28%27td%27%29%3B%0A%20%20var%20entityName%20%3D%20tds%5B0%5D.textContent.replace%20%28%2F%5Cs%2Fg%2C%20%27%27%29%3B%0A%20%20var%20codePoint%20%3D%20tds%5B1%5D.textContent.replace%20%28%2F%5Cs%2Fg%2C%20%27%27%29.substring%20%282%29%3B%0A%0A%20%20var%20state%20%3D%20initialState%3B%0A%20%20for%20%28var%20j%20%3D%200%3B%20j%20%3C%20entityName.length%3B%20j%2B%2B%29%20%7B%0A%20%20%20%20var%20ch%20%3D%20entityName.charCodeAt%20%28j%29%3B%0A%20%20%20%20if%20%28!state%5Bch%5D%29%20%7B%0A%20%20%20%20%20%20state%5Bch%5D%20%3D%20new%20State%20%28%29%3B%0A%20%20%20%20%20%20state%5Bch%5D.prototype%20%3D%20initialState.prototype%3B%0A%20%20%20%20%20%20state%5Bch%5D.reparseNextChar%20%3D%20entityName.charCodeAt%20%280%29%3B%0A%20%20%20%20%20%20for%20%28var%20k%20%3D%201%3B%20k%20%3C%3D%20j%3B%20k%2B%2B%29%20%7B%0A%20%20%20%20%20%20%20%20state%5Bch%5D.reparseNextChars%5Bk%20-%201%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3D%20entityName.charCodeAt%20%28k%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20state%20%3D%20state%5Bch%5D%3B%0A%20%20%7D%0A%20%20state.codePoint%20%3D%20codePoint%3B%0A%20%20state.entityName%20%3D%20entityName%3B%0A%7D%0A%0A%27%3Ca%20href%3D%22data%3Atext%2Fplain%3Bcharset%3Dutf-8%2C%27%20%2B%20encodeURIComponent%20%28%27%20%20%20%20%7D%20els%27%20%2B%20initialState.toString%20%28%27%20%20%20%20%27%29%29%20%2B%20%27%22%3Enamed%20entity%20code%3C%2Fa%3E%27%3B%0A>

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24