VTPrsTbl.c revision 04b94745
1/* $XTermId: VTPrsTbl.c,v 1.117 2023/12/27 22:46:08 tom Exp $ */
2
3/*
4 * Copyright 1999-2022,2023 by Thomas E. Dickey
5 *
6 *                         All Rights Reserved
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * Except as contained in this notice, the name(s) of the above copyright
28 * holders shall not be used in advertising or otherwise to promote the
29 * sale, use or other dealings in this Software without prior written
30 * authorization.
31 *
32 *
33 * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
34 *
35 *                         All Rights Reserved
36 *
37 * Permission to use, copy, modify, and distribute this software and its
38 * documentation for any purpose and without fee is hereby granted,
39 * provided that the above copyright notice appear in all copies and that
40 * both that copyright notice and this permission notice appear in
41 * supporting documentation, and that the name of Digital Equipment
42 * Corporation not be used in advertising or publicity pertaining to
43 * distribution of the software without specific, written prior permission.
44 *
45 *
46 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
47 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
48 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
49 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
50 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
51 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
52 * SOFTWARE.
53 */
54
55#include <VTparse.h>
56/* *INDENT-OFF* */
57
58#if !OPT_BLINK_CURS
59#undef  CASE_CSI_SPACE_STATE
60#define CASE_CSI_SPACE_STATE CASE_CSI_IGNORE
61#endif
62
63#if !OPT_DEC_LOCATOR
64#undef  CASE_DECEFR
65#define CASE_DECEFR CASE_CSI_IGNORE
66#undef  CASE_DECELR
67#define CASE_DECELR CASE_CSI_IGNORE
68#undef  CASE_DECSLE
69#define CASE_DECSLE CASE_CSI_IGNORE
70#undef  CASE_DECRQLP
71#define CASE_DECRQLP CASE_CSI_IGNORE
72#endif
73
74#if !OPT_WIDE_CHARS
75#undef  CASE_ESC_PERCENT
76#define CASE_ESC_PERCENT CASE_ESC_IGNORE
77#endif
78
79#if !OPT_MOD_FKEYS
80#undef  CASE_SET_MOD_FKEYS
81#define CASE_SET_MOD_FKEYS CASE_GROUND_STATE
82#undef  CASE_SET_MOD_FKEYS0
83#define CASE_SET_MOD_FKEYS0 CASE_GROUND_STATE
84#endif
85
86#if !OPT_XTERM_SGR
87#undef CASE_CSI_HASH_STATE
88#define CASE_CSI_HASH_STATE CASE_CSI_IGNORE
89#endif
90
91/*
92 * Stupid Apollo C preprocessor can't handle long lines.  So... To keep
93 * it happy, we put each onto a separate line....  Sigh...
94 */
95
96Const PARSE_T ansi_table[] =
97{
98/*	NUL		SOH		STX		ETX	*/
99CASE_IGNORE,
100CASE_IGNORE,
101CASE_IGNORE,
102CASE_IGNORE,
103/*	EOT		ENQ		ACK		BEL	*/
104CASE_IGNORE,
105CASE_ENQ,
106CASE_IGNORE,
107CASE_BELL,
108/*	BS		HT		NL		VT	*/
109CASE_BS,
110CASE_TAB,
111CASE_VMOT,
112CASE_VMOT,
113/*	FF		CR		SO		SI	*/
114CASE_VMOT,
115CASE_CR,
116CASE_SO,
117CASE_SI,
118/*	DLE		DC1		DC2		DC3	*/
119CASE_IGNORE,
120CASE_IGNORE,
121CASE_IGNORE,
122CASE_IGNORE,
123/*	DC4		NAK		SYN		ETB	*/
124CASE_IGNORE,
125CASE_IGNORE,
126CASE_IGNORE,
127CASE_IGNORE,
128/*	CAN		EM		SUB		ESC	*/
129CASE_GROUND_STATE,
130CASE_IGNORE,
131CASE_GROUND_STATE,
132CASE_ESC,
133/*	FS		GS		RS		US	*/
134CASE_IGNORE,
135CASE_IGNORE,
136CASE_IGNORE,
137CASE_IGNORE,
138/*	SP		!		"		#	*/
139CASE_PRINT,
140CASE_PRINT,
141CASE_PRINT,
142CASE_PRINT,
143/*	$		%		&		'	*/
144CASE_PRINT,
145CASE_PRINT,
146CASE_PRINT,
147CASE_PRINT,
148/*	(		)		*		+	*/
149CASE_PRINT,
150CASE_PRINT,
151CASE_PRINT,
152CASE_PRINT,
153/*	,		-		.		/	*/
154CASE_PRINT,
155CASE_PRINT,
156CASE_PRINT,
157CASE_PRINT,
158/*	0		1		2		3	*/
159CASE_PRINT,
160CASE_PRINT,
161CASE_PRINT,
162CASE_PRINT,
163/*	4		5		6		7	*/
164CASE_PRINT,
165CASE_PRINT,
166CASE_PRINT,
167CASE_PRINT,
168/*	8		9		:		;	*/
169CASE_PRINT,
170CASE_PRINT,
171CASE_PRINT,
172CASE_PRINT,
173/*	<		=		>		?	*/
174CASE_PRINT,
175CASE_PRINT,
176CASE_PRINT,
177CASE_PRINT,
178/*	@		A		B		C	*/
179CASE_PRINT,
180CASE_PRINT,
181CASE_PRINT,
182CASE_PRINT,
183/*	D		E		F		G	*/
184CASE_PRINT,
185CASE_PRINT,
186CASE_PRINT,
187CASE_PRINT,
188/*	H		I		J		K	*/
189CASE_PRINT,
190CASE_PRINT,
191CASE_PRINT,
192CASE_PRINT,
193/*	L		M		N		O	*/
194CASE_PRINT,
195CASE_PRINT,
196CASE_PRINT,
197CASE_PRINT,
198/*	P		Q		R		S	*/
199CASE_PRINT,
200CASE_PRINT,
201CASE_PRINT,
202CASE_PRINT,
203/*	T		U		V		W	*/
204CASE_PRINT,
205CASE_PRINT,
206CASE_PRINT,
207CASE_PRINT,
208/*	X		Y		Z		[	*/
209CASE_PRINT,
210CASE_PRINT,
211CASE_PRINT,
212CASE_PRINT,
213/*	\		]		^		_	*/
214CASE_PRINT,
215CASE_PRINT,
216CASE_PRINT,
217CASE_PRINT,
218/*	`		a		b		c	*/
219CASE_PRINT,
220CASE_PRINT,
221CASE_PRINT,
222CASE_PRINT,
223/*	d		e		f		g	*/
224CASE_PRINT,
225CASE_PRINT,
226CASE_PRINT,
227CASE_PRINT,
228/*	h		i		j		k	*/
229CASE_PRINT,
230CASE_PRINT,
231CASE_PRINT,
232CASE_PRINT,
233/*	l		m		n		o	*/
234CASE_PRINT,
235CASE_PRINT,
236CASE_PRINT,
237CASE_PRINT,
238/*	p		q		r		s	*/
239CASE_PRINT,
240CASE_PRINT,
241CASE_PRINT,
242CASE_PRINT,
243/*	t		u		v		w	*/
244CASE_PRINT,
245CASE_PRINT,
246CASE_PRINT,
247CASE_PRINT,
248/*	x		y		z		{	*/
249CASE_PRINT,
250CASE_PRINT,
251CASE_PRINT,
252CASE_PRINT,
253/*	|		}		~		DEL	*/
254CASE_PRINT,
255CASE_PRINT,
256CASE_PRINT,
257CASE_IGNORE,
258/*      0x80            0x81            0x82            0x83    */
259CASE_GROUND_STATE,
260CASE_GROUND_STATE,
261CASE_GROUND_STATE,
262CASE_GROUND_STATE,
263/*      0x84            0x85            0x86            0x87    */
264CASE_IND,
265CASE_NEL,
266CASE_GROUND_STATE,
267CASE_GROUND_STATE,
268/*      0x88            0x89            0x8a            0x8b    */
269CASE_HTS,
270CASE_GROUND_STATE,
271CASE_GROUND_STATE,
272CASE_GROUND_STATE,
273/*      0x8c            0x8d            0x8e            0x8f    */
274CASE_GROUND_STATE,
275CASE_RI,
276CASE_SS2,
277CASE_SS3,
278/*      0x90            0x91            0x92            0x93    */
279CASE_DCS,
280CASE_GROUND_STATE,
281CASE_GROUND_STATE,
282CASE_GROUND_STATE,
283/*      0x94            0x95            0x96            0x97    */
284CASE_GROUND_STATE,
285CASE_GROUND_STATE,
286CASE_SPA,
287CASE_EPA,
288/*      0x98            0x99            0x9a            0x9b    */
289CASE_SOS,
290CASE_GROUND_STATE,
291CASE_DECID,
292CASE_CSI_STATE,
293/*      0x9c            0x9d            0x9e            0x9f    */
294CASE_ST,
295CASE_OSC,
296CASE_PM,
297CASE_APC,
298/*      nobreakspace    exclamdown      cent            sterling        */
299CASE_PRINT,
300CASE_PRINT,
301CASE_PRINT,
302CASE_PRINT,
303/*      currency        yen             brokenbar       section         */
304CASE_PRINT,
305CASE_PRINT,
306CASE_PRINT,
307CASE_PRINT,
308/*      diaeresis       copyright       ordfeminine     guillemotleft   */
309CASE_PRINT,
310CASE_PRINT,
311CASE_PRINT,
312CASE_PRINT,
313/*      notsign         hyphen          registered      macron          */
314CASE_PRINT,
315CASE_PRINT,
316CASE_PRINT,
317CASE_PRINT,
318/*      degree          plusminus       twosuperior     threesuperior   */
319CASE_PRINT,
320CASE_PRINT,
321CASE_PRINT,
322CASE_PRINT,
323/*      acute           mu              paragraph       periodcentered  */
324CASE_PRINT,
325CASE_PRINT,
326CASE_PRINT,
327CASE_PRINT,
328/*      cedilla         onesuperior     masculine       guillemotright  */
329CASE_PRINT,
330CASE_PRINT,
331CASE_PRINT,
332CASE_PRINT,
333/*      onequarter      onehalf         threequarters   questiondown    */
334CASE_PRINT,
335CASE_PRINT,
336CASE_PRINT,
337CASE_PRINT,
338/*      Agrave          Aacute          Acircumflex     Atilde          */
339CASE_PRINT,
340CASE_PRINT,
341CASE_PRINT,
342CASE_PRINT,
343/*      Adiaeresis      Aring           AE              Ccedilla        */
344CASE_PRINT,
345CASE_PRINT,
346CASE_PRINT,
347CASE_PRINT,
348/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
349CASE_PRINT,
350CASE_PRINT,
351CASE_PRINT,
352CASE_PRINT,
353/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
354CASE_PRINT,
355CASE_PRINT,
356CASE_PRINT,
357CASE_PRINT,
358/*      Eth             Ntilde          Ograve          Oacute          */
359CASE_PRINT,
360CASE_PRINT,
361CASE_PRINT,
362CASE_PRINT,
363/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
364CASE_PRINT,
365CASE_PRINT,
366CASE_PRINT,
367CASE_PRINT,
368/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
369CASE_PRINT,
370CASE_PRINT,
371CASE_PRINT,
372CASE_PRINT,
373/*      Udiaeresis      Yacute          Thorn           ssharp          */
374CASE_PRINT,
375CASE_PRINT,
376CASE_PRINT,
377CASE_PRINT,
378/*      agrave          aacute          acircumflex     atilde          */
379CASE_PRINT,
380CASE_PRINT,
381CASE_PRINT,
382CASE_PRINT,
383/*      adiaeresis      aring           ae              ccedilla        */
384CASE_PRINT,
385CASE_PRINT,
386CASE_PRINT,
387CASE_PRINT,
388/*      egrave          eacute          ecircumflex     ediaeresis      */
389CASE_PRINT,
390CASE_PRINT,
391CASE_PRINT,
392CASE_PRINT,
393/*      igrave          iacute          icircumflex     idiaeresis      */
394CASE_PRINT,
395CASE_PRINT,
396CASE_PRINT,
397CASE_PRINT,
398/*      eth             ntilde          ograve          oacute          */
399CASE_PRINT,
400CASE_PRINT,
401CASE_PRINT,
402CASE_PRINT,
403/*      ocircumflex     otilde          odiaeresis      division        */
404CASE_PRINT,
405CASE_PRINT,
406CASE_PRINT,
407CASE_PRINT,
408/*      oslash          ugrave          uacute          ucircumflex     */
409CASE_PRINT,
410CASE_PRINT,
411CASE_PRINT,
412CASE_PRINT,
413/*      udiaeresis      yacute          thorn           ydiaeresis      */
414CASE_PRINT,
415CASE_PRINT,
416CASE_PRINT,
417CASE_PRINT,
418};
419
420Const PARSE_T csi_table[] =		/* CSI */
421{
422/*	NUL		SOH		STX		ETX	*/
423CASE_IGNORE,
424CASE_IGNORE,
425CASE_IGNORE,
426CASE_IGNORE,
427/*	EOT		ENQ		ACK		BEL	*/
428CASE_IGNORE,
429CASE_ENQ,
430CASE_IGNORE,
431CASE_BELL,
432/*	BS		HT		NL		VT	*/
433CASE_BS,
434CASE_TAB,
435CASE_VMOT,
436CASE_VMOT,
437/*	FF		CR		SO		SI	*/
438CASE_VMOT,
439CASE_CR,
440CASE_SO,
441CASE_SI,
442/*	DLE		DC1		DC2		DC3	*/
443CASE_IGNORE,
444CASE_IGNORE,
445CASE_IGNORE,
446CASE_IGNORE,
447/*	DC4		NAK		SYN		ETB	*/
448CASE_IGNORE,
449CASE_IGNORE,
450CASE_IGNORE,
451CASE_IGNORE,
452/*	CAN		EM		SUB		ESC	*/
453CASE_GROUND_STATE,
454CASE_IGNORE,
455CASE_GROUND_STATE,
456CASE_ESC,
457/*	FS		GS		RS		US	*/
458CASE_IGNORE,
459CASE_IGNORE,
460CASE_IGNORE,
461CASE_IGNORE,
462/*	SP		!		"		#	*/
463CASE_CSI_SPACE_STATE,
464CASE_CSI_EX_STATE,
465CASE_CSI_QUOTE_STATE,
466CASE_CSI_HASH_STATE,
467/*	$		%		&		'	*/
468CASE_CSI_DOLLAR_STATE,
469CASE_CSI_IGNORE,
470CASE_CSI_AMP_STATE,
471CASE_CSI_TICK_STATE,
472/*	(		)		*		+	*/
473CASE_CSI_IGNORE,
474CASE_CSI_IGNORE,	/* vt525 */
475CASE_CSI_IGNORE,
476CASE_CSI_IGNORE,	/* vt420 and vt520 */
477/*	,		-		.		/	*/
478CASE_CSI_IGNORE,
479CASE_CSI_IGNORE,
480CASE_CSI_IGNORE,
481CASE_CSI_IGNORE,
482/*	0		1		2		3	*/
483CASE_ESC_DIGIT,
484CASE_ESC_DIGIT,
485CASE_ESC_DIGIT,
486CASE_ESC_DIGIT,
487/*	4		5		6		7	*/
488CASE_ESC_DIGIT,
489CASE_ESC_DIGIT,
490CASE_ESC_DIGIT,
491CASE_ESC_DIGIT,
492/*	8		9		:		;	*/
493CASE_ESC_DIGIT,
494CASE_ESC_DIGIT,
495CASE_ESC_COLON,
496CASE_ESC_SEMI,
497/*	<		=		>		?	*/
498CASE_CSI_IGNORE,
499CASE_DEC3_STATE,
500CASE_DEC2_STATE,
501CASE_DEC_STATE,
502/*	@		A		B		C	*/
503CASE_ICH,
504CASE_CUU,
505CASE_CUD,
506CASE_CUF,
507/*	D		E		F		G	*/
508CASE_CUB,
509CASE_CNL,
510CASE_CPL,
511CASE_HPA,
512/*	H		I		J		K	*/
513CASE_CUP,
514CASE_CHT,
515CASE_ED,
516CASE_EL,
517/*	L		M		N		O	*/
518CASE_IL,
519CASE_DL,
520CASE_GROUND_STATE,
521CASE_GROUND_STATE,
522/*	P		Q		R		S	*/
523CASE_DCH,
524CASE_GROUND_STATE,
525CASE_GROUND_STATE,
526CASE_SU,
527/*	T		U		V		W	*/
528CASE_TRACK_MOUSE,
529CASE_GROUND_STATE,	/* vt420:NP */
530CASE_GROUND_STATE,	/* vt420:PP */
531CASE_GROUND_STATE,
532/*	X		Y		Z		[	*/
533CASE_ECH,
534CASE_GROUND_STATE,
535CASE_CBT,
536CASE_GROUND_STATE,
537/*	\		]		^		_	*/
538CASE_GROUND_STATE,
539CASE_GROUND_STATE,
540CASE_SD,
541CASE_GROUND_STATE,
542/*	`		a		b		c	*/
543CASE_HPA,
544CASE_HPR,
545CASE_REP,
546CASE_DA1,
547/*	d		e		f		g	*/
548CASE_VPA,
549CASE_VPR,
550CASE_CUP,
551CASE_TBC,
552/*	h		i		j		k	*/
553CASE_SET,
554CASE_MC,
555CASE_GROUND_STATE,
556CASE_GROUND_STATE,
557/*	l		m		n		o	*/
558CASE_RST,
559CASE_SGR,
560CASE_CPR,
561CASE_GROUND_STATE,
562/*	p		q		r		s	*/
563CASE_GROUND_STATE,
564CASE_DECLL,
565CASE_DECSTBM,
566CASE_ANSI_SC,
567/*	t		u		v		w	*/
568CASE_XTERM_WINOPS,
569CASE_ANSI_RC,
570CASE_GROUND_STATE,
571CASE_GROUND_STATE,
572/*	x		y		z		{	*/
573CASE_DECREQTPARM,
574CASE_GROUND_STATE,
575CASE_GROUND_STATE,
576CASE_GROUND_STATE,
577/*	|		}		~		DEL	*/
578CASE_GROUND_STATE,
579CASE_GROUND_STATE,
580CASE_GROUND_STATE,
581CASE_IGNORE,
582/*      0x80            0x81            0x82            0x83    */
583CASE_GROUND_STATE,
584CASE_GROUND_STATE,
585CASE_GROUND_STATE,
586CASE_GROUND_STATE,
587/*      0x84            0x85            0x86            0x87    */
588CASE_IND,
589CASE_NEL,
590CASE_GROUND_STATE,
591CASE_GROUND_STATE,
592/*      0x88            0x89            0x8a            0x8b    */
593CASE_HTS,
594CASE_GROUND_STATE,
595CASE_GROUND_STATE,
596CASE_GROUND_STATE,
597/*      0x8c            0x8d            0x8e            0x8f    */
598CASE_GROUND_STATE,
599CASE_RI,
600CASE_SS2,
601CASE_SS3,
602/*      0x90            0x91            0x92            0x93    */
603CASE_DCS,
604CASE_GROUND_STATE,
605CASE_GROUND_STATE,
606CASE_GROUND_STATE,
607/*      0x94            0x95            0x96            0x97    */
608CASE_GROUND_STATE,
609CASE_GROUND_STATE,
610CASE_SPA,
611CASE_EPA,
612/*      0x98            0x99            0x9a            0x9b    */
613CASE_SOS,
614CASE_GROUND_STATE,
615CASE_DECID,
616CASE_CSI_STATE,
617/*      0x9c            0x9d            0x9e            0x9f    */
618CASE_ST,
619CASE_OSC,
620CASE_PM,
621CASE_APC,
622/*      nobreakspace    exclamdown      cent            sterling        */
623CASE_CSI_SPACE_STATE,
624CASE_CSI_EX_STATE,
625CASE_CSI_QUOTE_STATE,
626CASE_CSI_HASH_STATE,
627/*      currency        yen             brokenbar       section         */
628CASE_CSI_DOLLAR_STATE,
629CASE_CSI_IGNORE,
630CASE_CSI_AMP_STATE,
631CASE_CSI_TICK_STATE,
632/*      diaeresis       copyright       ordfeminine     guillemotleft   */
633CASE_CSI_IGNORE,
634CASE_CSI_IGNORE,
635CASE_CSI_IGNORE,
636CASE_CSI_IGNORE,
637/*      notsign         hyphen          registered      macron          */
638CASE_CSI_IGNORE,
639CASE_CSI_IGNORE,
640CASE_CSI_IGNORE,
641CASE_CSI_IGNORE,
642/*      degree          plusminus       twosuperior     threesuperior   */
643CASE_ESC_DIGIT,
644CASE_ESC_DIGIT,
645CASE_ESC_DIGIT,
646CASE_ESC_DIGIT,
647/*      acute           mu              paragraph       periodcentered  */
648CASE_ESC_DIGIT,
649CASE_ESC_DIGIT,
650CASE_ESC_DIGIT,
651CASE_ESC_DIGIT,
652/*      cedilla         onesuperior     masculine       guillemotright  */
653CASE_ESC_DIGIT,
654CASE_ESC_DIGIT,
655CASE_ESC_COLON,
656CASE_ESC_SEMI,
657/*      onequarter      onehalf         threequarters   questiondown    */
658CASE_CSI_IGNORE,
659CASE_DEC3_STATE,
660CASE_DEC2_STATE,
661CASE_DEC_STATE,
662/*      Agrave          Aacute          Acircumflex     Atilde          */
663CASE_ICH,
664CASE_CUU,
665CASE_CUD,
666CASE_CUF,
667/*      Adiaeresis      Aring           AE              Ccedilla        */
668CASE_CUB,
669CASE_CNL,
670CASE_CPL,
671CASE_HPA,
672/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
673CASE_CUP,
674CASE_CHT,
675CASE_ED,
676CASE_EL,
677/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
678CASE_IL,
679CASE_DL,
680CASE_GROUND_STATE,
681CASE_GROUND_STATE,
682/*      Eth             Ntilde          Ograve          Oacute          */
683CASE_DCH,
684CASE_GROUND_STATE,
685CASE_GROUND_STATE,
686CASE_SU,
687/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
688CASE_TRACK_MOUSE,
689CASE_GROUND_STATE,
690CASE_GROUND_STATE,
691CASE_GROUND_STATE,
692/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
693CASE_ECH,
694CASE_GROUND_STATE,
695CASE_CBT,
696CASE_GROUND_STATE,
697/*      Udiaeresis      Yacute          Thorn           ssharp          */
698CASE_GROUND_STATE,
699CASE_GROUND_STATE,
700CASE_SD,
701CASE_GROUND_STATE,
702/*      agrave          aacute          acircumflex     atilde          */
703CASE_HPA,
704CASE_HPR,
705CASE_REP,
706CASE_DA1,
707/*      adiaeresis      aring           ae              ccedilla        */
708CASE_VPA,
709CASE_VPR,
710CASE_CUP,
711CASE_TBC,
712/*      egrave          eacute          ecircumflex     ediaeresis      */
713CASE_SET,
714CASE_MC,
715CASE_GROUND_STATE,
716CASE_GROUND_STATE,
717/*      igrave          iacute          icircumflex     idiaeresis      */
718CASE_RST,
719CASE_SGR,
720CASE_CPR,
721CASE_GROUND_STATE,
722/*      eth             ntilde          ograve          oacute          */
723CASE_GROUND_STATE,
724CASE_DECLL,
725CASE_DECSTBM,
726CASE_ANSI_SC,
727/*      ocircumflex     otilde          odiaeresis      division        */
728CASE_XTERM_WINOPS,
729CASE_ANSI_RC,
730CASE_GROUND_STATE,
731CASE_GROUND_STATE,
732/*      oslash          ugrave          uacute          ucircumflex     */
733CASE_DECREQTPARM,
734CASE_GROUND_STATE,
735CASE_GROUND_STATE,
736CASE_GROUND_STATE,
737/*      udiaeresis      yacute          thorn           ydiaeresis      */
738CASE_GROUND_STATE,
739CASE_GROUND_STATE,
740CASE_GROUND_STATE,
741CASE_IGNORE,
742};
743
744Const PARSE_T csi2_table[] =		/* CSI */
745{
746/*	NUL		SOH		STX		ETX	*/
747CASE_IGNORE,
748CASE_IGNORE,
749CASE_IGNORE,
750CASE_IGNORE,
751/*	EOT		ENQ		ACK		BEL	*/
752CASE_IGNORE,
753CASE_ENQ,
754CASE_IGNORE,
755CASE_BELL,
756/*	BS		HT		NL		VT	*/
757CASE_BS,
758CASE_TAB,
759CASE_VMOT,
760CASE_VMOT,
761/*	FF		CR		SO		SI	*/
762CASE_VMOT,
763CASE_CR,
764CASE_SO,
765CASE_SI,
766/*	DLE		DC1		DC2		DC3	*/
767CASE_IGNORE,
768CASE_IGNORE,
769CASE_IGNORE,
770CASE_IGNORE,
771/*	DC4		NAK		SYN		ETB	*/
772CASE_IGNORE,
773CASE_IGNORE,
774CASE_IGNORE,
775CASE_IGNORE,
776/*	CAN		EM		SUB		ESC	*/
777CASE_GROUND_STATE,
778CASE_IGNORE,
779CASE_GROUND_STATE,
780CASE_ESC,
781/*	FS		GS		RS		US	*/
782CASE_IGNORE,
783CASE_IGNORE,
784CASE_IGNORE,
785CASE_IGNORE,
786/*	SP		!		"		#	*/
787CASE_CSI_SPACE_STATE,
788CASE_CSI_EX_STATE,
789CASE_CSI_QUOTE_STATE,
790CASE_CSI_HASH_STATE,
791/*	$		%		&		'	*/
792CASE_CSI_DOLLAR_STATE,
793CASE_CSI_IGNORE,
794CASE_CSI_AMP_STATE,
795CASE_CSI_TICK_STATE,
796/*	(		)		*		+	*/
797CASE_CSI_IGNORE,
798CASE_CSI_IGNORE,
799CASE_CSI_STAR_STATE,
800CASE_CSI_IGNORE,	/* vt420 and vt520 */
801/*	,		-		.		/	*/
802CASE_CSI_COMMA_STATE,
803CASE_CSI_IGNORE,
804CASE_CSI_IGNORE,
805CASE_CSI_IGNORE,
806/*	0		1		2		3	*/
807CASE_ESC_DIGIT,
808CASE_ESC_DIGIT,
809CASE_ESC_DIGIT,
810CASE_ESC_DIGIT,
811/*	4		5		6		7	*/
812CASE_ESC_DIGIT,
813CASE_ESC_DIGIT,
814CASE_ESC_DIGIT,
815CASE_ESC_DIGIT,
816/*	8		9		:		;	*/
817CASE_ESC_DIGIT,
818CASE_ESC_DIGIT,
819CASE_ESC_COLON,
820CASE_ESC_SEMI,
821/*	<		=		>		?	*/
822CASE_CSI_IGNORE,
823CASE_CSI_IGNORE,
824CASE_CSI_IGNORE,
825CASE_CSI_IGNORE,
826/*	@		A		B		C	*/
827CASE_ICH,
828CASE_CUU,
829CASE_CUD,
830CASE_CUF,
831/*	D		E		F		G	*/
832CASE_CUB,
833CASE_CNL,
834CASE_CPL,
835CASE_HPA,
836/*	H		I		J		K	*/
837CASE_CUP,
838CASE_CHT,
839CASE_ED,
840CASE_EL,
841/*	L		M		N		O	*/
842CASE_IL,
843CASE_DL,
844CASE_GROUND_STATE,
845CASE_GROUND_STATE,
846/*	P		Q		R		S	*/
847CASE_DCH,
848CASE_GROUND_STATE,
849CASE_GROUND_STATE,
850CASE_SU,
851/*	T		U		V		W	*/
852CASE_TRACK_MOUSE,
853CASE_GROUND_STATE,	/* vt420:NP */
854CASE_GROUND_STATE,	/* vt420:PP */
855CASE_GROUND_STATE,
856/*	X		Y		Z		[	*/
857CASE_ECH,
858CASE_GROUND_STATE,
859CASE_CBT,
860CASE_GROUND_STATE,
861/*	\		]		^		_	*/
862CASE_GROUND_STATE,
863CASE_GROUND_STATE,
864CASE_SD,
865CASE_GROUND_STATE,
866/*	`		a		b		c	*/
867CASE_HPA,
868CASE_HPR,
869CASE_REP,
870CASE_DA1,
871/*	d		e		f		g	*/
872CASE_VPA,
873CASE_VPR,
874CASE_CUP,
875CASE_TBC,
876/*	h		i		j		k	*/
877CASE_SET,
878CASE_MC,
879CASE_GROUND_STATE,
880CASE_GROUND_STATE,
881/*	l		m		n		o	*/
882CASE_RST,
883CASE_SGR,
884CASE_CPR,
885CASE_GROUND_STATE,
886/*	p		q		r		s	*/
887CASE_GROUND_STATE,
888CASE_DECLL,
889CASE_DECSTBM,
890CASE_ANSI_SC,
891/*	t		u		v		w	*/
892CASE_XTERM_WINOPS,
893CASE_ANSI_RC,
894CASE_GROUND_STATE,
895CASE_GROUND_STATE,
896/*	x		y		z		{	*/
897CASE_DECREQTPARM,
898CASE_GROUND_STATE,
899CASE_GROUND_STATE,
900CASE_GROUND_STATE,
901/*	|		}		~		DEL	*/
902CASE_GROUND_STATE,
903CASE_GROUND_STATE,
904CASE_GROUND_STATE,	/* vt510:DECFNK */
905CASE_IGNORE,
906/*      0x80            0x81            0x82            0x83    */
907CASE_GROUND_STATE,
908CASE_GROUND_STATE,
909CASE_GROUND_STATE,
910CASE_GROUND_STATE,
911/*      0x84            0x85            0x86            0x87    */
912CASE_IND,
913CASE_NEL,
914CASE_GROUND_STATE,
915CASE_GROUND_STATE,
916/*      0x88            0x89            0x8a            0x8b    */
917CASE_HTS,
918CASE_GROUND_STATE,
919CASE_GROUND_STATE,
920CASE_GROUND_STATE,
921/*      0x8c            0x8d            0x8e            0x8f    */
922CASE_GROUND_STATE,
923CASE_RI,
924CASE_SS2,
925CASE_SS3,
926/*      0x90            0x91            0x92            0x93    */
927CASE_DCS,
928CASE_GROUND_STATE,
929CASE_GROUND_STATE,
930CASE_GROUND_STATE,
931/*      0x94            0x95            0x96            0x97    */
932CASE_GROUND_STATE,
933CASE_GROUND_STATE,
934CASE_SPA,
935CASE_EPA,
936/*      0x98            0x99            0x9a            0x9b    */
937CASE_SOS,
938CASE_GROUND_STATE,
939CASE_DECID,
940CASE_CSI_STATE,
941/*      0x9c            0x9d            0x9e            0x9f    */
942CASE_ST,
943CASE_OSC,
944CASE_PM,
945CASE_APC,
946/*      nobreakspace    exclamdown      cent            sterling        */
947CASE_CSI_SPACE_STATE,
948CASE_CSI_EX_STATE,
949CASE_CSI_QUOTE_STATE,
950CASE_CSI_HASH_STATE,
951/*      currency        yen             brokenbar       section         */
952CASE_CSI_DOLLAR_STATE,
953CASE_CSI_IGNORE,
954CASE_CSI_AMP_STATE,
955CASE_CSI_TICK_STATE,
956/*      diaeresis       copyright       ordfeminine     guillemotleft   */
957CASE_CSI_IGNORE,
958CASE_CSI_IGNORE,
959CASE_CSI_STAR_STATE,
960CASE_CSI_IGNORE,
961/*      notsign         hyphen          registered      macron          */
962CASE_CSI_COMMA_STATE,
963CASE_CSI_IGNORE,
964CASE_CSI_IGNORE,
965CASE_CSI_IGNORE,
966/*      degree          plusminus       twosuperior     threesuperior   */
967CASE_ESC_DIGIT,
968CASE_ESC_DIGIT,
969CASE_ESC_DIGIT,
970CASE_ESC_DIGIT,
971/*      acute           mu              paragraph       periodcentered  */
972CASE_ESC_DIGIT,
973CASE_ESC_DIGIT,
974CASE_ESC_DIGIT,
975CASE_ESC_DIGIT,
976/*      cedilla         onesuperior     masculine       guillemotright  */
977CASE_ESC_DIGIT,
978CASE_ESC_DIGIT,
979CASE_ESC_COLON,
980CASE_ESC_SEMI,
981/*      onequarter      onehalf         threequarters   questiondown    */
982CASE_CSI_IGNORE,
983CASE_CSI_IGNORE,
984CASE_CSI_IGNORE,
985CASE_CSI_IGNORE,
986/*      Agrave          Aacute          Acircumflex     Atilde          */
987CASE_ICH,
988CASE_CUU,
989CASE_CUD,
990CASE_CUF,
991/*      Adiaeresis      Aring           AE              Ccedilla        */
992CASE_CUB,
993CASE_CNL,
994CASE_CPL,
995CASE_HPA,
996/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
997CASE_CUP,
998CASE_CHT,
999CASE_ED,
1000CASE_EL,
1001/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1002CASE_IL,
1003CASE_DL,
1004CASE_GROUND_STATE,
1005CASE_GROUND_STATE,
1006/*      Eth             Ntilde          Ograve          Oacute          */
1007CASE_DCH,
1008CASE_GROUND_STATE,
1009CASE_GROUND_STATE,
1010CASE_SU,
1011/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1012CASE_TRACK_MOUSE,
1013CASE_GROUND_STATE,
1014CASE_GROUND_STATE,
1015CASE_GROUND_STATE,
1016/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1017CASE_ECH,
1018CASE_GROUND_STATE,
1019CASE_CBT,
1020CASE_GROUND_STATE,
1021/*      Udiaeresis      Yacute          Thorn           ssharp          */
1022CASE_GROUND_STATE,
1023CASE_GROUND_STATE,
1024CASE_SD,
1025CASE_GROUND_STATE,
1026/*      agrave          aacute          acircumflex     atilde          */
1027CASE_HPA,
1028CASE_HPR,
1029CASE_REP,
1030CASE_DA1,
1031/*      adiaeresis      aring           ae              ccedilla        */
1032CASE_VPA,
1033CASE_VPR,
1034CASE_CUP,
1035CASE_TBC,
1036/*      egrave          eacute          ecircumflex     ediaeresis      */
1037CASE_SET,
1038CASE_MC,
1039CASE_GROUND_STATE,
1040CASE_GROUND_STATE,
1041/*      igrave          iacute          icircumflex     idiaeresis      */
1042CASE_RST,
1043CASE_SGR,
1044CASE_CPR,
1045CASE_GROUND_STATE,
1046/*      eth             ntilde          ograve          oacute          */
1047CASE_GROUND_STATE,
1048CASE_DECLL,
1049CASE_DECSTBM,
1050CASE_ANSI_SC,
1051/*      ocircumflex     otilde          odiaeresis      division        */
1052CASE_XTERM_WINOPS,
1053CASE_ANSI_RC,
1054CASE_GROUND_STATE,
1055CASE_GROUND_STATE,
1056/*      oslash          ugrave          uacute          ucircumflex     */
1057CASE_DECREQTPARM,
1058CASE_GROUND_STATE,
1059CASE_GROUND_STATE,
1060CASE_GROUND_STATE,
1061/*      udiaeresis      yacute          thorn           ydiaeresis      */
1062CASE_GROUND_STATE,
1063CASE_GROUND_STATE,
1064CASE_GROUND_STATE,
1065CASE_IGNORE,
1066};
1067
1068Const PARSE_T csi_ex_table[] =		/* CSI ! */
1069{
1070/*	NUL		SOH		STX		ETX	*/
1071CASE_IGNORE,
1072CASE_IGNORE,
1073CASE_IGNORE,
1074CASE_IGNORE,
1075/*	EOT		ENQ		ACK		BEL	*/
1076CASE_IGNORE,
1077CASE_ENQ,
1078CASE_IGNORE,
1079CASE_BELL,
1080/*	BS		HT		NL		VT	*/
1081CASE_BS,
1082CASE_TAB,
1083CASE_VMOT,
1084CASE_VMOT,
1085/*	FF		CR		SO		SI	*/
1086CASE_VMOT,
1087CASE_CR,
1088CASE_SO,
1089CASE_SI,
1090/*	DLE		DC1		DC2		DC3	*/
1091CASE_IGNORE,
1092CASE_IGNORE,
1093CASE_IGNORE,
1094CASE_IGNORE,
1095/*	DC4		NAK		SYN		ETB	*/
1096CASE_IGNORE,
1097CASE_IGNORE,
1098CASE_IGNORE,
1099CASE_IGNORE,
1100/*	CAN		EM		SUB		ESC	*/
1101CASE_GROUND_STATE,
1102CASE_IGNORE,
1103CASE_GROUND_STATE,
1104CASE_ESC,
1105/*	FS		GS		RS		US	*/
1106CASE_IGNORE,
1107CASE_IGNORE,
1108CASE_IGNORE,
1109CASE_IGNORE,
1110/*	SP		!		"		#	*/
1111CASE_CSI_IGNORE,
1112CASE_CSI_IGNORE,
1113CASE_CSI_IGNORE,
1114CASE_CSI_IGNORE,
1115/*	$		%		&		'	*/
1116CASE_CSI_IGNORE,
1117CASE_CSI_IGNORE,
1118CASE_CSI_IGNORE,
1119CASE_CSI_IGNORE,
1120/*	(		)		*		+	*/
1121CASE_CSI_IGNORE,
1122CASE_CSI_IGNORE,
1123CASE_CSI_IGNORE,
1124CASE_CSI_IGNORE,
1125/*	,		-		.		/	*/
1126CASE_CSI_IGNORE,
1127CASE_CSI_IGNORE,
1128CASE_CSI_IGNORE,
1129CASE_CSI_IGNORE,
1130/*	0		1		2		3	*/
1131CASE_CSI_IGNORE,
1132CASE_CSI_IGNORE,
1133CASE_CSI_IGNORE,
1134CASE_CSI_IGNORE,
1135/*	4		5		6		7	*/
1136CASE_CSI_IGNORE,
1137CASE_CSI_IGNORE,
1138CASE_CSI_IGNORE,
1139CASE_CSI_IGNORE,
1140/*	8		9		:		;	*/
1141CASE_CSI_IGNORE,
1142CASE_CSI_IGNORE,
1143CASE_CSI_IGNORE,
1144CASE_CSI_IGNORE,
1145/*	<		=		>		?	*/
1146CASE_CSI_IGNORE,
1147CASE_CSI_IGNORE,
1148CASE_CSI_IGNORE,
1149CASE_CSI_IGNORE,
1150/*	@		A		B		C	*/
1151CASE_GROUND_STATE,
1152CASE_GROUND_STATE,
1153CASE_GROUND_STATE,
1154CASE_GROUND_STATE,
1155/*	D		E		F		G	*/
1156CASE_GROUND_STATE,
1157CASE_GROUND_STATE,
1158CASE_GROUND_STATE,
1159CASE_GROUND_STATE,
1160/*	H		I		J		K	*/
1161CASE_GROUND_STATE,
1162CASE_GROUND_STATE,
1163CASE_GROUND_STATE,
1164CASE_GROUND_STATE,
1165/*	L		M		N		O	*/
1166CASE_GROUND_STATE,
1167CASE_GROUND_STATE,
1168CASE_GROUND_STATE,
1169CASE_GROUND_STATE,
1170/*	P		Q		R		S	*/
1171CASE_GROUND_STATE,
1172CASE_GROUND_STATE,
1173CASE_GROUND_STATE,
1174CASE_GROUND_STATE,
1175/*	T		U		V		W	*/
1176CASE_GROUND_STATE,
1177CASE_GROUND_STATE,
1178CASE_GROUND_STATE,
1179CASE_GROUND_STATE,
1180/*	X		Y		Z		[	*/
1181CASE_GROUND_STATE,
1182CASE_GROUND_STATE,
1183CASE_GROUND_STATE,
1184CASE_GROUND_STATE,
1185/*	\		]		^		_	*/
1186CASE_GROUND_STATE,
1187CASE_GROUND_STATE,
1188CASE_GROUND_STATE,
1189CASE_GROUND_STATE,
1190/*	`		a		b		c	*/
1191CASE_GROUND_STATE,
1192CASE_GROUND_STATE,
1193CASE_GROUND_STATE,
1194CASE_GROUND_STATE,
1195/*	d		e		f		g	*/
1196CASE_GROUND_STATE,
1197CASE_GROUND_STATE,
1198CASE_GROUND_STATE,
1199CASE_GROUND_STATE,
1200/*	h		i		j		k	*/
1201CASE_GROUND_STATE,
1202CASE_GROUND_STATE,
1203CASE_GROUND_STATE,
1204CASE_GROUND_STATE,
1205/*	l		m		n		o	*/
1206CASE_GROUND_STATE,
1207CASE_GROUND_STATE,
1208CASE_GROUND_STATE,
1209CASE_GROUND_STATE,
1210/*	p		q		r		s	*/
1211CASE_DECSTR,
1212CASE_GROUND_STATE,
1213CASE_GROUND_STATE,
1214CASE_GROUND_STATE,
1215/*	t		u		v		w	*/
1216CASE_GROUND_STATE,
1217CASE_GROUND_STATE,
1218CASE_GROUND_STATE,
1219CASE_GROUND_STATE,
1220/*	x		y		z		{	*/
1221CASE_GROUND_STATE,
1222CASE_GROUND_STATE,
1223CASE_GROUND_STATE,
1224CASE_GROUND_STATE,
1225/*	|		}		~		DEL	*/
1226CASE_GROUND_STATE,
1227CASE_GROUND_STATE,
1228CASE_GROUND_STATE,
1229CASE_IGNORE,
1230/*      0x80            0x81            0x82            0x83    */
1231CASE_GROUND_STATE,
1232CASE_GROUND_STATE,
1233CASE_GROUND_STATE,
1234CASE_GROUND_STATE,
1235/*      0x84            0x85            0x86            0x87    */
1236CASE_IND,
1237CASE_NEL,
1238CASE_GROUND_STATE,
1239CASE_GROUND_STATE,
1240/*      0x88            0x89            0x8a            0x8b    */
1241CASE_HTS,
1242CASE_GROUND_STATE,
1243CASE_GROUND_STATE,
1244CASE_GROUND_STATE,
1245/*      0x8c            0x8d            0x8e            0x8f    */
1246CASE_GROUND_STATE,
1247CASE_RI,
1248CASE_SS2,
1249CASE_SS3,
1250/*      0x90            0x91            0x92            0x93    */
1251CASE_DCS,
1252CASE_GROUND_STATE,
1253CASE_GROUND_STATE,
1254CASE_GROUND_STATE,
1255/*      0x94            0x95            0x96            0x97    */
1256CASE_GROUND_STATE,
1257CASE_GROUND_STATE,
1258CASE_SPA,
1259CASE_EPA,
1260/*      0x98            0x99            0x9a            0x9b    */
1261CASE_SOS,
1262CASE_GROUND_STATE,
1263CASE_DECID,
1264CASE_CSI_STATE,
1265/*      0x9c            0x9d            0x9e            0x9f    */
1266CASE_ST,
1267CASE_OSC,
1268CASE_PM,
1269CASE_APC,
1270/*      nobreakspace    exclamdown      cent            sterling        */
1271CASE_CSI_IGNORE,
1272CASE_CSI_IGNORE,
1273CASE_CSI_IGNORE,
1274CASE_CSI_IGNORE,
1275/*      currency        yen             brokenbar       section         */
1276CASE_CSI_IGNORE,
1277CASE_CSI_IGNORE,
1278CASE_CSI_IGNORE,
1279CASE_CSI_IGNORE,
1280/*      diaeresis       copyright       ordfeminine     guillemotleft   */
1281CASE_CSI_IGNORE,
1282CASE_CSI_IGNORE,
1283CASE_CSI_IGNORE,
1284CASE_CSI_IGNORE,
1285/*      notsign         hyphen          registered      macron          */
1286CASE_CSI_IGNORE,
1287CASE_CSI_IGNORE,
1288CASE_CSI_IGNORE,
1289CASE_CSI_IGNORE,
1290/*      degree          plusminus       twosuperior     threesuperior   */
1291CASE_CSI_IGNORE,
1292CASE_CSI_IGNORE,
1293CASE_CSI_IGNORE,
1294CASE_CSI_IGNORE,
1295/*      acute           mu              paragraph       periodcentered  */
1296CASE_CSI_IGNORE,
1297CASE_CSI_IGNORE,
1298CASE_CSI_IGNORE,
1299CASE_CSI_IGNORE,
1300/*      cedilla         onesuperior     masculine       guillemotright  */
1301CASE_CSI_IGNORE,
1302CASE_CSI_IGNORE,
1303CASE_CSI_IGNORE,
1304CASE_CSI_IGNORE,
1305/*      onequarter      onehalf         threequarters   questiondown    */
1306CASE_CSI_IGNORE,
1307CASE_CSI_IGNORE,
1308CASE_CSI_IGNORE,
1309CASE_CSI_IGNORE,
1310/*      Agrave          Aacute          Acircumflex     Atilde          */
1311CASE_GROUND_STATE,
1312CASE_GROUND_STATE,
1313CASE_GROUND_STATE,
1314CASE_GROUND_STATE,
1315/*      Adiaeresis      Aring           AE              Ccedilla        */
1316CASE_GROUND_STATE,
1317CASE_GROUND_STATE,
1318CASE_GROUND_STATE,
1319CASE_GROUND_STATE,
1320/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1321CASE_GROUND_STATE,
1322CASE_GROUND_STATE,
1323CASE_GROUND_STATE,
1324CASE_GROUND_STATE,
1325/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1326CASE_GROUND_STATE,
1327CASE_GROUND_STATE,
1328CASE_GROUND_STATE,
1329CASE_GROUND_STATE,
1330/*      Eth             Ntilde          Ograve          Oacute          */
1331CASE_GROUND_STATE,
1332CASE_GROUND_STATE,
1333CASE_GROUND_STATE,
1334CASE_GROUND_STATE,
1335/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1336CASE_GROUND_STATE,
1337CASE_GROUND_STATE,
1338CASE_GROUND_STATE,
1339CASE_GROUND_STATE,
1340/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1341CASE_GROUND_STATE,
1342CASE_GROUND_STATE,
1343CASE_GROUND_STATE,
1344CASE_GROUND_STATE,
1345/*      Udiaeresis      Yacute          Thorn           ssharp          */
1346CASE_GROUND_STATE,
1347CASE_GROUND_STATE,
1348CASE_GROUND_STATE,
1349CASE_GROUND_STATE,
1350/*      agrave          aacute          acircumflex     atilde          */
1351CASE_GROUND_STATE,
1352CASE_GROUND_STATE,
1353CASE_GROUND_STATE,
1354CASE_GROUND_STATE,
1355/*      adiaeresis      aring           ae              ccedilla        */
1356CASE_GROUND_STATE,
1357CASE_GROUND_STATE,
1358CASE_GROUND_STATE,
1359CASE_GROUND_STATE,
1360/*      egrave          eacute          ecircumflex     ediaeresis      */
1361CASE_GROUND_STATE,
1362CASE_GROUND_STATE,
1363CASE_GROUND_STATE,
1364CASE_GROUND_STATE,
1365/*      igrave          iacute          icircumflex     idiaeresis      */
1366CASE_GROUND_STATE,
1367CASE_GROUND_STATE,
1368CASE_GROUND_STATE,
1369CASE_GROUND_STATE,
1370/*      eth             ntilde          ograve          oacute          */
1371CASE_DECSTR,
1372CASE_GROUND_STATE,
1373CASE_GROUND_STATE,
1374CASE_GROUND_STATE,
1375/*      ocircumflex     otilde          odiaeresis      division        */
1376CASE_GROUND_STATE,
1377CASE_GROUND_STATE,
1378CASE_GROUND_STATE,
1379CASE_GROUND_STATE,
1380/*      oslash          ugrave          uacute          ucircumflex     */
1381CASE_GROUND_STATE,
1382CASE_GROUND_STATE,
1383CASE_GROUND_STATE,
1384CASE_GROUND_STATE,
1385/*      udiaeresis      yacute          thorn           ydiaeresis      */
1386CASE_GROUND_STATE,
1387CASE_GROUND_STATE,
1388CASE_GROUND_STATE,
1389CASE_IGNORE,
1390};
1391
1392Const PARSE_T csi_quo_table[] =		/* CSI ... " */
1393{
1394/*	NUL		SOH		STX		ETX	*/
1395CASE_IGNORE,
1396CASE_IGNORE,
1397CASE_IGNORE,
1398CASE_IGNORE,
1399/*	EOT		ENQ		ACK		BEL	*/
1400CASE_IGNORE,
1401CASE_ENQ,
1402CASE_IGNORE,
1403CASE_BELL,
1404/*	BS		HT		NL		VT	*/
1405CASE_BS,
1406CASE_TAB,
1407CASE_VMOT,
1408CASE_VMOT,
1409/*	FF		CR		SO		SI	*/
1410CASE_VMOT,
1411CASE_CR,
1412CASE_SO,
1413CASE_SI,
1414/*	DLE		DC1		DC2		DC3	*/
1415CASE_IGNORE,
1416CASE_IGNORE,
1417CASE_IGNORE,
1418CASE_IGNORE,
1419/*	DC4		NAK		SYN		ETB	*/
1420CASE_IGNORE,
1421CASE_IGNORE,
1422CASE_IGNORE,
1423CASE_IGNORE,
1424/*	CAN		EM		SUB		ESC	*/
1425CASE_GROUND_STATE,
1426CASE_IGNORE,
1427CASE_GROUND_STATE,
1428CASE_ESC,
1429/*	FS		GS		RS		US	*/
1430CASE_IGNORE,
1431CASE_IGNORE,
1432CASE_IGNORE,
1433CASE_IGNORE,
1434/*	SP		!		"		#	*/
1435CASE_CSI_IGNORE,
1436CASE_CSI_IGNORE,
1437CASE_CSI_IGNORE,
1438CASE_CSI_IGNORE,
1439/*	$		%		&		'	*/
1440CASE_CSI_IGNORE,
1441CASE_CSI_IGNORE,
1442CASE_CSI_IGNORE,
1443CASE_CSI_IGNORE,
1444/*	(		)		*		+	*/
1445CASE_CSI_IGNORE,
1446CASE_CSI_IGNORE,
1447CASE_CSI_IGNORE,
1448CASE_CSI_IGNORE,
1449/*	,		-		.		/	*/
1450CASE_CSI_IGNORE,
1451CASE_CSI_IGNORE,
1452CASE_CSI_IGNORE,
1453CASE_CSI_IGNORE,
1454/*	0		1		2		3	*/
1455CASE_CSI_IGNORE,
1456CASE_CSI_IGNORE,
1457CASE_CSI_IGNORE,
1458CASE_CSI_IGNORE,
1459/*	4		5		6		7	*/
1460CASE_CSI_IGNORE,
1461CASE_CSI_IGNORE,
1462CASE_CSI_IGNORE,
1463CASE_CSI_IGNORE,
1464/*	8		9		:		;	*/
1465CASE_CSI_IGNORE,
1466CASE_CSI_IGNORE,
1467CASE_CSI_IGNORE,
1468CASE_CSI_IGNORE,
1469/*	<		=		>		?	*/
1470CASE_CSI_IGNORE,
1471CASE_CSI_IGNORE,
1472CASE_CSI_IGNORE,
1473CASE_CSI_IGNORE,
1474/*	@		A		B		C	*/
1475CASE_GROUND_STATE,
1476CASE_GROUND_STATE,
1477CASE_GROUND_STATE,
1478CASE_GROUND_STATE,
1479/*	D		E		F		G	*/
1480CASE_GROUND_STATE,
1481CASE_GROUND_STATE,
1482CASE_GROUND_STATE,
1483CASE_GROUND_STATE,
1484/*	H		I		J		K	*/
1485CASE_GROUND_STATE,
1486CASE_GROUND_STATE,
1487CASE_GROUND_STATE,
1488CASE_GROUND_STATE,
1489/*	L		M		N		O	*/
1490CASE_GROUND_STATE,
1491CASE_GROUND_STATE,
1492CASE_GROUND_STATE,
1493CASE_GROUND_STATE,
1494/*	P		Q		R		S	*/
1495CASE_GROUND_STATE,
1496CASE_GROUND_STATE,
1497CASE_GROUND_STATE,
1498CASE_GROUND_STATE,
1499/*	T		U		V		W	*/
1500CASE_GROUND_STATE,
1501CASE_GROUND_STATE,
1502CASE_GROUND_STATE,
1503CASE_GROUND_STATE,
1504/*	X		Y		Z		[	*/
1505CASE_GROUND_STATE,
1506CASE_GROUND_STATE,
1507CASE_GROUND_STATE,
1508CASE_GROUND_STATE,
1509/*	\		]		^		_	*/
1510CASE_GROUND_STATE,
1511CASE_GROUND_STATE,
1512CASE_GROUND_STATE,
1513CASE_GROUND_STATE,
1514/*	`		a		b		c	*/
1515CASE_GROUND_STATE,
1516CASE_GROUND_STATE,
1517CASE_GROUND_STATE,
1518CASE_GROUND_STATE,
1519/*	d		e		f		g	*/
1520CASE_GROUND_STATE,
1521CASE_GROUND_STATE,
1522CASE_GROUND_STATE,
1523CASE_GROUND_STATE,
1524/*	h		i		j		k	*/
1525CASE_GROUND_STATE,
1526CASE_GROUND_STATE,
1527CASE_GROUND_STATE,
1528CASE_GROUND_STATE,
1529/*	l		m		n		o	*/
1530CASE_GROUND_STATE,
1531CASE_GROUND_STATE,
1532CASE_GROUND_STATE,
1533CASE_GROUND_STATE,
1534/*	p		q		r		s	*/
1535CASE_DECSCL,
1536CASE_DECSCA,
1537CASE_GROUND_STATE,
1538CASE_GROUND_STATE,
1539/*	t		u		v		w	*/
1540CASE_GROUND_STATE,	/* vt510:DECSRFR */
1541CASE_GROUND_STATE,	/* vt510:DECSTRL */
1542CASE_DECRQDE,
1543CASE_GROUND_STATE,	/* vt420:DECRPDE */
1544/*	x		y		z		{	*/
1545CASE_GROUND_STATE,
1546CASE_GROUND_STATE,
1547CASE_GROUND_STATE,
1548CASE_GROUND_STATE,
1549/*	|		}		~		DEL	*/
1550CASE_GROUND_STATE,
1551CASE_GROUND_STATE,
1552CASE_GROUND_STATE,
1553CASE_IGNORE,
1554/*      0x80            0x81            0x82            0x83    */
1555CASE_GROUND_STATE,
1556CASE_GROUND_STATE,
1557CASE_GROUND_STATE,
1558CASE_GROUND_STATE,
1559/*      0x84            0x85            0x86            0x87    */
1560CASE_IND,
1561CASE_NEL,
1562CASE_GROUND_STATE,
1563CASE_GROUND_STATE,
1564/*      0x88            0x89            0x8a            0x8b    */
1565CASE_HTS,
1566CASE_GROUND_STATE,
1567CASE_GROUND_STATE,
1568CASE_GROUND_STATE,
1569/*      0x8c            0x8d            0x8e            0x8f    */
1570CASE_GROUND_STATE,
1571CASE_RI,
1572CASE_SS2,
1573CASE_SS3,
1574/*      0x90            0x91            0x92            0x93    */
1575CASE_DCS,
1576CASE_GROUND_STATE,
1577CASE_GROUND_STATE,
1578CASE_GROUND_STATE,
1579/*      0x94            0x95            0x96            0x97    */
1580CASE_GROUND_STATE,
1581CASE_GROUND_STATE,
1582CASE_SPA,
1583CASE_EPA,
1584/*      0x98            0x99            0x9a            0x9b    */
1585CASE_SOS,
1586CASE_GROUND_STATE,
1587CASE_DECID,
1588CASE_CSI_STATE,
1589/*      0x9c            0x9d            0x9e            0x9f    */
1590CASE_ST,
1591CASE_OSC,
1592CASE_PM,
1593CASE_APC,
1594/*      nobreakspace    exclamdown      cent            sterling        */
1595CASE_CSI_IGNORE,
1596CASE_CSI_IGNORE,
1597CASE_CSI_IGNORE,
1598CASE_CSI_IGNORE,
1599/*      currency        yen             brokenbar       section         */
1600CASE_CSI_IGNORE,
1601CASE_CSI_IGNORE,
1602CASE_CSI_IGNORE,
1603CASE_CSI_IGNORE,
1604/*      diaeresis       copyright       ordfeminine     guillemotleft   */
1605CASE_CSI_IGNORE,
1606CASE_CSI_IGNORE,
1607CASE_CSI_IGNORE,
1608CASE_CSI_IGNORE,
1609/*      notsign         hyphen          registered      macron          */
1610CASE_CSI_IGNORE,
1611CASE_CSI_IGNORE,
1612CASE_CSI_IGNORE,
1613CASE_CSI_IGNORE,
1614/*      degree          plusminus       twosuperior     threesuperior   */
1615CASE_CSI_IGNORE,
1616CASE_CSI_IGNORE,
1617CASE_CSI_IGNORE,
1618CASE_CSI_IGNORE,
1619/*      acute           mu              paragraph       periodcentered  */
1620CASE_CSI_IGNORE,
1621CASE_CSI_IGNORE,
1622CASE_CSI_IGNORE,
1623CASE_CSI_IGNORE,
1624/*      cedilla         onesuperior     masculine       guillemotright  */
1625CASE_CSI_IGNORE,
1626CASE_CSI_IGNORE,
1627CASE_CSI_IGNORE,
1628CASE_CSI_IGNORE,
1629/*      onequarter      onehalf         threequarters   questiondown    */
1630CASE_CSI_IGNORE,
1631CASE_CSI_IGNORE,
1632CASE_CSI_IGNORE,
1633CASE_CSI_IGNORE,
1634/*      Agrave          Aacute          Acircumflex     Atilde          */
1635CASE_GROUND_STATE,
1636CASE_GROUND_STATE,
1637CASE_GROUND_STATE,
1638CASE_GROUND_STATE,
1639/*      Adiaeresis      Aring           AE              Ccedilla        */
1640CASE_GROUND_STATE,
1641CASE_GROUND_STATE,
1642CASE_GROUND_STATE,
1643CASE_GROUND_STATE,
1644/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1645CASE_GROUND_STATE,
1646CASE_GROUND_STATE,
1647CASE_GROUND_STATE,
1648CASE_GROUND_STATE,
1649/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1650CASE_GROUND_STATE,
1651CASE_GROUND_STATE,
1652CASE_GROUND_STATE,
1653CASE_GROUND_STATE,
1654/*      Eth             Ntilde          Ograve          Oacute          */
1655CASE_GROUND_STATE,
1656CASE_GROUND_STATE,
1657CASE_GROUND_STATE,
1658CASE_GROUND_STATE,
1659/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1660CASE_GROUND_STATE,
1661CASE_GROUND_STATE,
1662CASE_GROUND_STATE,
1663CASE_GROUND_STATE,
1664/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1665CASE_GROUND_STATE,
1666CASE_GROUND_STATE,
1667CASE_GROUND_STATE,
1668CASE_GROUND_STATE,
1669/*      Udiaeresis      Yacute          Thorn           ssharp          */
1670CASE_GROUND_STATE,
1671CASE_GROUND_STATE,
1672CASE_GROUND_STATE,
1673CASE_GROUND_STATE,
1674/*      agrave          aacute          acircumflex     atilde          */
1675CASE_GROUND_STATE,
1676CASE_GROUND_STATE,
1677CASE_GROUND_STATE,
1678CASE_GROUND_STATE,
1679/*      adiaeresis      aring           ae              ccedilla        */
1680CASE_GROUND_STATE,
1681CASE_GROUND_STATE,
1682CASE_GROUND_STATE,
1683CASE_GROUND_STATE,
1684/*      egrave          eacute          ecircumflex     ediaeresis      */
1685CASE_GROUND_STATE,
1686CASE_GROUND_STATE,
1687CASE_GROUND_STATE,
1688CASE_GROUND_STATE,
1689/*      igrave          iacute          icircumflex     idiaeresis      */
1690CASE_GROUND_STATE,
1691CASE_GROUND_STATE,
1692CASE_GROUND_STATE,
1693CASE_GROUND_STATE,
1694/*      eth             ntilde          ograve          oacute          */
1695CASE_DECSCL,
1696CASE_DECSCA,
1697CASE_GROUND_STATE,
1698CASE_GROUND_STATE,
1699/*      ocircumflex     otilde          odiaeresis      division        */
1700CASE_GROUND_STATE,
1701CASE_GROUND_STATE,
1702CASE_DECRQDE,
1703CASE_GROUND_STATE,
1704/*      oslash          ugrave          uacute          ucircumflex     */
1705CASE_GROUND_STATE,
1706CASE_GROUND_STATE,
1707CASE_GROUND_STATE,
1708CASE_GROUND_STATE,
1709/*      udiaeresis      yacute          thorn           ydiaeresis      */
1710CASE_GROUND_STATE,
1711CASE_GROUND_STATE,
1712CASE_GROUND_STATE,
1713CASE_IGNORE,
1714};
1715
1716#if OPT_BLINK_CURS
1717Const PARSE_T csi_sp_table[] =		/* CSI ... SP */
1718{
1719/*	NUL		SOH		STX		ETX	*/
1720CASE_IGNORE,
1721CASE_IGNORE,
1722CASE_IGNORE,
1723CASE_IGNORE,
1724/*	EOT		ENQ		ACK		BEL	*/
1725CASE_IGNORE,
1726CASE_ENQ,
1727CASE_IGNORE,
1728CASE_BELL,
1729/*	BS		HT		NL		VT	*/
1730CASE_BS,
1731CASE_TAB,
1732CASE_VMOT,
1733CASE_VMOT,
1734/*	FF		CR		SO		SI	*/
1735CASE_VMOT,
1736CASE_CR,
1737CASE_SO,
1738CASE_SI,
1739/*	DLE		DC1		DC2		DC3	*/
1740CASE_IGNORE,
1741CASE_IGNORE,
1742CASE_IGNORE,
1743CASE_IGNORE,
1744/*	DC4		NAK		SYN		ETB	*/
1745CASE_IGNORE,
1746CASE_IGNORE,
1747CASE_IGNORE,
1748CASE_IGNORE,
1749/*	CAN		EM		SUB		ESC	*/
1750CASE_GROUND_STATE,
1751CASE_IGNORE,
1752CASE_GROUND_STATE,
1753CASE_ESC,
1754/*	FS		GS		RS		US	*/
1755CASE_IGNORE,
1756CASE_IGNORE,
1757CASE_IGNORE,
1758CASE_IGNORE,
1759/*	SP		!		"		#	*/
1760CASE_CSI_IGNORE,
1761CASE_CSI_IGNORE,
1762CASE_CSI_IGNORE,
1763CASE_CSI_IGNORE,
1764/*	$		%		&		'	*/
1765CASE_CSI_IGNORE,
1766CASE_CSI_IGNORE,
1767CASE_CSI_IGNORE,
1768CASE_CSI_IGNORE,
1769/*	(		)		*		+	*/
1770CASE_CSI_IGNORE,
1771CASE_CSI_IGNORE,
1772CASE_CSI_IGNORE,
1773CASE_CSI_IGNORE,
1774/*	,		-		.		/	*/
1775CASE_CSI_IGNORE,
1776CASE_CSI_IGNORE,
1777CASE_CSI_IGNORE,
1778CASE_CSI_IGNORE,
1779/*	0		1		2		3	*/
1780CASE_CSI_IGNORE,
1781CASE_CSI_IGNORE,
1782CASE_CSI_IGNORE,
1783CASE_CSI_IGNORE,
1784/*	4		5		6		7	*/
1785CASE_CSI_IGNORE,
1786CASE_CSI_IGNORE,
1787CASE_CSI_IGNORE,
1788CASE_CSI_IGNORE,
1789/*	8		9		:		;	*/
1790CASE_CSI_IGNORE,
1791CASE_CSI_IGNORE,
1792CASE_CSI_IGNORE,
1793CASE_CSI_IGNORE,
1794/*	<		=		>		?	*/
1795CASE_CSI_IGNORE,
1796CASE_CSI_IGNORE,
1797CASE_CSI_IGNORE,
1798CASE_CSI_IGNORE,
1799/*	@		A		B		C	*/
1800CASE_SL,
1801CASE_SR,
1802CASE_GROUND_STATE,
1803CASE_GROUND_STATE,
1804/*	D		E		F		G	*/
1805CASE_GROUND_STATE,
1806CASE_GROUND_STATE,
1807CASE_GROUND_STATE,
1808CASE_GROUND_STATE,
1809/*	H		I		J		K	*/
1810CASE_GROUND_STATE,
1811CASE_GROUND_STATE,
1812CASE_GROUND_STATE,
1813CASE_GROUND_STATE,
1814/*	L		M		N		O	*/
1815CASE_GROUND_STATE,
1816CASE_GROUND_STATE,
1817CASE_GROUND_STATE,
1818CASE_GROUND_STATE,
1819/*	P		Q		R		S	*/
1820CASE_GROUND_STATE,	/* vt510:PPA */
1821CASE_GROUND_STATE,	/* vt420:PPR */
1822CASE_GROUND_STATE,	/* vt510:PPB */
1823CASE_GROUND_STATE,
1824/*	T		U		V		W	*/
1825CASE_GROUND_STATE,
1826CASE_GROUND_STATE,
1827CASE_GROUND_STATE,
1828CASE_GROUND_STATE,
1829/*	X		Y		Z		[	*/
1830CASE_GROUND_STATE,
1831CASE_GROUND_STATE,
1832CASE_GROUND_STATE,
1833CASE_GROUND_STATE,
1834/*	\		]		^		_	*/
1835CASE_GROUND_STATE,
1836CASE_GROUND_STATE,
1837CASE_GROUND_STATE,
1838CASE_GROUND_STATE,
1839/*	`		a		b		c	*/
1840CASE_GROUND_STATE,
1841CASE_GROUND_STATE,
1842CASE_GROUND_STATE,
1843CASE_GROUND_STATE,
1844/*	d		e		f		g	*/
1845CASE_GROUND_STATE,
1846CASE_GROUND_STATE,
1847CASE_GROUND_STATE,
1848CASE_GROUND_STATE,
1849/*	h		i		j		k	*/
1850CASE_GROUND_STATE,
1851CASE_GROUND_STATE,
1852CASE_GROUND_STATE,
1853CASE_GROUND_STATE,
1854/*	l		m		n		o	*/
1855CASE_GROUND_STATE,
1856CASE_GROUND_STATE,
1857CASE_GROUND_STATE,
1858CASE_GROUND_STATE,
1859/*	p		q		r		s	*/
1860CASE_GROUND_STATE,	/* vt510:DECSSCLS */
1861CASE_DECSCUSR,
1862CASE_GROUND_STATE,	/* vt510:DECSKCV */
1863CASE_GROUND_STATE,
1864/*	t		u		v		w	*/
1865CASE_DECSWBV,
1866CASE_DECSMBV,
1867CASE_GROUND_STATE,	/* vt510:DECSLCK */
1868CASE_GROUND_STATE,
1869/*	x		y		z		{	*/
1870CASE_GROUND_STATE,
1871CASE_GROUND_STATE,
1872CASE_GROUND_STATE,
1873CASE_GROUND_STATE,
1874/*	|		}		~		DEL	*/
1875CASE_GROUND_STATE,
1876CASE_GROUND_STATE,	/* vt510:DECKBD */
1877CASE_GROUND_STATE,	/* vt510:DECTME */
1878CASE_IGNORE,
1879/*      0x80            0x81            0x82            0x83    */
1880CASE_GROUND_STATE,
1881CASE_GROUND_STATE,
1882CASE_GROUND_STATE,
1883CASE_GROUND_STATE,
1884/*      0x84            0x85            0x86            0x87    */
1885CASE_IND,
1886CASE_NEL,
1887CASE_GROUND_STATE,
1888CASE_GROUND_STATE,
1889/*      0x88            0x89            0x8a            0x8b    */
1890CASE_HTS,
1891CASE_GROUND_STATE,
1892CASE_GROUND_STATE,
1893CASE_GROUND_STATE,
1894/*      0x8c            0x8d            0x8e            0x8f    */
1895CASE_GROUND_STATE,
1896CASE_RI,
1897CASE_SS2,
1898CASE_SS3,
1899/*      0x90            0x91            0x92            0x93    */
1900CASE_DCS,
1901CASE_GROUND_STATE,
1902CASE_GROUND_STATE,
1903CASE_GROUND_STATE,
1904/*      0x94            0x95            0x96            0x97    */
1905CASE_GROUND_STATE,
1906CASE_GROUND_STATE,
1907CASE_SPA,
1908CASE_EPA,
1909/*      0x98            0x99            0x9a            0x9b    */
1910CASE_SOS,
1911CASE_GROUND_STATE,
1912CASE_DECID,
1913CASE_CSI_STATE,
1914/*      0x9c            0x9d            0x9e            0x9f    */
1915CASE_ST,
1916CASE_OSC,
1917CASE_PM,
1918CASE_APC,
1919/*      nobreakspace    exclamdown      cent            sterling        */
1920CASE_CSI_IGNORE,
1921CASE_CSI_IGNORE,
1922CASE_CSI_IGNORE,
1923CASE_CSI_IGNORE,
1924/*      currency        yen             brokenbar       section         */
1925CASE_CSI_IGNORE,
1926CASE_CSI_IGNORE,
1927CASE_CSI_IGNORE,
1928CASE_CSI_IGNORE,
1929/*      diaeresis       copyright       ordfeminine     guillemotleft   */
1930CASE_CSI_IGNORE,
1931CASE_CSI_IGNORE,
1932CASE_CSI_IGNORE,
1933CASE_CSI_IGNORE,
1934/*      notsign         hyphen          registered      macron          */
1935CASE_CSI_IGNORE,
1936CASE_CSI_IGNORE,
1937CASE_CSI_IGNORE,
1938CASE_CSI_IGNORE,
1939/*      degree          plusminus       twosuperior     threesuperior   */
1940CASE_CSI_IGNORE,
1941CASE_CSI_IGNORE,
1942CASE_CSI_IGNORE,
1943CASE_CSI_IGNORE,
1944/*      acute           mu              paragraph       periodcentered  */
1945CASE_CSI_IGNORE,
1946CASE_CSI_IGNORE,
1947CASE_CSI_IGNORE,
1948CASE_CSI_IGNORE,
1949/*      cedilla         onesuperior     masculine       guillemotright  */
1950CASE_CSI_IGNORE,
1951CASE_CSI_IGNORE,
1952CASE_CSI_IGNORE,
1953CASE_CSI_IGNORE,
1954/*      onequarter      onehalf         threequarters   questiondown    */
1955CASE_CSI_IGNORE,
1956CASE_CSI_IGNORE,
1957CASE_CSI_IGNORE,
1958CASE_CSI_IGNORE,
1959/*      Agrave          Aacute          Acircumflex     Atilde          */
1960CASE_SL,
1961CASE_SR,
1962CASE_GROUND_STATE,
1963CASE_GROUND_STATE,
1964/*      Adiaeresis      Aring           AE              Ccedilla        */
1965CASE_GROUND_STATE,
1966CASE_GROUND_STATE,
1967CASE_GROUND_STATE,
1968CASE_GROUND_STATE,
1969/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
1970CASE_GROUND_STATE,
1971CASE_GROUND_STATE,
1972CASE_GROUND_STATE,
1973CASE_GROUND_STATE,
1974/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
1975CASE_GROUND_STATE,
1976CASE_GROUND_STATE,
1977CASE_GROUND_STATE,
1978CASE_GROUND_STATE,
1979/*      Eth             Ntilde          Ograve          Oacute          */
1980CASE_GROUND_STATE,
1981CASE_GROUND_STATE,
1982CASE_GROUND_STATE,
1983CASE_GROUND_STATE,
1984/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
1985CASE_GROUND_STATE,
1986CASE_GROUND_STATE,
1987CASE_GROUND_STATE,
1988CASE_GROUND_STATE,
1989/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
1990CASE_GROUND_STATE,
1991CASE_GROUND_STATE,
1992CASE_GROUND_STATE,
1993CASE_GROUND_STATE,
1994/*      Udiaeresis      Yacute          Thorn           ssharp          */
1995CASE_GROUND_STATE,
1996CASE_GROUND_STATE,
1997CASE_GROUND_STATE,
1998CASE_GROUND_STATE,
1999/*      agrave          aacute          acircumflex     atilde          */
2000CASE_GROUND_STATE,
2001CASE_GROUND_STATE,
2002CASE_GROUND_STATE,
2003CASE_GROUND_STATE,
2004/*      adiaeresis      aring           ae              ccedilla        */
2005CASE_GROUND_STATE,
2006CASE_GROUND_STATE,
2007CASE_GROUND_STATE,
2008CASE_GROUND_STATE,
2009/*      egrave          eacute          ecircumflex     ediaeresis      */
2010CASE_GROUND_STATE,
2011CASE_GROUND_STATE,
2012CASE_GROUND_STATE,
2013CASE_GROUND_STATE,
2014/*      igrave          iacute          icircumflex     idiaeresis      */
2015CASE_GROUND_STATE,
2016CASE_GROUND_STATE,
2017CASE_GROUND_STATE,
2018CASE_GROUND_STATE,
2019/*      eth             ntilde          ograve          oacute          */
2020CASE_GROUND_STATE,
2021CASE_DECSCUSR,
2022CASE_GROUND_STATE,
2023CASE_GROUND_STATE,
2024/*      ocircumflex     otilde          odiaeresis      division        */
2025CASE_DECSWBV,
2026CASE_DECSMBV,
2027CASE_GROUND_STATE,
2028CASE_GROUND_STATE,
2029/*      oslash          ugrave          uacute          ucircumflex     */
2030CASE_GROUND_STATE,
2031CASE_GROUND_STATE,
2032CASE_GROUND_STATE,
2033CASE_GROUND_STATE,
2034/*      udiaeresis      yacute          thorn           ydiaeresis      */
2035CASE_GROUND_STATE,
2036CASE_GROUND_STATE,
2037CASE_GROUND_STATE,
2038CASE_IGNORE,
2039};
2040#endif
2041
2042Const PARSE_T csi_tick_table[] =	/* CSI ... ' */
2043{
2044/*	NUL		SOH		STX		ETX	*/
2045CASE_IGNORE,
2046CASE_IGNORE,
2047CASE_IGNORE,
2048CASE_IGNORE,
2049/*	EOT		ENQ		ACK		BEL	*/
2050CASE_IGNORE,
2051CASE_ENQ,
2052CASE_IGNORE,
2053CASE_BELL,
2054/*	BS		HT		NL		VT	*/
2055CASE_BS,
2056CASE_TAB,
2057CASE_VMOT,
2058CASE_VMOT,
2059/*	FF		CR		SO		SI	*/
2060CASE_VMOT,
2061CASE_CR,
2062CASE_SO,
2063CASE_SI,
2064/*	DLE		DC1		DC2		DC3	*/
2065CASE_IGNORE,
2066CASE_IGNORE,
2067CASE_IGNORE,
2068CASE_IGNORE,
2069/*	DC4		NAK		SYN		ETB	*/
2070CASE_IGNORE,
2071CASE_IGNORE,
2072CASE_IGNORE,
2073CASE_IGNORE,
2074/*	CAN		EM		SUB		ESC	*/
2075CASE_GROUND_STATE,
2076CASE_IGNORE,
2077CASE_GROUND_STATE,
2078CASE_ESC,
2079/*	FS		GS		RS		US	*/
2080CASE_IGNORE,
2081CASE_IGNORE,
2082CASE_IGNORE,
2083CASE_IGNORE,
2084/*	SP		!		"		#	*/
2085CASE_CSI_IGNORE,
2086CASE_CSI_IGNORE,
2087CASE_CSI_IGNORE,
2088CASE_CSI_IGNORE,
2089/*	$		%		&		'	*/
2090CASE_CSI_IGNORE,
2091CASE_CSI_IGNORE,
2092CASE_CSI_IGNORE,
2093CASE_CSI_IGNORE,
2094/*	(		)		*		+	*/
2095CASE_CSI_IGNORE,
2096CASE_CSI_IGNORE,
2097CASE_CSI_IGNORE,
2098CASE_CSI_IGNORE,
2099/*	,		-		.		/	*/
2100CASE_CSI_IGNORE,
2101CASE_CSI_IGNORE,
2102CASE_CSI_IGNORE,
2103CASE_CSI_IGNORE,
2104/*	0		1		2		3	*/
2105CASE_CSI_IGNORE,
2106CASE_CSI_IGNORE,
2107CASE_CSI_IGNORE,
2108CASE_CSI_IGNORE,
2109/*	4		5		6		7	*/
2110CASE_CSI_IGNORE,
2111CASE_CSI_IGNORE,
2112CASE_CSI_IGNORE,
2113CASE_CSI_IGNORE,
2114/*	8		9		:		;	*/
2115CASE_CSI_IGNORE,
2116CASE_CSI_IGNORE,
2117CASE_CSI_IGNORE,
2118CASE_CSI_IGNORE,
2119/*	<		=		>		?	*/
2120CASE_CSI_IGNORE,
2121CASE_CSI_IGNORE,
2122CASE_CSI_IGNORE,
2123CASE_CSI_IGNORE,
2124/*	@		A		B		C	*/
2125CASE_GROUND_STATE,
2126CASE_GROUND_STATE,
2127CASE_GROUND_STATE,
2128CASE_GROUND_STATE,
2129/*	D		E		F		G	*/
2130CASE_GROUND_STATE,
2131CASE_GROUND_STATE,
2132CASE_GROUND_STATE,
2133CASE_GROUND_STATE,
2134/*	H		I		J		K	*/
2135CASE_GROUND_STATE,
2136CASE_GROUND_STATE,
2137CASE_GROUND_STATE,
2138CASE_GROUND_STATE,
2139/*	L		M		N		O	*/
2140CASE_GROUND_STATE,
2141CASE_GROUND_STATE,
2142CASE_GROUND_STATE,
2143CASE_GROUND_STATE,
2144/*	P		Q		R		S	*/
2145CASE_GROUND_STATE,
2146CASE_GROUND_STATE,
2147CASE_GROUND_STATE,
2148CASE_GROUND_STATE,
2149/*	T		U		V		W	*/
2150CASE_GROUND_STATE,
2151CASE_GROUND_STATE,
2152CASE_GROUND_STATE,
2153CASE_GROUND_STATE,
2154/*	X		Y		Z		[	*/
2155CASE_GROUND_STATE,
2156CASE_GROUND_STATE,
2157CASE_GROUND_STATE,
2158CASE_GROUND_STATE,
2159/*	\		]		^		_	*/
2160CASE_GROUND_STATE,
2161CASE_GROUND_STATE,
2162CASE_GROUND_STATE,
2163CASE_GROUND_STATE,
2164/*	`		a		b		c	*/
2165CASE_GROUND_STATE,
2166CASE_GROUND_STATE,
2167CASE_GROUND_STATE,
2168CASE_GROUND_STATE,
2169/*	d		e		f		g	*/
2170CASE_GROUND_STATE,
2171CASE_GROUND_STATE,
2172CASE_GROUND_STATE,
2173CASE_GROUND_STATE,
2174/*	h		i		j		k	*/
2175CASE_GROUND_STATE,
2176CASE_GROUND_STATE,
2177CASE_GROUND_STATE,
2178CASE_GROUND_STATE,
2179/*	l		m		n		o	*/
2180CASE_GROUND_STATE,
2181CASE_GROUND_STATE,
2182CASE_GROUND_STATE,
2183CASE_GROUND_STATE,
2184/*	p		q		r		s	*/
2185CASE_GROUND_STATE,
2186CASE_GROUND_STATE,
2187CASE_GROUND_STATE,
2188CASE_GROUND_STATE,
2189/*	t		u		v		w	*/
2190CASE_GROUND_STATE,
2191CASE_GROUND_STATE,
2192CASE_GROUND_STATE,
2193CASE_DECEFR,
2194/*	x		y		z		{	*/
2195CASE_GROUND_STATE,
2196CASE_GROUND_STATE,
2197CASE_DECELR,
2198CASE_DECSLE,
2199/*	|		}		~		DEL	*/
2200CASE_DECRQLP,
2201CASE_DECIC,
2202CASE_DECDC,
2203CASE_IGNORE,
2204/*      0x80            0x81            0x82            0x83    */
2205CASE_GROUND_STATE,
2206CASE_GROUND_STATE,
2207CASE_GROUND_STATE,
2208CASE_GROUND_STATE,
2209/*      0x84            0x85            0x86            0x87    */
2210CASE_IND,
2211CASE_NEL,
2212CASE_GROUND_STATE,
2213CASE_GROUND_STATE,
2214/*      0x88            0x89            0x8a            0x8b    */
2215CASE_HTS,
2216CASE_GROUND_STATE,
2217CASE_GROUND_STATE,
2218CASE_GROUND_STATE,
2219/*      0x8c            0x8d            0x8e            0x8f    */
2220CASE_GROUND_STATE,
2221CASE_RI,
2222CASE_SS2,
2223CASE_SS3,
2224/*      0x90            0x91            0x92            0x93    */
2225CASE_DCS,
2226CASE_GROUND_STATE,
2227CASE_GROUND_STATE,
2228CASE_GROUND_STATE,
2229/*      0x94            0x95            0x96            0x97    */
2230CASE_GROUND_STATE,
2231CASE_GROUND_STATE,
2232CASE_SPA,
2233CASE_EPA,
2234/*      0x98            0x99            0x9a            0x9b    */
2235CASE_SOS,
2236CASE_GROUND_STATE,
2237CASE_DECID,
2238CASE_CSI_STATE,
2239/*      0x9c            0x9d            0x9e            0x9f    */
2240CASE_ST,
2241CASE_OSC,
2242CASE_PM,
2243CASE_APC,
2244/*	nobreakspace	exclamdown	cent		sterling	*/
2245CASE_CSI_IGNORE,
2246CASE_CSI_IGNORE,
2247CASE_CSI_IGNORE,
2248CASE_CSI_IGNORE,
2249/*	currency	yen		brokenbar	section		*/
2250CASE_CSI_IGNORE,
2251CASE_CSI_IGNORE,
2252CASE_CSI_IGNORE,
2253CASE_CSI_IGNORE,
2254/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
2255CASE_CSI_IGNORE,
2256CASE_CSI_IGNORE,
2257CASE_CSI_IGNORE,
2258CASE_CSI_IGNORE,
2259/*	notsign		hyphen		registered	macron		*/
2260CASE_CSI_IGNORE,
2261CASE_CSI_IGNORE,
2262CASE_CSI_IGNORE,
2263CASE_CSI_IGNORE,
2264/*	degree		plusminus	twosuperior	threesuperior	*/
2265CASE_CSI_IGNORE,
2266CASE_CSI_IGNORE,
2267CASE_CSI_IGNORE,
2268CASE_CSI_IGNORE,
2269/*	acute		mu		paragraph	periodcentered	*/
2270CASE_CSI_IGNORE,
2271CASE_CSI_IGNORE,
2272CASE_CSI_IGNORE,
2273CASE_CSI_IGNORE,
2274/*	cedilla		onesuperior	masculine	guillemotright	*/
2275CASE_CSI_IGNORE,
2276CASE_CSI_IGNORE,
2277CASE_CSI_IGNORE,
2278CASE_CSI_IGNORE,
2279/*	onequarter	onehalf		threequarters	questiondown	*/
2280CASE_CSI_IGNORE,
2281CASE_CSI_IGNORE,
2282CASE_CSI_IGNORE,
2283CASE_CSI_IGNORE,
2284/*	Agrave		Aacute		Acircumflex	Atilde		*/
2285CASE_GROUND_STATE,
2286CASE_GROUND_STATE,
2287CASE_GROUND_STATE,
2288CASE_GROUND_STATE,
2289/*	Adiaeresis	Aring		AE		Ccedilla	*/
2290CASE_GROUND_STATE,
2291CASE_GROUND_STATE,
2292CASE_GROUND_STATE,
2293CASE_GROUND_STATE,
2294/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
2295CASE_GROUND_STATE,
2296CASE_GROUND_STATE,
2297CASE_GROUND_STATE,
2298CASE_GROUND_STATE,
2299/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
2300CASE_GROUND_STATE,
2301CASE_GROUND_STATE,
2302CASE_GROUND_STATE,
2303CASE_GROUND_STATE,
2304/*	Eth		Ntilde		Ograve		Oacute		*/
2305CASE_GROUND_STATE,
2306CASE_GROUND_STATE,
2307CASE_GROUND_STATE,
2308CASE_GROUND_STATE,
2309/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
2310CASE_GROUND_STATE,
2311CASE_GROUND_STATE,
2312CASE_GROUND_STATE,
2313CASE_GROUND_STATE,
2314/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
2315CASE_GROUND_STATE,
2316CASE_GROUND_STATE,
2317CASE_GROUND_STATE,
2318CASE_GROUND_STATE,
2319/*	Udiaeresis	Yacute		Thorn		ssharp		*/
2320CASE_GROUND_STATE,
2321CASE_GROUND_STATE,
2322CASE_GROUND_STATE,
2323CASE_GROUND_STATE,
2324/*	agrave		aacute		acircumflex	atilde		*/
2325CASE_GROUND_STATE,
2326CASE_GROUND_STATE,
2327CASE_GROUND_STATE,
2328CASE_GROUND_STATE,
2329/*	adiaeresis	aring		ae		ccedilla	*/
2330CASE_GROUND_STATE,
2331CASE_GROUND_STATE,
2332CASE_GROUND_STATE,
2333CASE_GROUND_STATE,
2334/*	egrave		eacute		ecircumflex	ediaeresis	*/
2335CASE_GROUND_STATE,
2336CASE_GROUND_STATE,
2337CASE_GROUND_STATE,
2338CASE_GROUND_STATE,
2339/*	igrave		iacute		icircumflex	idiaeresis	*/
2340CASE_GROUND_STATE,
2341CASE_GROUND_STATE,
2342CASE_GROUND_STATE,
2343CASE_GROUND_STATE,
2344/*	eth		ntilde		ograve		oacute		*/
2345CASE_GROUND_STATE,
2346CASE_GROUND_STATE,
2347CASE_GROUND_STATE,
2348CASE_GROUND_STATE,
2349/*	ocircumflex	otilde		odiaeresis	division	*/
2350CASE_GROUND_STATE,
2351CASE_GROUND_STATE,
2352CASE_GROUND_STATE,
2353CASE_DECEFR,
2354/*	oslash		ugrave		uacute		ucircumflex	*/
2355CASE_GROUND_STATE,
2356CASE_GROUND_STATE,
2357CASE_DECELR,
2358CASE_DECSLE,
2359/*	udiaeresis	yacute		thorn		ydiaeresis	*/
2360CASE_DECRQLP,
2361CASE_DECIC,
2362CASE_DECDC,
2363CASE_IGNORE,
2364};
2365
2366#if OPT_XTERM_SGR
2367Const PARSE_T csi_hash_table[] =	/* CSI ... # */
2368{
2369/*	NUL		SOH		STX		ETX	*/
2370CASE_IGNORE,
2371CASE_IGNORE,
2372CASE_IGNORE,
2373CASE_IGNORE,
2374/*	EOT		ENQ		ACK		BEL	*/
2375CASE_IGNORE,
2376CASE_ENQ,
2377CASE_IGNORE,
2378CASE_BELL,
2379/*	BS		HT		NL		VT	*/
2380CASE_BS,
2381CASE_TAB,
2382CASE_VMOT,
2383CASE_VMOT,
2384/*	FF		CR		SO		SI	*/
2385CASE_VMOT,
2386CASE_CR,
2387CASE_SO,
2388CASE_SI,
2389/*	DLE		DC1		DC2		DC3	*/
2390CASE_IGNORE,
2391CASE_IGNORE,
2392CASE_IGNORE,
2393CASE_IGNORE,
2394/*	DC4		NAK		SYN		ETB	*/
2395CASE_IGNORE,
2396CASE_IGNORE,
2397CASE_IGNORE,
2398CASE_IGNORE,
2399/*	CAN		EM		SUB		ESC	*/
2400CASE_GROUND_STATE,
2401CASE_IGNORE,
2402CASE_GROUND_STATE,
2403CASE_ESC,
2404/*	FS		GS		RS		US	*/
2405CASE_IGNORE,
2406CASE_IGNORE,
2407CASE_IGNORE,
2408CASE_IGNORE,
2409/*	SP		!		"		#	*/
2410CASE_CSI_IGNORE,
2411CASE_CSI_IGNORE,
2412CASE_CSI_IGNORE,
2413CASE_CSI_IGNORE,
2414/*	$		%		&		'	*/
2415CASE_CSI_IGNORE,
2416CASE_CSI_IGNORE,
2417CASE_CSI_IGNORE,
2418CASE_CSI_IGNORE,
2419/*	(		)		*		+	*/
2420CASE_CSI_IGNORE,
2421CASE_CSI_IGNORE,
2422CASE_CSI_IGNORE,
2423CASE_CSI_IGNORE,
2424/*	,		-		.		/	*/
2425CASE_CSI_IGNORE,
2426CASE_CSI_IGNORE,
2427CASE_CSI_IGNORE,
2428CASE_CSI_IGNORE,
2429/*	0		1		2		3	*/
2430CASE_ESC_DIGIT,
2431CASE_ESC_DIGIT,
2432CASE_ESC_DIGIT,
2433CASE_ESC_DIGIT,
2434/*	4		5		6		7	*/
2435CASE_ESC_DIGIT,
2436CASE_ESC_DIGIT,
2437CASE_ESC_DIGIT,
2438CASE_ESC_DIGIT,
2439/*	8		9		:		;	*/
2440CASE_ESC_DIGIT,
2441CASE_ESC_DIGIT,
2442CASE_ESC_DIGIT,
2443CASE_ESC_DIGIT,
2444/*	<		=		>		?	*/
2445CASE_CSI_IGNORE,
2446CASE_CSI_IGNORE,
2447CASE_CSI_IGNORE,
2448CASE_CSI_IGNORE,
2449/*	@		A		B		C	*/
2450CASE_GROUND_STATE,
2451CASE_GROUND_STATE,
2452CASE_GROUND_STATE,
2453CASE_GROUND_STATE,
2454/*	D		E		F		G	*/
2455CASE_GROUND_STATE,
2456CASE_GROUND_STATE,
2457CASE_GROUND_STATE,
2458CASE_GROUND_STATE,
2459/*	H		I		J		K	*/
2460CASE_GROUND_STATE,
2461CASE_GROUND_STATE,
2462CASE_GROUND_STATE,
2463CASE_GROUND_STATE,
2464/*	L		M		N		O	*/
2465CASE_GROUND_STATE,
2466CASE_GROUND_STATE,
2467CASE_GROUND_STATE,
2468CASE_GROUND_STATE,
2469/*	P		Q		R		S	*/
2470CASE_XTERM_PUSH_COLORS,
2471CASE_XTERM_POP_COLORS,
2472CASE_XTERM_REPORT_COLORS,
2473CASE_GROUND_STATE,
2474/*	T		U		V		W	*/
2475CASE_GROUND_STATE,
2476CASE_GROUND_STATE,
2477CASE_GROUND_STATE,
2478CASE_GROUND_STATE,
2479/*	X		Y		Z		[	*/
2480CASE_GROUND_STATE,
2481CASE_GROUND_STATE,
2482CASE_GROUND_STATE,
2483CASE_GROUND_STATE,
2484/*	\		]		^		_	*/
2485CASE_GROUND_STATE,
2486CASE_GROUND_STATE,
2487CASE_GROUND_STATE,
2488CASE_GROUND_STATE,
2489/*	`		a		b		c	*/
2490CASE_GROUND_STATE,
2491CASE_GROUND_STATE,
2492CASE_GROUND_STATE,
2493CASE_GROUND_STATE,
2494/*	d		e		f		g	*/
2495CASE_GROUND_STATE,
2496CASE_GROUND_STATE,
2497CASE_GROUND_STATE,
2498CASE_GROUND_STATE,
2499/*	h		i		j		k	*/
2500CASE_GROUND_STATE,
2501CASE_GROUND_STATE,
2502CASE_GROUND_STATE,
2503CASE_GROUND_STATE,
2504/*	l		m		n		o	*/
2505CASE_GROUND_STATE,
2506CASE_GROUND_STATE,
2507CASE_GROUND_STATE,
2508CASE_GROUND_STATE,
2509/*	p		q		r		s	*/
2510CASE_XTERM_PUSH_SGR,
2511CASE_XTERM_POP_SGR,
2512CASE_GROUND_STATE,
2513CASE_GROUND_STATE,
2514/*	t		u		v		w	*/
2515CASE_GROUND_STATE,
2516CASE_GROUND_STATE,
2517CASE_GROUND_STATE,
2518CASE_GROUND_STATE,
2519/*	x		y		z		{	*/
2520CASE_GROUND_STATE,
2521CASE_XTERM_CHECKSUM,
2522CASE_GROUND_STATE,
2523CASE_XTERM_PUSH_SGR,
2524/*	|		}		~		DEL	*/
2525CASE_XTERM_REPORT_SGR,
2526CASE_XTERM_POP_SGR,
2527CASE_GROUND_STATE,
2528CASE_IGNORE,
2529/*      0x80            0x81            0x82            0x83    */
2530CASE_GROUND_STATE,
2531CASE_GROUND_STATE,
2532CASE_GROUND_STATE,
2533CASE_GROUND_STATE,
2534/*      0x84            0x85            0x86            0x87    */
2535CASE_IND,
2536CASE_NEL,
2537CASE_GROUND_STATE,
2538CASE_GROUND_STATE,
2539/*      0x88            0x89            0x8a            0x8b    */
2540CASE_HTS,
2541CASE_GROUND_STATE,
2542CASE_GROUND_STATE,
2543CASE_GROUND_STATE,
2544/*      0x8c            0x8d            0x8e            0x8f    */
2545CASE_GROUND_STATE,
2546CASE_RI,
2547CASE_SS2,
2548CASE_SS3,
2549/*      0x90            0x91            0x92            0x93    */
2550CASE_DCS,
2551CASE_GROUND_STATE,
2552CASE_GROUND_STATE,
2553CASE_GROUND_STATE,
2554/*      0x94            0x95            0x96            0x97    */
2555CASE_GROUND_STATE,
2556CASE_GROUND_STATE,
2557CASE_SPA,
2558CASE_EPA,
2559/*      0x98            0x99            0x9a            0x9b    */
2560CASE_SOS,
2561CASE_GROUND_STATE,
2562CASE_DECID,
2563CASE_CSI_STATE,
2564/*      0x9c            0x9d            0x9e            0x9f    */
2565CASE_ST,
2566CASE_OSC,
2567CASE_PM,
2568CASE_APC,
2569/*	nobreakspace	exclamdown	cent		sterling	*/
2570CASE_CSI_IGNORE,
2571CASE_CSI_IGNORE,
2572CASE_CSI_IGNORE,
2573CASE_CSI_IGNORE,
2574/*	currency	yen		brokenbar	section		*/
2575CASE_CSI_IGNORE,
2576CASE_CSI_IGNORE,
2577CASE_CSI_IGNORE,
2578CASE_CSI_IGNORE,
2579/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
2580CASE_CSI_IGNORE,
2581CASE_CSI_IGNORE,
2582CASE_CSI_IGNORE,
2583CASE_CSI_IGNORE,
2584/*	notsign		hyphen		registered	macron		*/
2585CASE_CSI_IGNORE,
2586CASE_CSI_IGNORE,
2587CASE_CSI_IGNORE,
2588CASE_CSI_IGNORE,
2589/*	degree		plusminus	twosuperior	threesuperior	*/
2590CASE_ESC_DIGIT,
2591CASE_ESC_DIGIT,
2592CASE_ESC_DIGIT,
2593CASE_ESC_DIGIT,
2594/*	acute		mu		paragraph	periodcentered	*/
2595CASE_ESC_DIGIT,
2596CASE_ESC_DIGIT,
2597CASE_ESC_DIGIT,
2598CASE_ESC_DIGIT,
2599/*	cedilla		onesuperior	masculine	guillemotright	*/
2600CASE_ESC_DIGIT,
2601CASE_ESC_DIGIT,
2602CASE_ESC_DIGIT,
2603CASE_ESC_DIGIT,
2604/*	onequarter	onehalf		threequarters	questiondown	*/
2605CASE_CSI_IGNORE,
2606CASE_CSI_IGNORE,
2607CASE_CSI_IGNORE,
2608CASE_CSI_IGNORE,
2609/*	Agrave		Aacute		Acircumflex	Atilde		*/
2610CASE_GROUND_STATE,
2611CASE_GROUND_STATE,
2612CASE_GROUND_STATE,
2613CASE_GROUND_STATE,
2614/*	Adiaeresis	Aring		AE		Ccedilla	*/
2615CASE_GROUND_STATE,
2616CASE_GROUND_STATE,
2617CASE_GROUND_STATE,
2618CASE_GROUND_STATE,
2619/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
2620CASE_GROUND_STATE,
2621CASE_GROUND_STATE,
2622CASE_GROUND_STATE,
2623CASE_GROUND_STATE,
2624/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
2625CASE_GROUND_STATE,
2626CASE_GROUND_STATE,
2627CASE_GROUND_STATE,
2628CASE_GROUND_STATE,
2629/*	Eth		Ntilde		Ograve		Oacute		*/
2630CASE_XTERM_PUSH_COLORS,
2631CASE_XTERM_POP_COLORS,
2632CASE_XTERM_REPORT_COLORS,
2633CASE_GROUND_STATE,
2634/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
2635CASE_GROUND_STATE,
2636CASE_GROUND_STATE,
2637CASE_GROUND_STATE,
2638CASE_GROUND_STATE,
2639/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
2640CASE_GROUND_STATE,
2641CASE_GROUND_STATE,
2642CASE_GROUND_STATE,
2643CASE_GROUND_STATE,
2644/*	Udiaeresis	Yacute		Thorn		ssharp		*/
2645CASE_GROUND_STATE,
2646CASE_GROUND_STATE,
2647CASE_GROUND_STATE,
2648CASE_GROUND_STATE,
2649/*	agrave		aacute		acircumflex	atilde		*/
2650CASE_GROUND_STATE,
2651CASE_GROUND_STATE,
2652CASE_GROUND_STATE,
2653CASE_GROUND_STATE,
2654/*	adiaeresis	aring		ae		ccedilla	*/
2655CASE_GROUND_STATE,
2656CASE_GROUND_STATE,
2657CASE_GROUND_STATE,
2658CASE_GROUND_STATE,
2659/*	egrave		eacute		ecircumflex	ediaeresis	*/
2660CASE_GROUND_STATE,
2661CASE_GROUND_STATE,
2662CASE_GROUND_STATE,
2663CASE_GROUND_STATE,
2664/*	igrave		iacute		icircumflex	idiaeresis	*/
2665CASE_GROUND_STATE,
2666CASE_GROUND_STATE,
2667CASE_GROUND_STATE,
2668CASE_GROUND_STATE,
2669/*	eth		ntilde		ograve		oacute		*/
2670CASE_XTERM_PUSH_SGR,
2671CASE_XTERM_POP_SGR,
2672CASE_GROUND_STATE,
2673CASE_GROUND_STATE,
2674/*	ocircumflex	otilde		odiaeresis	division	*/
2675CASE_GROUND_STATE,
2676CASE_GROUND_STATE,
2677CASE_GROUND_STATE,
2678CASE_GROUND_STATE,
2679/*	oslash		ugrave		uacute		ucircumflex	*/
2680CASE_GROUND_STATE,
2681CASE_XTERM_CHECKSUM,
2682CASE_GROUND_STATE,
2683CASE_XTERM_PUSH_SGR,
2684/*	udiaeresis	yacute		thorn		ydiaeresis	*/
2685CASE_XTERM_REPORT_SGR,
2686CASE_XTERM_POP_SGR,
2687CASE_GROUND_STATE,
2688CASE_GROUND_STATE,
2689};
2690#endif
2691
2692Const PARSE_T csi_amp_table[] =	/* CSI ... & */
2693{
2694/*	NUL		SOH		STX		ETX	*/
2695CASE_IGNORE,
2696CASE_IGNORE,
2697CASE_IGNORE,
2698CASE_IGNORE,
2699/*	EOT		ENQ		ACK		BEL	*/
2700CASE_IGNORE,
2701CASE_ENQ,
2702CASE_IGNORE,
2703CASE_BELL,
2704/*	BS		HT		NL		VT	*/
2705CASE_BS,
2706CASE_TAB,
2707CASE_VMOT,
2708CASE_VMOT,
2709/*	FF		CR		SO		SI	*/
2710CASE_VMOT,
2711CASE_CR,
2712CASE_SO,
2713CASE_SI,
2714/*	DLE		DC1		DC2		DC3	*/
2715CASE_IGNORE,
2716CASE_IGNORE,
2717CASE_IGNORE,
2718CASE_IGNORE,
2719/*	DC4		NAK		SYN		ETB	*/
2720CASE_IGNORE,
2721CASE_IGNORE,
2722CASE_IGNORE,
2723CASE_IGNORE,
2724/*	CAN		EM		SUB		ESC	*/
2725CASE_GROUND_STATE,
2726CASE_IGNORE,
2727CASE_GROUND_STATE,
2728CASE_ESC,
2729/*	FS		GS		RS		US	*/
2730CASE_IGNORE,
2731CASE_IGNORE,
2732CASE_IGNORE,
2733CASE_IGNORE,
2734/*	SP		!		"		#	*/
2735CASE_CSI_IGNORE,
2736CASE_CSI_IGNORE,
2737CASE_CSI_IGNORE,
2738CASE_CSI_IGNORE,
2739/*	$		%		&		'	*/
2740CASE_CSI_IGNORE,
2741CASE_CSI_IGNORE,
2742CASE_CSI_IGNORE,
2743CASE_CSI_IGNORE,
2744/*	(		)		*		+	*/
2745CASE_CSI_IGNORE,
2746CASE_CSI_IGNORE,
2747CASE_CSI_IGNORE,
2748CASE_CSI_IGNORE,
2749/*	,		-		.		/	*/
2750CASE_CSI_IGNORE,
2751CASE_CSI_IGNORE,
2752CASE_CSI_IGNORE,
2753CASE_CSI_IGNORE,
2754/*	0		1		2		3	*/
2755CASE_CSI_IGNORE,
2756CASE_CSI_IGNORE,
2757CASE_CSI_IGNORE,
2758CASE_CSI_IGNORE,
2759/*	4		5		6		7	*/
2760CASE_CSI_IGNORE,
2761CASE_CSI_IGNORE,
2762CASE_CSI_IGNORE,
2763CASE_CSI_IGNORE,
2764/*	8		9		:		;	*/
2765CASE_CSI_IGNORE,
2766CASE_CSI_IGNORE,
2767CASE_CSI_IGNORE,
2768CASE_CSI_IGNORE,
2769/*	<		=		>		?	*/
2770CASE_CSI_IGNORE,
2771CASE_CSI_IGNORE,
2772CASE_CSI_IGNORE,
2773CASE_CSI_IGNORE,
2774/*	@		A		B		C	*/
2775CASE_GROUND_STATE,
2776CASE_GROUND_STATE,
2777CASE_GROUND_STATE,
2778CASE_GROUND_STATE,
2779/*	D		E		F		G	*/
2780CASE_GROUND_STATE,
2781CASE_GROUND_STATE,
2782CASE_GROUND_STATE,
2783CASE_GROUND_STATE,
2784/*	H		I		J		K	*/
2785CASE_GROUND_STATE,
2786CASE_GROUND_STATE,
2787CASE_GROUND_STATE,
2788CASE_GROUND_STATE,
2789/*	L		M		N		O	*/
2790CASE_GROUND_STATE,
2791CASE_GROUND_STATE,
2792CASE_GROUND_STATE,
2793CASE_GROUND_STATE,
2794/*	P		Q		R		S	*/
2795CASE_GROUND_STATE,
2796CASE_GROUND_STATE,
2797CASE_GROUND_STATE,
2798CASE_GROUND_STATE,
2799/*	T		U		V		W	*/
2800CASE_GROUND_STATE,
2801CASE_GROUND_STATE,
2802CASE_GROUND_STATE,
2803CASE_GROUND_STATE,
2804/*	X		Y		Z		[	*/
2805CASE_GROUND_STATE,
2806CASE_GROUND_STATE,
2807CASE_GROUND_STATE,
2808CASE_GROUND_STATE,
2809/*	\		]		^		_	*/
2810CASE_GROUND_STATE,
2811CASE_GROUND_STATE,
2812CASE_GROUND_STATE,
2813CASE_GROUND_STATE,
2814/*	`		a		b		c	*/
2815CASE_GROUND_STATE,
2816CASE_GROUND_STATE,
2817CASE_GROUND_STATE,
2818CASE_GROUND_STATE,
2819/*	d		e		f		g	*/
2820CASE_GROUND_STATE,
2821CASE_GROUND_STATE,
2822CASE_GROUND_STATE,
2823CASE_GROUND_STATE,
2824/*	h		i		j		k	*/
2825CASE_GROUND_STATE,
2826CASE_GROUND_STATE,
2827CASE_GROUND_STATE,
2828CASE_GROUND_STATE,
2829/*	l		m		n		o	*/
2830CASE_GROUND_STATE,
2831CASE_GROUND_STATE,
2832CASE_GROUND_STATE,
2833CASE_GROUND_STATE,
2834/*	p		q		r		s	*/
2835CASE_GROUND_STATE,
2836CASE_GROUND_STATE,
2837CASE_GROUND_STATE,
2838CASE_GROUND_STATE,
2839/*	t		u		v		w	*/
2840CASE_GROUND_STATE,
2841CASE_DECRQUPSS,
2842CASE_GROUND_STATE,
2843CASE_GROUND_STATE,
2844/*	x		y		z		{	*/
2845CASE_GROUND_STATE,	/* vt420:Enable Session */
2846CASE_GROUND_STATE,
2847CASE_GROUND_STATE,
2848CASE_GROUND_STATE,
2849/*	|		}		~		DEL	*/
2850CASE_GROUND_STATE,
2851CASE_GROUND_STATE,
2852CASE_GROUND_STATE,
2853CASE_IGNORE,
2854/*      0x80            0x81            0x82            0x83    */
2855CASE_GROUND_STATE,
2856CASE_GROUND_STATE,
2857CASE_GROUND_STATE,
2858CASE_GROUND_STATE,
2859/*      0x84            0x85            0x86            0x87    */
2860CASE_IND,
2861CASE_NEL,
2862CASE_GROUND_STATE,
2863CASE_GROUND_STATE,
2864/*      0x88            0x89            0x8a            0x8b    */
2865CASE_HTS,
2866CASE_GROUND_STATE,
2867CASE_GROUND_STATE,
2868CASE_GROUND_STATE,
2869/*      0x8c            0x8d            0x8e            0x8f    */
2870CASE_GROUND_STATE,
2871CASE_RI,
2872CASE_SS2,
2873CASE_SS3,
2874/*      0x90            0x91            0x92            0x93    */
2875CASE_DCS,
2876CASE_GROUND_STATE,
2877CASE_GROUND_STATE,
2878CASE_GROUND_STATE,
2879/*      0x94            0x95            0x96            0x97    */
2880CASE_GROUND_STATE,
2881CASE_GROUND_STATE,
2882CASE_SPA,
2883CASE_EPA,
2884/*      0x98            0x99            0x9a            0x9b    */
2885CASE_SOS,
2886CASE_GROUND_STATE,
2887CASE_DECID,
2888CASE_CSI_STATE,
2889/*      0x9c            0x9d            0x9e            0x9f    */
2890CASE_ST,
2891CASE_OSC,
2892CASE_PM,
2893CASE_APC,
2894/*	nobreakspace	exclamdown	cent		sterling	*/
2895CASE_CSI_IGNORE,
2896CASE_CSI_IGNORE,
2897CASE_CSI_IGNORE,
2898CASE_CSI_IGNORE,
2899/*	currency	yen		brokenbar	section		*/
2900CASE_CSI_IGNORE,
2901CASE_CSI_IGNORE,
2902CASE_CSI_IGNORE,
2903CASE_CSI_IGNORE,
2904/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
2905CASE_CSI_IGNORE,
2906CASE_CSI_IGNORE,
2907CASE_CSI_IGNORE,
2908CASE_CSI_IGNORE,
2909/*	notsign		hyphen		registered	macron		*/
2910CASE_CSI_IGNORE,
2911CASE_CSI_IGNORE,
2912CASE_CSI_IGNORE,
2913CASE_CSI_IGNORE,
2914/*	degree		plusminus	twosuperior	threesuperior	*/
2915CASE_CSI_IGNORE,
2916CASE_CSI_IGNORE,
2917CASE_CSI_IGNORE,
2918CASE_CSI_IGNORE,
2919/*	acute		mu		paragraph	periodcentered	*/
2920CASE_CSI_IGNORE,
2921CASE_CSI_IGNORE,
2922CASE_CSI_IGNORE,
2923CASE_CSI_IGNORE,
2924/*	cedilla		onesuperior	masculine	guillemotright	*/
2925CASE_CSI_IGNORE,
2926CASE_CSI_IGNORE,
2927CASE_CSI_IGNORE,
2928CASE_CSI_IGNORE,
2929/*	onequarter	onehalf		threequarters	questiondown	*/
2930CASE_CSI_IGNORE,
2931CASE_CSI_IGNORE,
2932CASE_CSI_IGNORE,
2933CASE_CSI_IGNORE,
2934/*	Agrave		Aacute		Acircumflex	Atilde		*/
2935CASE_GROUND_STATE,
2936CASE_GROUND_STATE,
2937CASE_GROUND_STATE,
2938CASE_GROUND_STATE,
2939/*	Adiaeresis	Aring		AE		Ccedilla	*/
2940CASE_GROUND_STATE,
2941CASE_GROUND_STATE,
2942CASE_GROUND_STATE,
2943CASE_GROUND_STATE,
2944/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
2945CASE_GROUND_STATE,
2946CASE_GROUND_STATE,
2947CASE_GROUND_STATE,
2948CASE_GROUND_STATE,
2949/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
2950CASE_GROUND_STATE,
2951CASE_GROUND_STATE,
2952CASE_GROUND_STATE,
2953CASE_GROUND_STATE,
2954/*	Eth		Ntilde		Ograve		Oacute		*/
2955CASE_GROUND_STATE,
2956CASE_GROUND_STATE,
2957CASE_GROUND_STATE,
2958CASE_GROUND_STATE,
2959/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
2960CASE_GROUND_STATE,
2961CASE_GROUND_STATE,
2962CASE_GROUND_STATE,
2963CASE_GROUND_STATE,
2964/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
2965CASE_GROUND_STATE,
2966CASE_GROUND_STATE,
2967CASE_GROUND_STATE,
2968CASE_GROUND_STATE,
2969/*	Udiaeresis	Yacute		Thorn		ssharp		*/
2970CASE_GROUND_STATE,
2971CASE_GROUND_STATE,
2972CASE_GROUND_STATE,
2973CASE_GROUND_STATE,
2974/*	agrave		aacute		acircumflex	atilde		*/
2975CASE_GROUND_STATE,
2976CASE_GROUND_STATE,
2977CASE_GROUND_STATE,
2978CASE_GROUND_STATE,
2979/*	adiaeresis	aring		ae		ccedilla	*/
2980CASE_GROUND_STATE,
2981CASE_GROUND_STATE,
2982CASE_GROUND_STATE,
2983CASE_GROUND_STATE,
2984/*	egrave		eacute		ecircumflex	ediaeresis	*/
2985CASE_GROUND_STATE,
2986CASE_GROUND_STATE,
2987CASE_GROUND_STATE,
2988CASE_GROUND_STATE,
2989/*	igrave		iacute		icircumflex	idiaeresis	*/
2990CASE_GROUND_STATE,
2991CASE_GROUND_STATE,
2992CASE_GROUND_STATE,
2993CASE_GROUND_STATE,
2994/*	eth		ntilde		ograve		oacute		*/
2995CASE_GROUND_STATE,
2996CASE_GROUND_STATE,
2997CASE_GROUND_STATE,
2998CASE_GROUND_STATE,
2999/*	ocircumflex	otilde		odiaeresis	division	*/
3000CASE_GROUND_STATE,
3001CASE_DECRQUPSS,
3002CASE_GROUND_STATE,
3003CASE_GROUND_STATE,
3004/*	oslash		ugrave		uacute		ucircumflex	*/
3005CASE_GROUND_STATE,
3006CASE_GROUND_STATE,
3007CASE_GROUND_STATE,
3008CASE_GROUND_STATE,
3009/*	udiaeresis	yacute		thorn		ydiaeresis	*/
3010CASE_GROUND_STATE,
3011CASE_GROUND_STATE,
3012CASE_GROUND_STATE,
3013CASE_GROUND_STATE,
3014};
3015
3016#if OPT_DEC_RECTOPS
3017Const PARSE_T csi_dollar_table[] =	/* CSI ... $ */
3018{
3019/*	NUL		SOH		STX		ETX	*/
3020CASE_IGNORE,
3021CASE_IGNORE,
3022CASE_IGNORE,
3023CASE_IGNORE,
3024/*	EOT		ENQ		ACK		BEL	*/
3025CASE_IGNORE,
3026CASE_ENQ,
3027CASE_IGNORE,
3028CASE_BELL,
3029/*	BS		HT		NL		VT	*/
3030CASE_BS,
3031CASE_TAB,
3032CASE_VMOT,
3033CASE_VMOT,
3034/*	FF		CR		SO		SI	*/
3035CASE_VMOT,
3036CASE_CR,
3037CASE_SO,
3038CASE_SI,
3039/*	DLE		DC1		DC2		DC3	*/
3040CASE_IGNORE,
3041CASE_IGNORE,
3042CASE_IGNORE,
3043CASE_IGNORE,
3044/*	DC4		NAK		SYN		ETB	*/
3045CASE_IGNORE,
3046CASE_IGNORE,
3047CASE_IGNORE,
3048CASE_IGNORE,
3049/*	CAN		EM		SUB		ESC	*/
3050CASE_GROUND_STATE,
3051CASE_IGNORE,
3052CASE_GROUND_STATE,
3053CASE_ESC,
3054/*	FS		GS		RS		US	*/
3055CASE_IGNORE,
3056CASE_IGNORE,
3057CASE_IGNORE,
3058CASE_IGNORE,
3059/*	SP		!		"		#	*/
3060CASE_CSI_IGNORE,
3061CASE_CSI_IGNORE,
3062CASE_CSI_IGNORE,
3063CASE_CSI_IGNORE,
3064/*	$		%		&		'	*/
3065CASE_CSI_IGNORE,
3066CASE_CSI_IGNORE,
3067CASE_CSI_IGNORE,
3068CASE_CSI_IGNORE,
3069/*	(		)		*		+	*/
3070CASE_CSI_IGNORE,
3071CASE_CSI_IGNORE,
3072CASE_CSI_IGNORE,
3073CASE_CSI_IGNORE,
3074/*	,		-		.		/	*/
3075CASE_CSI_IGNORE,
3076CASE_CSI_IGNORE,
3077CASE_CSI_IGNORE,
3078CASE_CSI_IGNORE,
3079/*	0		1		2		3	*/
3080CASE_CSI_IGNORE,
3081CASE_CSI_IGNORE,
3082CASE_CSI_IGNORE,
3083CASE_CSI_IGNORE,
3084/*	4		5		6		7	*/
3085CASE_CSI_IGNORE,
3086CASE_CSI_IGNORE,
3087CASE_CSI_IGNORE,
3088CASE_CSI_IGNORE,
3089/*	8		9		:		;	*/
3090CASE_CSI_IGNORE,
3091CASE_CSI_IGNORE,
3092CASE_CSI_IGNORE,
3093CASE_CSI_IGNORE,
3094/*	<		=		>		?	*/
3095CASE_CSI_IGNORE,
3096CASE_CSI_IGNORE,
3097CASE_CSI_IGNORE,
3098CASE_CSI_IGNORE,
3099/*	@		A		B		C	*/
3100CASE_GROUND_STATE,
3101CASE_GROUND_STATE,
3102CASE_GROUND_STATE,
3103CASE_GROUND_STATE,
3104/*	D		E		F		G	*/
3105CASE_GROUND_STATE,
3106CASE_GROUND_STATE,
3107CASE_GROUND_STATE,
3108CASE_GROUND_STATE,
3109/*	H		I		J		K	*/
3110CASE_GROUND_STATE,
3111CASE_GROUND_STATE,
3112CASE_GROUND_STATE,
3113CASE_GROUND_STATE,
3114/*	L		M		N		O	*/
3115CASE_GROUND_STATE,
3116CASE_GROUND_STATE,
3117CASE_GROUND_STATE,
3118CASE_GROUND_STATE,
3119/*	P		Q		R		S	*/
3120CASE_GROUND_STATE,
3121CASE_GROUND_STATE,
3122CASE_GROUND_STATE,
3123CASE_GROUND_STATE,
3124/*	T		U		V		W	*/
3125CASE_GROUND_STATE,
3126CASE_GROUND_STATE,
3127CASE_GROUND_STATE,
3128CASE_GROUND_STATE,
3129/*	X		Y		Z		[	*/
3130CASE_GROUND_STATE,
3131CASE_GROUND_STATE,
3132CASE_GROUND_STATE,
3133CASE_GROUND_STATE,
3134/*	\		]		^		_	*/
3135CASE_GROUND_STATE,
3136CASE_GROUND_STATE,
3137CASE_GROUND_STATE,
3138CASE_GROUND_STATE,
3139/*	`		a		b		c	*/
3140CASE_GROUND_STATE,
3141CASE_GROUND_STATE,
3142CASE_GROUND_STATE,
3143CASE_GROUND_STATE,
3144/*	d		e		f		g	*/
3145CASE_GROUND_STATE,
3146CASE_GROUND_STATE,
3147CASE_GROUND_STATE,
3148CASE_GROUND_STATE,
3149/*	h		i		j		k	*/
3150CASE_GROUND_STATE,
3151CASE_GROUND_STATE,
3152CASE_GROUND_STATE,
3153CASE_GROUND_STATE,
3154/*	l		m		n		o	*/
3155CASE_GROUND_STATE,
3156CASE_GROUND_STATE,
3157CASE_GROUND_STATE,
3158CASE_GROUND_STATE,
3159/*	p		q		r		s	*/
3160CASE_RQM,
3161CASE_GROUND_STATE,
3162CASE_DECCARA,
3163CASE_GROUND_STATE,
3164/*	t		u		v		w	*/
3165CASE_DECRARA,
3166CASE_GROUND_STATE,	/* vt420:DECRQTSR */
3167CASE_DECCRA,
3168CASE_DECRQPSR,
3169/*	x		y		z		{	*/
3170CASE_DECFRA,
3171CASE_GROUND_STATE,	/* vt420:DECRPM */
3172CASE_DECERA,
3173CASE_DECSERA,
3174/*	|		}		~		DEL	*/
3175CASE_DECSCPP,
3176CASE_DECSASD,
3177CASE_DECSSDT,
3178CASE_IGNORE,
3179/*      0x80            0x81            0x82            0x83    */
3180CASE_GROUND_STATE,
3181CASE_GROUND_STATE,
3182CASE_GROUND_STATE,
3183CASE_GROUND_STATE,
3184/*      0x84            0x85            0x86            0x87    */
3185CASE_IND,
3186CASE_NEL,
3187CASE_GROUND_STATE,
3188CASE_GROUND_STATE,
3189/*      0x88            0x89            0x8a            0x8b    */
3190CASE_HTS,
3191CASE_GROUND_STATE,
3192CASE_GROUND_STATE,
3193CASE_GROUND_STATE,
3194/*      0x8c            0x8d            0x8e            0x8f    */
3195CASE_GROUND_STATE,
3196CASE_RI,
3197CASE_SS2,
3198CASE_SS3,
3199/*      0x90            0x91            0x92            0x93    */
3200CASE_DCS,
3201CASE_GROUND_STATE,
3202CASE_GROUND_STATE,
3203CASE_GROUND_STATE,
3204/*      0x94            0x95            0x96            0x97    */
3205CASE_GROUND_STATE,
3206CASE_GROUND_STATE,
3207CASE_SPA,
3208CASE_EPA,
3209/*      0x98            0x99            0x9a            0x9b    */
3210CASE_SOS,
3211CASE_GROUND_STATE,
3212CASE_DECID,
3213CASE_CSI_STATE,
3214/*      0x9c            0x9d            0x9e            0x9f    */
3215CASE_ST,
3216CASE_OSC,
3217CASE_PM,
3218CASE_APC,
3219/*	nobreakspace	exclamdown	cent		sterling	*/
3220CASE_CSI_IGNORE,
3221CASE_CSI_IGNORE,
3222CASE_CSI_IGNORE,
3223CASE_CSI_IGNORE,
3224/*	currency	yen		brokenbar	section		*/
3225CASE_CSI_IGNORE,
3226CASE_CSI_IGNORE,
3227CASE_CSI_IGNORE,
3228CASE_CSI_IGNORE,
3229/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
3230CASE_CSI_IGNORE,
3231CASE_CSI_IGNORE,
3232CASE_CSI_IGNORE,
3233CASE_CSI_IGNORE,
3234/*	notsign		hyphen		registered	macron		*/
3235CASE_CSI_IGNORE,
3236CASE_CSI_IGNORE,
3237CASE_CSI_IGNORE,
3238CASE_CSI_IGNORE,
3239/*	degree		plusminus	twosuperior	threesuperior	*/
3240CASE_CSI_IGNORE,
3241CASE_CSI_IGNORE,
3242CASE_CSI_IGNORE,
3243CASE_CSI_IGNORE,
3244/*	acute		mu		paragraph	periodcentered	*/
3245CASE_CSI_IGNORE,
3246CASE_CSI_IGNORE,
3247CASE_CSI_IGNORE,
3248CASE_CSI_IGNORE,
3249/*	cedilla		onesuperior	masculine	guillemotright	*/
3250CASE_CSI_IGNORE,
3251CASE_CSI_IGNORE,
3252CASE_CSI_IGNORE,
3253CASE_CSI_IGNORE,
3254/*	onequarter	onehalf		threequarters	questiondown	*/
3255CASE_CSI_IGNORE,
3256CASE_CSI_IGNORE,
3257CASE_CSI_IGNORE,
3258CASE_CSI_IGNORE,
3259/*	Agrave		Aacute		Acircumflex	Atilde		*/
3260CASE_GROUND_STATE,
3261CASE_GROUND_STATE,
3262CASE_GROUND_STATE,
3263CASE_GROUND_STATE,
3264/*	Adiaeresis	Aring		AE		Ccedilla	*/
3265CASE_GROUND_STATE,
3266CASE_GROUND_STATE,
3267CASE_GROUND_STATE,
3268CASE_GROUND_STATE,
3269/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
3270CASE_GROUND_STATE,
3271CASE_GROUND_STATE,
3272CASE_GROUND_STATE,
3273CASE_GROUND_STATE,
3274/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
3275CASE_GROUND_STATE,
3276CASE_GROUND_STATE,
3277CASE_GROUND_STATE,
3278CASE_GROUND_STATE,
3279/*	Eth		Ntilde		Ograve		Oacute		*/
3280CASE_GROUND_STATE,
3281CASE_GROUND_STATE,
3282CASE_GROUND_STATE,
3283CASE_GROUND_STATE,
3284/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
3285CASE_GROUND_STATE,
3286CASE_GROUND_STATE,
3287CASE_GROUND_STATE,
3288CASE_GROUND_STATE,
3289/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
3290CASE_GROUND_STATE,
3291CASE_GROUND_STATE,
3292CASE_GROUND_STATE,
3293CASE_GROUND_STATE,
3294/*	Udiaeresis	Yacute		Thorn		ssharp		*/
3295CASE_GROUND_STATE,
3296CASE_GROUND_STATE,
3297CASE_GROUND_STATE,
3298CASE_GROUND_STATE,
3299/*	agrave		aacute		acircumflex	atilde		*/
3300CASE_GROUND_STATE,
3301CASE_GROUND_STATE,
3302CASE_GROUND_STATE,
3303CASE_GROUND_STATE,
3304/*	adiaeresis	aring		ae		ccedilla	*/
3305CASE_GROUND_STATE,
3306CASE_GROUND_STATE,
3307CASE_GROUND_STATE,
3308CASE_GROUND_STATE,
3309/*	egrave		eacute		ecircumflex	ediaeresis	*/
3310CASE_GROUND_STATE,
3311CASE_GROUND_STATE,
3312CASE_GROUND_STATE,
3313CASE_GROUND_STATE,
3314/*	igrave		iacute		icircumflex	idiaeresis	*/
3315CASE_GROUND_STATE,
3316CASE_GROUND_STATE,
3317CASE_GROUND_STATE,
3318CASE_GROUND_STATE,
3319/*	eth		ntilde		ograve		oacute		*/
3320CASE_RQM,
3321CASE_GROUND_STATE,
3322CASE_DECCARA,
3323CASE_GROUND_STATE,
3324/*	ocircumflex	otilde		odiaeresis	division	*/
3325CASE_DECRARA,
3326CASE_GROUND_STATE,
3327CASE_DECCRA,
3328CASE_DECRQPSR,
3329/*	oslash		ugrave		uacute		ucircumflex	*/
3330CASE_DECFRA,
3331CASE_GROUND_STATE,
3332CASE_DECERA,
3333CASE_DECSERA,
3334/*	udiaeresis	yacute		thorn		ydiaeresis	*/
3335CASE_DECSCPP,
3336CASE_DECSASD,
3337CASE_DECSSDT,
3338CASE_GROUND_STATE,
3339};
3340
3341Const PARSE_T csi_star_table[] =	/* CSI ... * */
3342{
3343/*	NUL		SOH		STX		ETX	*/
3344CASE_IGNORE,
3345CASE_IGNORE,
3346CASE_IGNORE,
3347CASE_IGNORE,
3348/*	EOT		ENQ		ACK		BEL	*/
3349CASE_IGNORE,
3350CASE_ENQ,
3351CASE_IGNORE,
3352CASE_BELL,
3353/*	BS		HT		NL		VT	*/
3354CASE_BS,
3355CASE_TAB,
3356CASE_VMOT,
3357CASE_VMOT,
3358/*	FF		CR		SO		SI	*/
3359CASE_VMOT,
3360CASE_CR,
3361CASE_SO,
3362CASE_SI,
3363/*	DLE		DC1		DC2		DC3	*/
3364CASE_IGNORE,
3365CASE_IGNORE,
3366CASE_IGNORE,
3367CASE_IGNORE,
3368/*	DC4		NAK		SYN		ETB	*/
3369CASE_IGNORE,
3370CASE_IGNORE,
3371CASE_IGNORE,
3372CASE_IGNORE,
3373/*	CAN		EM		SUB		ESC	*/
3374CASE_GROUND_STATE,
3375CASE_IGNORE,
3376CASE_GROUND_STATE,
3377CASE_ESC,
3378/*	FS		GS		RS		US	*/
3379CASE_IGNORE,
3380CASE_IGNORE,
3381CASE_IGNORE,
3382CASE_IGNORE,
3383/*	SP		!		"		#	*/
3384CASE_CSI_IGNORE,
3385CASE_CSI_IGNORE,
3386CASE_CSI_IGNORE,
3387CASE_CSI_IGNORE,
3388/*	$		%		&		'	*/
3389CASE_CSI_IGNORE,
3390CASE_CSI_IGNORE,
3391CASE_CSI_IGNORE,
3392CASE_CSI_IGNORE,
3393/*	(		)		*		+	*/
3394CASE_CSI_IGNORE,
3395CASE_CSI_IGNORE,
3396CASE_CSI_IGNORE,
3397CASE_CSI_IGNORE,
3398/*	,		-		.		/	*/
3399CASE_CSI_IGNORE,
3400CASE_CSI_IGNORE,
3401CASE_CSI_IGNORE,
3402CASE_CSI_IGNORE,
3403/*	0		1		2		3	*/
3404CASE_CSI_IGNORE,
3405CASE_CSI_IGNORE,
3406CASE_CSI_IGNORE,
3407CASE_CSI_IGNORE,
3408/*	4		5		6		7	*/
3409CASE_CSI_IGNORE,
3410CASE_CSI_IGNORE,
3411CASE_CSI_IGNORE,
3412CASE_CSI_IGNORE,
3413/*	8		9		:		;	*/
3414CASE_CSI_IGNORE,
3415CASE_CSI_IGNORE,
3416CASE_CSI_IGNORE,
3417CASE_CSI_IGNORE,
3418/*	<		=		>		?	*/
3419CASE_CSI_IGNORE,
3420CASE_CSI_IGNORE,
3421CASE_CSI_IGNORE,
3422CASE_CSI_IGNORE,
3423/*	@		A		B		C	*/
3424CASE_GROUND_STATE,
3425CASE_GROUND_STATE,
3426CASE_GROUND_STATE,
3427CASE_GROUND_STATE,
3428/*	D		E		F		G	*/
3429CASE_GROUND_STATE,
3430CASE_GROUND_STATE,
3431CASE_GROUND_STATE,
3432CASE_GROUND_STATE,
3433/*	H		I		J		K	*/
3434CASE_GROUND_STATE,
3435CASE_GROUND_STATE,
3436CASE_GROUND_STATE,
3437CASE_GROUND_STATE,
3438/*	L		M		N		O	*/
3439CASE_GROUND_STATE,
3440CASE_GROUND_STATE,
3441CASE_GROUND_STATE,
3442CASE_GROUND_STATE,
3443/*	P		Q		R		S	*/
3444CASE_GROUND_STATE,
3445CASE_GROUND_STATE,
3446CASE_GROUND_STATE,
3447CASE_GROUND_STATE,
3448/*	T		U		V		W	*/
3449CASE_GROUND_STATE,
3450CASE_GROUND_STATE,
3451CASE_GROUND_STATE,
3452CASE_GROUND_STATE,
3453/*	X		Y		Z		[	*/
3454CASE_GROUND_STATE,
3455CASE_GROUND_STATE,
3456CASE_GROUND_STATE,
3457CASE_GROUND_STATE,
3458/*	\		]		^		_	*/
3459CASE_GROUND_STATE,
3460CASE_GROUND_STATE,
3461CASE_GROUND_STATE,
3462CASE_GROUND_STATE,
3463/*	`		a		b		c	*/
3464CASE_GROUND_STATE,
3465CASE_GROUND_STATE,
3466CASE_GROUND_STATE,
3467CASE_GROUND_STATE,
3468/*	d		e		f		g	*/
3469CASE_GROUND_STATE,
3470CASE_GROUND_STATE,
3471CASE_GROUND_STATE,
3472CASE_GROUND_STATE,
3473/*	h		i		j		k	*/
3474CASE_GROUND_STATE,
3475CASE_GROUND_STATE,
3476CASE_GROUND_STATE,
3477CASE_GROUND_STATE,
3478/*	l		m		n		o	*/
3479CASE_GROUND_STATE,
3480CASE_GROUND_STATE,
3481CASE_GROUND_STATE,
3482CASE_GROUND_STATE,
3483/*	p		q		r		s	*/
3484CASE_GROUND_STATE,	/* vt510:DECSPPCS */
3485CASE_GROUND_STATE,	/* vt420:DECSRC */
3486CASE_GROUND_STATE,	/* vt510:DECSCS */
3487CASE_GROUND_STATE,	/* vt510:DECSFC */
3488/*	t		u		v		w	*/
3489CASE_GROUND_STATE,
3490CASE_GROUND_STATE,	/* vt510:DECSCP */
3491CASE_GROUND_STATE,
3492CASE_GROUND_STATE,
3493/*	x		y		z		{	*/
3494CASE_DECSACE,
3495CASE_DECRQCRA,
3496CASE_GROUND_STATE,	/* vt420:DECINVM */
3497CASE_GROUND_STATE,
3498/*	|		}		~		DEL	*/
3499CASE_DECSNLS,
3500CASE_GROUND_STATE,	/* vt420:DECLFKC */
3501CASE_GROUND_STATE,
3502CASE_IGNORE,
3503/*      0x80            0x81            0x82            0x83    */
3504CASE_GROUND_STATE,
3505CASE_GROUND_STATE,
3506CASE_GROUND_STATE,
3507CASE_GROUND_STATE,
3508/*      0x84            0x85            0x86            0x87    */
3509CASE_IND,
3510CASE_NEL,
3511CASE_GROUND_STATE,
3512CASE_GROUND_STATE,
3513/*      0x88            0x89            0x8a            0x8b    */
3514CASE_HTS,
3515CASE_GROUND_STATE,
3516CASE_GROUND_STATE,
3517CASE_GROUND_STATE,
3518/*      0x8c            0x8d            0x8e            0x8f    */
3519CASE_GROUND_STATE,
3520CASE_RI,
3521CASE_SS2,
3522CASE_SS3,
3523/*      0x90            0x91            0x92            0x93    */
3524CASE_DCS,
3525CASE_GROUND_STATE,
3526CASE_GROUND_STATE,
3527CASE_GROUND_STATE,
3528/*      0x94            0x95            0x96            0x97    */
3529CASE_GROUND_STATE,
3530CASE_GROUND_STATE,
3531CASE_SPA,
3532CASE_EPA,
3533/*      0x98            0x99            0x9a            0x9b    */
3534CASE_SOS,
3535CASE_GROUND_STATE,
3536CASE_DECID,
3537CASE_CSI_STATE,
3538/*      0x9c            0x9d            0x9e            0x9f    */
3539CASE_ST,
3540CASE_OSC,
3541CASE_PM,
3542CASE_APC,
3543/*	nobreakspace	exclamdown	cent		sterling	*/
3544CASE_CSI_IGNORE,
3545CASE_CSI_IGNORE,
3546CASE_CSI_IGNORE,
3547CASE_CSI_IGNORE,
3548/*	currency	yen		brokenbar	section		*/
3549CASE_CSI_IGNORE,
3550CASE_CSI_IGNORE,
3551CASE_CSI_IGNORE,
3552CASE_CSI_IGNORE,
3553/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
3554CASE_CSI_IGNORE,
3555CASE_CSI_IGNORE,
3556CASE_CSI_IGNORE,
3557CASE_CSI_IGNORE,
3558/*	notsign		hyphen		registered	macron		*/
3559CASE_CSI_IGNORE,
3560CASE_CSI_IGNORE,
3561CASE_CSI_IGNORE,
3562CASE_CSI_IGNORE,
3563/*	degree		plusminus	twosuperior	threesuperior	*/
3564CASE_CSI_IGNORE,
3565CASE_CSI_IGNORE,
3566CASE_CSI_IGNORE,
3567CASE_CSI_IGNORE,
3568/*	acute		mu		paragraph	periodcentered	*/
3569CASE_CSI_IGNORE,
3570CASE_CSI_IGNORE,
3571CASE_CSI_IGNORE,
3572CASE_CSI_IGNORE,
3573/*	cedilla		onesuperior	masculine	guillemotright	*/
3574CASE_CSI_IGNORE,
3575CASE_CSI_IGNORE,
3576CASE_CSI_IGNORE,
3577CASE_CSI_IGNORE,
3578/*	onequarter	onehalf		threequarters	questiondown	*/
3579CASE_CSI_IGNORE,
3580CASE_CSI_IGNORE,
3581CASE_CSI_IGNORE,
3582CASE_CSI_IGNORE,
3583/*	Agrave		Aacute		Acircumflex	Atilde		*/
3584CASE_GROUND_STATE,
3585CASE_GROUND_STATE,
3586CASE_GROUND_STATE,
3587CASE_GROUND_STATE,
3588/*	Adiaeresis	Aring		AE		Ccedilla	*/
3589CASE_GROUND_STATE,
3590CASE_GROUND_STATE,
3591CASE_GROUND_STATE,
3592CASE_GROUND_STATE,
3593/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
3594CASE_GROUND_STATE,
3595CASE_GROUND_STATE,
3596CASE_GROUND_STATE,
3597CASE_GROUND_STATE,
3598/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
3599CASE_GROUND_STATE,
3600CASE_GROUND_STATE,
3601CASE_GROUND_STATE,
3602CASE_GROUND_STATE,
3603/*	Eth		Ntilde		Ograve		Oacute		*/
3604CASE_GROUND_STATE,
3605CASE_GROUND_STATE,
3606CASE_GROUND_STATE,
3607CASE_GROUND_STATE,
3608/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
3609CASE_GROUND_STATE,
3610CASE_GROUND_STATE,
3611CASE_GROUND_STATE,
3612CASE_GROUND_STATE,
3613/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
3614CASE_GROUND_STATE,
3615CASE_GROUND_STATE,
3616CASE_GROUND_STATE,
3617CASE_GROUND_STATE,
3618/*	Udiaeresis	Yacute		Thorn		ssharp		*/
3619CASE_GROUND_STATE,
3620CASE_GROUND_STATE,
3621CASE_GROUND_STATE,
3622CASE_GROUND_STATE,
3623/*	agrave		aacute		acircumflex	atilde		*/
3624CASE_GROUND_STATE,
3625CASE_GROUND_STATE,
3626CASE_GROUND_STATE,
3627CASE_GROUND_STATE,
3628/*	adiaeresis	aring		ae		ccedilla	*/
3629CASE_GROUND_STATE,
3630CASE_GROUND_STATE,
3631CASE_GROUND_STATE,
3632CASE_GROUND_STATE,
3633/*	egrave		eacute		ecircumflex	ediaeresis	*/
3634CASE_GROUND_STATE,
3635CASE_GROUND_STATE,
3636CASE_GROUND_STATE,
3637CASE_GROUND_STATE,
3638/*	igrave		iacute		icircumflex	idiaeresis	*/
3639CASE_GROUND_STATE,
3640CASE_GROUND_STATE,
3641CASE_GROUND_STATE,
3642CASE_GROUND_STATE,
3643/*	eth		ntilde		ograve		oacute		*/
3644CASE_GROUND_STATE,
3645CASE_GROUND_STATE,
3646CASE_GROUND_STATE,
3647CASE_GROUND_STATE,
3648/*	ocircumflex	otilde		odiaeresis	division	*/
3649CASE_GROUND_STATE,
3650CASE_GROUND_STATE,
3651CASE_GROUND_STATE,
3652CASE_GROUND_STATE,
3653/*	oslash		ugrave		uacute		ucircumflex	*/
3654CASE_DECSACE,
3655CASE_DECRQCRA,
3656CASE_GROUND_STATE,
3657CASE_GROUND_STATE,
3658/*	udiaeresis	yacute		thorn		ydiaeresis	*/
3659CASE_DECSNLS,
3660CASE_GROUND_STATE,
3661CASE_GROUND_STATE,
3662CASE_GROUND_STATE,
3663};
3664#endif	/* OPT_DEC_RECTOPS */
3665
3666#if OPT_VT525_COLORS
3667Const PARSE_T csi_comma_table[] =	/* CSI ... , */
3668{
3669/*	NUL		SOH		STX		ETX	*/
3670CASE_IGNORE,
3671CASE_IGNORE,
3672CASE_IGNORE,
3673CASE_IGNORE,
3674/*	EOT		ENQ		ACK		BEL	*/
3675CASE_IGNORE,
3676CASE_ENQ,
3677CASE_IGNORE,
3678CASE_BELL,
3679/*	BS		HT		NL		VT	*/
3680CASE_BS,
3681CASE_TAB,
3682CASE_VMOT,
3683CASE_VMOT,
3684/*	FF		CR		SO		SI	*/
3685CASE_VMOT,
3686CASE_CR,
3687CASE_SO,
3688CASE_SI,
3689/*	DLE		DC1		DC2		DC3	*/
3690CASE_IGNORE,
3691CASE_IGNORE,
3692CASE_IGNORE,
3693CASE_IGNORE,
3694/*	DC4		NAK		SYN		ETB	*/
3695CASE_IGNORE,
3696CASE_IGNORE,
3697CASE_IGNORE,
3698CASE_IGNORE,
3699/*	CAN		EM		SUB		ESC	*/
3700CASE_GROUND_STATE,
3701CASE_IGNORE,
3702CASE_GROUND_STATE,
3703CASE_ESC,
3704/*	FS		GS		RS		US	*/
3705CASE_IGNORE,
3706CASE_IGNORE,
3707CASE_IGNORE,
3708CASE_IGNORE,
3709/*	SP		!		"		#	*/
3710CASE_CSI_IGNORE,
3711CASE_CSI_IGNORE,
3712CASE_CSI_IGNORE,
3713CASE_CSI_IGNORE,
3714/*	$		%		&		'	*/
3715CASE_CSI_IGNORE,
3716CASE_CSI_IGNORE,
3717CASE_CSI_IGNORE,
3718CASE_CSI_IGNORE,
3719/*	(		)		*		+	*/
3720CASE_CSI_IGNORE,
3721CASE_CSI_IGNORE,
3722CASE_CSI_IGNORE,
3723CASE_CSI_IGNORE,
3724/*	,		-		.		/	*/
3725CASE_CSI_IGNORE,
3726CASE_CSI_IGNORE,
3727CASE_CSI_IGNORE,
3728CASE_CSI_IGNORE,
3729/*	0		1		2		3	*/
3730CASE_CSI_IGNORE,
3731CASE_CSI_IGNORE,
3732CASE_CSI_IGNORE,
3733CASE_CSI_IGNORE,
3734/*	4		5		6		7	*/
3735CASE_CSI_IGNORE,
3736CASE_CSI_IGNORE,
3737CASE_CSI_IGNORE,
3738CASE_CSI_IGNORE,
3739/*	8		9		:		;	*/
3740CASE_CSI_IGNORE,
3741CASE_CSI_IGNORE,
3742CASE_CSI_IGNORE,
3743CASE_CSI_IGNORE,
3744/*	<		=		>		?	*/
3745CASE_CSI_IGNORE,
3746CASE_CSI_IGNORE,
3747CASE_CSI_IGNORE,
3748CASE_CSI_IGNORE,
3749/*	@		A		B		C	*/
3750CASE_GROUND_STATE,
3751CASE_GROUND_STATE,
3752CASE_GROUND_STATE,
3753CASE_GROUND_STATE,
3754/*	D		E		F		G	*/
3755CASE_GROUND_STATE,
3756CASE_GROUND_STATE,
3757CASE_GROUND_STATE,
3758CASE_GROUND_STATE,
3759/*	H		I		J		K	*/
3760CASE_GROUND_STATE,
3761CASE_GROUND_STATE,
3762CASE_GROUND_STATE,
3763CASE_GROUND_STATE,
3764/*	L		M		N		O	*/
3765CASE_GROUND_STATE,
3766CASE_GROUND_STATE,
3767CASE_GROUND_STATE,
3768CASE_GROUND_STATE,
3769/*	P		Q		R		S	*/
3770CASE_GROUND_STATE,
3771CASE_GROUND_STATE,
3772CASE_GROUND_STATE,
3773CASE_GROUND_STATE,
3774/*	T		U		V		W	*/
3775CASE_GROUND_STATE,
3776CASE_GROUND_STATE,
3777CASE_GROUND_STATE,
3778CASE_GROUND_STATE,
3779/*	X		Y		Z		[	*/
3780CASE_GROUND_STATE,
3781CASE_GROUND_STATE,
3782CASE_GROUND_STATE,
3783CASE_GROUND_STATE,
3784/*	\		]		^		_	*/
3785CASE_GROUND_STATE,
3786CASE_GROUND_STATE,
3787CASE_GROUND_STATE,
3788CASE_GROUND_STATE,
3789/*	`		a		b		c	*/
3790CASE_GROUND_STATE,
3791CASE_GROUND_STATE,
3792CASE_GROUND_STATE,
3793CASE_GROUND_STATE,
3794/*	d		e		f		g	*/
3795CASE_GROUND_STATE,
3796CASE_GROUND_STATE,
3797CASE_GROUND_STATE,
3798CASE_GROUND_STATE,
3799/*	h		i		j		k	*/
3800CASE_GROUND_STATE,
3801CASE_GROUND_STATE,
3802CASE_GROUND_STATE,
3803CASE_GROUND_STATE,
3804/*	l		m		n		o	*/
3805CASE_GROUND_STATE,
3806CASE_GROUND_STATE,
3807CASE_GROUND_STATE,
3808CASE_GROUND_STATE,
3809/*	p		q		r		s	*/
3810CASE_GROUND_STATE,	/* vt520:DECLTOD */
3811CASE_DECTID,
3812CASE_GROUND_STATE,
3813CASE_GROUND_STATE,
3814/*	t		u		v		w	*/
3815CASE_GROUND_STATE,
3816CASE_GROUND_STATE,	/* vt520:DECRQKT */
3817CASE_GROUND_STATE,	/* vt520:DECRPKT */
3818CASE_GROUND_STATE,	/* vt520:DECRQKD */
3819/*	x		y		z		{	*/
3820CASE_GROUND_STATE,	/* vt520:DECSPMA */
3821CASE_GROUND_STATE,	/* vt520:DECUS */
3822CASE_GROUND_STATE,	/* vt520:DECDLDA */
3823CASE_GROUND_STATE,	/* vt520:DECSZS */
3824/*	|		}		~		DEL	*/
3825CASE_DECAC,
3826CASE_DECATC,
3827CASE_GROUND_STATE,	/* vt520:DECPS */
3828CASE_GROUND_STATE,
3829/*      0x80            0x81            0x82            0x83    */
3830CASE_GROUND_STATE,
3831CASE_GROUND_STATE,
3832CASE_GROUND_STATE,
3833CASE_GROUND_STATE,
3834/*      0x84            0x85            0x86            0x87    */
3835CASE_IND,
3836CASE_NEL,
3837CASE_GROUND_STATE,
3838CASE_GROUND_STATE,
3839/*      0x88            0x89            0x8a            0x8b    */
3840CASE_HTS,
3841CASE_GROUND_STATE,
3842CASE_GROUND_STATE,
3843CASE_GROUND_STATE,
3844/*      0x8c            0x8d            0x8e            0x8f    */
3845CASE_GROUND_STATE,
3846CASE_RI,
3847CASE_SS2,
3848CASE_SS3,
3849/*      0x90            0x91            0x92            0x93    */
3850CASE_DCS,
3851CASE_GROUND_STATE,
3852CASE_GROUND_STATE,
3853CASE_GROUND_STATE,
3854/*      0x94            0x95            0x96            0x97    */
3855CASE_GROUND_STATE,
3856CASE_GROUND_STATE,
3857CASE_SPA,
3858CASE_EPA,
3859/*      0x98            0x99            0x9a            0x9b    */
3860CASE_SOS,
3861CASE_GROUND_STATE,
3862CASE_DECID,
3863CASE_CSI_STATE,
3864/*      0x9c            0x9d            0x9e            0x9f    */
3865CASE_ST,
3866CASE_OSC,
3867CASE_PM,
3868CASE_APC,
3869/*	nobreakspace	exclamdown	cent		sterling	*/
3870CASE_CSI_IGNORE,
3871CASE_CSI_IGNORE,
3872CASE_CSI_IGNORE,
3873CASE_CSI_IGNORE,
3874/*	currency	yen		brokenbar	section		*/
3875CASE_CSI_IGNORE,
3876CASE_CSI_IGNORE,
3877CASE_CSI_IGNORE,
3878CASE_CSI_IGNORE,
3879/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
3880CASE_CSI_IGNORE,
3881CASE_CSI_IGNORE,
3882CASE_CSI_IGNORE,
3883CASE_CSI_IGNORE,
3884/*	notsign		hyphen		registered	macron		*/
3885CASE_CSI_IGNORE,
3886CASE_CSI_IGNORE,
3887CASE_CSI_IGNORE,
3888CASE_CSI_IGNORE,
3889/*	degree		plusminus	twosuperior	threesuperior	*/
3890CASE_CSI_IGNORE,
3891CASE_CSI_IGNORE,
3892CASE_CSI_IGNORE,
3893CASE_CSI_IGNORE,
3894/*	acute		mu		paragraph	periodcentered	*/
3895CASE_CSI_IGNORE,
3896CASE_CSI_IGNORE,
3897CASE_CSI_IGNORE,
3898CASE_CSI_IGNORE,
3899/*	cedilla		onesuperior	masculine	guillemotright	*/
3900CASE_CSI_IGNORE,
3901CASE_CSI_IGNORE,
3902CASE_CSI_IGNORE,
3903CASE_CSI_IGNORE,
3904/*	onequarter	onehalf		threequarters	questiondown	*/
3905CASE_CSI_IGNORE,
3906CASE_CSI_IGNORE,
3907CASE_CSI_IGNORE,
3908CASE_CSI_IGNORE,
3909/*	Agrave		Aacute		Acircumflex	Atilde		*/
3910CASE_GROUND_STATE,
3911CASE_GROUND_STATE,
3912CASE_GROUND_STATE,
3913CASE_GROUND_STATE,
3914/*	Adiaeresis	Aring		AE		Ccedilla	*/
3915CASE_GROUND_STATE,
3916CASE_GROUND_STATE,
3917CASE_GROUND_STATE,
3918CASE_GROUND_STATE,
3919/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
3920CASE_GROUND_STATE,
3921CASE_GROUND_STATE,
3922CASE_GROUND_STATE,
3923CASE_GROUND_STATE,
3924/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
3925CASE_GROUND_STATE,
3926CASE_GROUND_STATE,
3927CASE_GROUND_STATE,
3928CASE_GROUND_STATE,
3929/*	Eth		Ntilde		Ograve		Oacute		*/
3930CASE_GROUND_STATE,
3931CASE_GROUND_STATE,
3932CASE_GROUND_STATE,
3933CASE_GROUND_STATE,
3934/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
3935CASE_GROUND_STATE,
3936CASE_GROUND_STATE,
3937CASE_GROUND_STATE,
3938CASE_GROUND_STATE,
3939/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
3940CASE_GROUND_STATE,
3941CASE_GROUND_STATE,
3942CASE_GROUND_STATE,
3943CASE_GROUND_STATE,
3944/*	Udiaeresis	Yacute		Thorn		ssharp		*/
3945CASE_GROUND_STATE,
3946CASE_GROUND_STATE,
3947CASE_GROUND_STATE,
3948CASE_GROUND_STATE,
3949/*	agrave		aacute		acircumflex	atilde		*/
3950CASE_GROUND_STATE,
3951CASE_GROUND_STATE,
3952CASE_GROUND_STATE,
3953CASE_GROUND_STATE,
3954/*	adiaeresis	aring		ae		ccedilla	*/
3955CASE_GROUND_STATE,
3956CASE_GROUND_STATE,
3957CASE_GROUND_STATE,
3958CASE_GROUND_STATE,
3959/*	egrave		eacute		ecircumflex	ediaeresis	*/
3960CASE_GROUND_STATE,
3961CASE_GROUND_STATE,
3962CASE_GROUND_STATE,
3963CASE_GROUND_STATE,
3964/*	igrave		iacute		icircumflex	idiaeresis	*/
3965CASE_GROUND_STATE,
3966CASE_GROUND_STATE,
3967CASE_GROUND_STATE,
3968CASE_GROUND_STATE,
3969/*	eth		ntilde		ograve		oacute		*/
3970CASE_GROUND_STATE,
3971CASE_DECTID,
3972CASE_GROUND_STATE,
3973CASE_GROUND_STATE,
3974/*	ocircumflex	otilde		odiaeresis	division	*/
3975CASE_GROUND_STATE,
3976CASE_GROUND_STATE,
3977CASE_GROUND_STATE,
3978CASE_GROUND_STATE,
3979/*	oslash		ugrave		uacute		ucircumflex	*/
3980CASE_GROUND_STATE,
3981CASE_GROUND_STATE,
3982CASE_GROUND_STATE,
3983CASE_GROUND_STATE,
3984/*	udiaeresis	yacute		thorn		ydiaeresis	*/
3985CASE_DECAC,
3986CASE_DECATC,
3987CASE_GROUND_STATE,
3988CASE_GROUND_STATE,
3989};
3990#endif /* OPT_VT525_COLORS */
3991
3992Const PARSE_T dec_table[] =		/* CSI ? */
3993{
3994/*	NUL		SOH		STX		ETX	*/
3995CASE_IGNORE,
3996CASE_IGNORE,
3997CASE_IGNORE,
3998CASE_IGNORE,
3999/*	EOT		ENQ		ACK		BEL	*/
4000CASE_IGNORE,
4001CASE_ENQ,
4002CASE_IGNORE,
4003CASE_BELL,
4004/*	BS		HT		NL		VT	*/
4005CASE_BS,
4006CASE_TAB,
4007CASE_VMOT,
4008CASE_VMOT,
4009/*	FF		CR		SO		SI	*/
4010CASE_VMOT,
4011CASE_CR,
4012CASE_SO,
4013CASE_SI,
4014/*	DLE		DC1		DC2		DC3	*/
4015CASE_IGNORE,
4016CASE_IGNORE,
4017CASE_IGNORE,
4018CASE_IGNORE,
4019/*	DC4		NAK		SYN		ETB	*/
4020CASE_IGNORE,
4021CASE_IGNORE,
4022CASE_IGNORE,
4023CASE_IGNORE,
4024/*	CAN		EM		SUB		ESC	*/
4025CASE_GROUND_STATE,
4026CASE_IGNORE,
4027CASE_GROUND_STATE,
4028CASE_ESC,
4029/*	FS		GS		RS		US	*/
4030CASE_IGNORE,
4031CASE_IGNORE,
4032CASE_IGNORE,
4033CASE_IGNORE,
4034/*	SP		!		"		#	*/
4035CASE_CSI_IGNORE,
4036CASE_CSI_IGNORE,
4037CASE_CSI_IGNORE,
4038CASE_CSI_IGNORE,
4039/*	$		%		&		'	*/
4040CASE_CSI_DEC_DOLLAR_STATE,
4041CASE_CSI_IGNORE,
4042CASE_CSI_IGNORE,
4043CASE_CSI_IGNORE,
4044/*	(		)		*		+	*/
4045CASE_CSI_IGNORE,
4046CASE_CSI_IGNORE,
4047CASE_CSI_IGNORE,
4048CASE_CSI_IGNORE,
4049/*	,		-		.		/	*/
4050CASE_CSI_IGNORE,
4051CASE_CSI_IGNORE,
4052CASE_CSI_IGNORE,
4053CASE_CSI_IGNORE,
4054/*	0		1		2		3	*/
4055CASE_ESC_DIGIT,
4056CASE_ESC_DIGIT,
4057CASE_ESC_DIGIT,
4058CASE_ESC_DIGIT,
4059/*	4		5		6		7	*/
4060CASE_ESC_DIGIT,
4061CASE_ESC_DIGIT,
4062CASE_ESC_DIGIT,
4063CASE_ESC_DIGIT,
4064/*	8		9		:		;	*/
4065CASE_ESC_DIGIT,
4066CASE_ESC_DIGIT,
4067CASE_ESC_COLON,
4068CASE_ESC_SEMI,
4069/*	<		=		>		?	*/
4070CASE_CSI_IGNORE,
4071CASE_CSI_IGNORE,
4072CASE_CSI_IGNORE,
4073CASE_CSI_IGNORE,
4074/*	@		A		B		C	*/
4075CASE_GROUND_STATE,
4076CASE_GROUND_STATE,
4077CASE_GROUND_STATE,
4078CASE_GROUND_STATE,
4079/*	D		E		F		G	*/
4080CASE_GROUND_STATE,
4081CASE_GROUND_STATE,
4082CASE_GROUND_STATE,
4083CASE_GROUND_STATE,
4084/*	H		I		J		K	*/
4085CASE_GROUND_STATE,
4086CASE_GROUND_STATE,
4087CASE_DECSED,
4088CASE_DECSEL,
4089/*	L		M		N		O	*/
4090CASE_GROUND_STATE,
4091CASE_GROUND_STATE,
4092CASE_GROUND_STATE,
4093CASE_GROUND_STATE,
4094/*	P		Q		R		S	*/
4095CASE_GROUND_STATE,
4096CASE_GROUND_STATE,
4097CASE_GROUND_STATE,
4098CASE_GRAPHICS_ATTRIBUTES,
4099/*	T		U		V		W	*/
4100CASE_GROUND_STATE,
4101CASE_GROUND_STATE,
4102CASE_GROUND_STATE,
4103CASE_DECST8C,
4104/*	X		Y		Z		[	*/
4105CASE_GROUND_STATE,
4106CASE_GROUND_STATE,
4107CASE_GROUND_STATE,
4108CASE_GROUND_STATE,
4109/*	\		]		^		_	*/
4110CASE_GROUND_STATE,
4111CASE_GROUND_STATE,
4112CASE_GROUND_STATE,
4113CASE_GROUND_STATE,
4114/*	`		a		b		c	*/
4115CASE_GROUND_STATE,
4116CASE_GROUND_STATE,
4117CASE_GROUND_STATE,
4118CASE_GROUND_STATE,
4119/*	d		e		f		g	*/
4120CASE_GROUND_STATE,
4121CASE_GROUND_STATE,
4122CASE_GROUND_STATE,
4123CASE_GROUND_STATE,
4124/*	h		i		j		k	*/
4125CASE_DECSET,
4126CASE_DEC_MC,
4127CASE_GROUND_STATE,
4128CASE_GROUND_STATE,
4129/*	l		m		n		o	*/
4130CASE_DECRST,
4131CASE_XTERM_REPORT_MOD_FKEYS,
4132CASE_DSR,
4133CASE_GROUND_STATE,
4134/*	p		q		r		s	*/
4135CASE_GROUND_STATE,
4136CASE_GROUND_STATE,
4137CASE_XTERM_RESTORE,
4138CASE_XTERM_SAVE,
4139/*	t		u		v		w	*/
4140CASE_GROUND_STATE,
4141CASE_GROUND_STATE,
4142CASE_GROUND_STATE,
4143CASE_GROUND_STATE,
4144/*	x		y		z		{	*/
4145CASE_GROUND_STATE,
4146CASE_GROUND_STATE,
4147CASE_GROUND_STATE,
4148CASE_GROUND_STATE,
4149/*	|		}		~		DEL	*/
4150CASE_GROUND_STATE,
4151CASE_GROUND_STATE,
4152CASE_GROUND_STATE,
4153CASE_IGNORE,
4154/*      0x80            0x81            0x82            0x83    */
4155CASE_GROUND_STATE,
4156CASE_GROUND_STATE,
4157CASE_GROUND_STATE,
4158CASE_GROUND_STATE,
4159/*      0x84            0x85            0x86            0x87    */
4160CASE_IND,
4161CASE_NEL,
4162CASE_GROUND_STATE,
4163CASE_GROUND_STATE,
4164/*      0x88            0x89            0x8a            0x8b    */
4165CASE_HTS,
4166CASE_GROUND_STATE,
4167CASE_GROUND_STATE,
4168CASE_GROUND_STATE,
4169/*      0x8c            0x8d            0x8e            0x8f    */
4170CASE_GROUND_STATE,
4171CASE_RI,
4172CASE_SS2,
4173CASE_SS3,
4174/*      0x90            0x91            0x92            0x93    */
4175CASE_DCS,
4176CASE_GROUND_STATE,
4177CASE_GROUND_STATE,
4178CASE_GROUND_STATE,
4179/*      0x94            0x95            0x96            0x97    */
4180CASE_GROUND_STATE,
4181CASE_GROUND_STATE,
4182CASE_SPA,
4183CASE_EPA,
4184/*      0x98            0x99            0x9a            0x9b    */
4185CASE_SOS,
4186CASE_GROUND_STATE,
4187CASE_DECID,
4188CASE_CSI_STATE,
4189/*      0x9c            0x9d            0x9e            0x9f    */
4190CASE_ST,
4191CASE_OSC,
4192CASE_PM,
4193CASE_APC,
4194/*      nobreakspace    exclamdown      cent            sterling        */
4195CASE_CSI_IGNORE,
4196CASE_CSI_IGNORE,
4197CASE_CSI_IGNORE,
4198CASE_CSI_IGNORE,
4199/*      currency        yen             brokenbar       section         */
4200CASE_CSI_DEC_DOLLAR_STATE,
4201CASE_CSI_IGNORE,
4202CASE_CSI_IGNORE,
4203CASE_CSI_IGNORE,
4204/*      diaeresis       copyright       ordfeminine     guillemotleft   */
4205CASE_CSI_IGNORE,
4206CASE_CSI_IGNORE,
4207CASE_CSI_IGNORE,
4208CASE_CSI_IGNORE,
4209/*      notsign         hyphen          registered      macron          */
4210CASE_CSI_IGNORE,
4211CASE_CSI_IGNORE,
4212CASE_CSI_IGNORE,
4213CASE_CSI_IGNORE,
4214/*      degree          plusminus       twosuperior     threesuperior   */
4215CASE_ESC_DIGIT,
4216CASE_ESC_DIGIT,
4217CASE_ESC_DIGIT,
4218CASE_ESC_DIGIT,
4219/*      acute           mu              paragraph       periodcentered  */
4220CASE_ESC_DIGIT,
4221CASE_ESC_DIGIT,
4222CASE_ESC_DIGIT,
4223CASE_ESC_DIGIT,
4224/*      cedilla         onesuperior     masculine       guillemotright  */
4225CASE_ESC_DIGIT,
4226CASE_ESC_DIGIT,
4227CASE_ESC_COLON,
4228CASE_ESC_SEMI,
4229/*      onequarter      onehalf         threequarters   questiondown    */
4230CASE_CSI_IGNORE,
4231CASE_CSI_IGNORE,
4232CASE_CSI_IGNORE,
4233CASE_CSI_IGNORE,
4234/*      Agrave          Aacute          Acircumflex     Atilde          */
4235CASE_GROUND_STATE,
4236CASE_GROUND_STATE,
4237CASE_GROUND_STATE,
4238CASE_GROUND_STATE,
4239/*      Adiaeresis      Aring           AE              Ccedilla        */
4240CASE_GROUND_STATE,
4241CASE_GROUND_STATE,
4242CASE_GROUND_STATE,
4243CASE_GROUND_STATE,
4244/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
4245CASE_GROUND_STATE,
4246CASE_GROUND_STATE,
4247CASE_DECSED,
4248CASE_DECSEL,
4249/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
4250CASE_GROUND_STATE,
4251CASE_GROUND_STATE,
4252CASE_GROUND_STATE,
4253CASE_GROUND_STATE,
4254/*      Eth             Ntilde          Ograve          Oacute          */
4255CASE_GROUND_STATE,
4256CASE_GROUND_STATE,
4257CASE_GROUND_STATE,
4258CASE_GRAPHICS_ATTRIBUTES,
4259/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
4260CASE_GROUND_STATE,
4261CASE_GROUND_STATE,
4262CASE_GROUND_STATE,
4263CASE_DECST8C,
4264/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
4265CASE_GROUND_STATE,
4266CASE_GROUND_STATE,
4267CASE_GROUND_STATE,
4268CASE_GROUND_STATE,
4269/*      Udiaeresis      Yacute          Thorn           ssharp          */
4270CASE_GROUND_STATE,
4271CASE_GROUND_STATE,
4272CASE_GROUND_STATE,
4273CASE_GROUND_STATE,
4274/*      agrave          aacute          acircumflex     atilde          */
4275CASE_GROUND_STATE,
4276CASE_GROUND_STATE,
4277CASE_GROUND_STATE,
4278CASE_GROUND_STATE,
4279/*      adiaeresis      aring           ae              ccedilla        */
4280CASE_GROUND_STATE,
4281CASE_GROUND_STATE,
4282CASE_GROUND_STATE,
4283CASE_GROUND_STATE,
4284/*      egrave          eacute          ecircumflex     ediaeresis      */
4285CASE_DECSET,
4286CASE_DEC_MC,
4287CASE_GROUND_STATE,
4288CASE_GROUND_STATE,
4289/*      igrave          iacute          icircumflex     idiaeresis      */
4290CASE_DECRST,
4291CASE_XTERM_REPORT_MOD_FKEYS,
4292CASE_DSR,
4293CASE_GROUND_STATE,
4294/*      eth             ntilde          ograve          oacute          */
4295CASE_GROUND_STATE,
4296CASE_GROUND_STATE,
4297CASE_XTERM_RESTORE,
4298CASE_XTERM_SAVE,
4299/*      ocircumflex     otilde          odiaeresis      division        */
4300CASE_GROUND_STATE,
4301CASE_GROUND_STATE,
4302CASE_GROUND_STATE,
4303CASE_GROUND_STATE,
4304/*      oslash          ugrave          uacute          ucircumflex     */
4305CASE_GROUND_STATE,
4306CASE_GROUND_STATE,
4307CASE_GROUND_STATE,
4308CASE_GROUND_STATE,
4309/*      udiaeresis      yacute          thorn           ydiaeresis      */
4310CASE_GROUND_STATE,
4311CASE_GROUND_STATE,
4312CASE_GROUND_STATE,
4313CASE_IGNORE,
4314};
4315
4316#if OPT_DEC_RECTOPS
4317Const PARSE_T csi_dec_dollar_table[] =	/* CSI ?... $ */
4318{
4319/*	NUL		SOH		STX		ETX	*/
4320CASE_IGNORE,
4321CASE_IGNORE,
4322CASE_IGNORE,
4323CASE_IGNORE,
4324/*	EOT		ENQ		ACK		BEL	*/
4325CASE_IGNORE,
4326CASE_ENQ,
4327CASE_IGNORE,
4328CASE_BELL,
4329/*	BS		HT		NL		VT	*/
4330CASE_BS,
4331CASE_TAB,
4332CASE_VMOT,
4333CASE_VMOT,
4334/*	FF		CR		SO		SI	*/
4335CASE_VMOT,
4336CASE_CR,
4337CASE_SO,
4338CASE_SI,
4339/*	DLE		DC1		DC2		DC3	*/
4340CASE_IGNORE,
4341CASE_IGNORE,
4342CASE_IGNORE,
4343CASE_IGNORE,
4344/*	DC4		NAK		SYN		ETB	*/
4345CASE_IGNORE,
4346CASE_IGNORE,
4347CASE_IGNORE,
4348CASE_IGNORE,
4349/*	CAN		EM		SUB		ESC	*/
4350CASE_GROUND_STATE,
4351CASE_IGNORE,
4352CASE_GROUND_STATE,
4353CASE_ESC,
4354/*	FS		GS		RS		US	*/
4355CASE_IGNORE,
4356CASE_IGNORE,
4357CASE_IGNORE,
4358CASE_IGNORE,
4359/*	SP		!		"		#	*/
4360CASE_CSI_IGNORE,
4361CASE_CSI_IGNORE,
4362CASE_CSI_IGNORE,
4363CASE_CSI_IGNORE,
4364/*	$		%		&		'	*/
4365CASE_CSI_IGNORE,
4366CASE_CSI_IGNORE,
4367CASE_CSI_IGNORE,
4368CASE_CSI_IGNORE,
4369/*	(		)		*		+	*/
4370CASE_CSI_IGNORE,
4371CASE_CSI_IGNORE,
4372CASE_CSI_IGNORE,
4373CASE_CSI_IGNORE,
4374/*	,		-		.		/	*/
4375CASE_CSI_IGNORE,
4376CASE_CSI_IGNORE,
4377CASE_CSI_IGNORE,
4378CASE_CSI_IGNORE,
4379/*	0		1		2		3	*/
4380CASE_CSI_IGNORE,
4381CASE_CSI_IGNORE,
4382CASE_CSI_IGNORE,
4383CASE_CSI_IGNORE,
4384/*	4		5		6		7	*/
4385CASE_CSI_IGNORE,
4386CASE_CSI_IGNORE,
4387CASE_CSI_IGNORE,
4388CASE_CSI_IGNORE,
4389/*	8		9		:		;	*/
4390CASE_CSI_IGNORE,
4391CASE_CSI_IGNORE,
4392CASE_CSI_IGNORE,
4393CASE_CSI_IGNORE,
4394/*	<		=		>		?	*/
4395CASE_CSI_IGNORE,
4396CASE_CSI_IGNORE,
4397CASE_CSI_IGNORE,
4398CASE_CSI_IGNORE,
4399/*	@		A		B		C	*/
4400CASE_GROUND_STATE,
4401CASE_GROUND_STATE,
4402CASE_GROUND_STATE,
4403CASE_GROUND_STATE,
4404/*	D		E		F		G	*/
4405CASE_GROUND_STATE,
4406CASE_GROUND_STATE,
4407CASE_GROUND_STATE,
4408CASE_GROUND_STATE,
4409/*	H		I		J		K	*/
4410CASE_GROUND_STATE,
4411CASE_GROUND_STATE,
4412CASE_GROUND_STATE,
4413CASE_GROUND_STATE,
4414/*	L		M		N		O	*/
4415CASE_GROUND_STATE,
4416CASE_GROUND_STATE,
4417CASE_GROUND_STATE,
4418CASE_GROUND_STATE,
4419/*	P		Q		R		S	*/
4420CASE_GROUND_STATE,
4421CASE_GROUND_STATE,
4422CASE_GROUND_STATE,
4423CASE_GROUND_STATE,
4424/*	T		U		V		W	*/
4425CASE_GROUND_STATE,
4426CASE_GROUND_STATE,
4427CASE_GROUND_STATE,
4428CASE_GROUND_STATE,
4429/*	X		Y		Z		[	*/
4430CASE_GROUND_STATE,
4431CASE_GROUND_STATE,
4432CASE_GROUND_STATE,
4433CASE_GROUND_STATE,
4434/*	\		]		^		_	*/
4435CASE_GROUND_STATE,
4436CASE_GROUND_STATE,
4437CASE_GROUND_STATE,
4438CASE_GROUND_STATE,
4439/*	`		a		b		c	*/
4440CASE_GROUND_STATE,
4441CASE_GROUND_STATE,
4442CASE_GROUND_STATE,
4443CASE_GROUND_STATE,
4444/*	d		e		f		g	*/
4445CASE_GROUND_STATE,
4446CASE_GROUND_STATE,
4447CASE_GROUND_STATE,
4448CASE_GROUND_STATE,
4449/*	h		i		j		k	*/
4450CASE_GROUND_STATE,
4451CASE_GROUND_STATE,
4452CASE_GROUND_STATE,
4453CASE_GROUND_STATE,
4454/*	l		m		n		o	*/
4455CASE_GROUND_STATE,
4456CASE_GROUND_STATE,
4457CASE_GROUND_STATE,
4458CASE_GROUND_STATE,
4459/*	p		q		r		s	*/
4460CASE_DECRQM,
4461CASE_GROUND_STATE,
4462CASE_GROUND_STATE,
4463CASE_GROUND_STATE,
4464/*	t		u		v		w	*/
4465CASE_GROUND_STATE,
4466CASE_GROUND_STATE,
4467CASE_GROUND_STATE,
4468CASE_GROUND_STATE,
4469/*	x		y		z		{	*/
4470CASE_GROUND_STATE,
4471CASE_GROUND_STATE,
4472CASE_GROUND_STATE,
4473CASE_GROUND_STATE,
4474/*	|		}		~		DEL	*/
4475CASE_GROUND_STATE,
4476CASE_GROUND_STATE,
4477CASE_GROUND_STATE,
4478CASE_IGNORE,
4479/*      0x80            0x81            0x82            0x83    */
4480CASE_GROUND_STATE,
4481CASE_GROUND_STATE,
4482CASE_GROUND_STATE,
4483CASE_GROUND_STATE,
4484/*      0x84            0x85            0x86            0x87    */
4485CASE_IND,
4486CASE_NEL,
4487CASE_GROUND_STATE,
4488CASE_GROUND_STATE,
4489/*      0x88            0x89            0x8a            0x8b    */
4490CASE_HTS,
4491CASE_GROUND_STATE,
4492CASE_GROUND_STATE,
4493CASE_GROUND_STATE,
4494/*      0x8c            0x8d            0x8e            0x8f    */
4495CASE_GROUND_STATE,
4496CASE_RI,
4497CASE_SS2,
4498CASE_SS3,
4499/*      0x90            0x91            0x92            0x93    */
4500CASE_DCS,
4501CASE_GROUND_STATE,
4502CASE_GROUND_STATE,
4503CASE_GROUND_STATE,
4504/*      0x94            0x95            0x96            0x97    */
4505CASE_GROUND_STATE,
4506CASE_GROUND_STATE,
4507CASE_SPA,
4508CASE_EPA,
4509/*      0x98            0x99            0x9a            0x9b    */
4510CASE_SOS,
4511CASE_GROUND_STATE,
4512CASE_DECID,
4513CASE_CSI_STATE,
4514/*      0x9c            0x9d            0x9e            0x9f    */
4515CASE_ST,
4516CASE_OSC,
4517CASE_PM,
4518CASE_APC,
4519/*	nobreakspace	exclamdown	cent		sterling	*/
4520CASE_CSI_IGNORE,
4521CASE_CSI_IGNORE,
4522CASE_CSI_IGNORE,
4523CASE_CSI_IGNORE,
4524/*	currency	yen		brokenbar	section		*/
4525CASE_CSI_IGNORE,
4526CASE_CSI_IGNORE,
4527CASE_CSI_IGNORE,
4528CASE_CSI_IGNORE,
4529/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
4530CASE_CSI_IGNORE,
4531CASE_CSI_IGNORE,
4532CASE_CSI_IGNORE,
4533CASE_CSI_IGNORE,
4534/*	notsign		hyphen		registered	macron		*/
4535CASE_CSI_IGNORE,
4536CASE_CSI_IGNORE,
4537CASE_CSI_IGNORE,
4538CASE_CSI_IGNORE,
4539/*	degree		plusminus	twosuperior	threesuperior	*/
4540CASE_CSI_IGNORE,
4541CASE_CSI_IGNORE,
4542CASE_CSI_IGNORE,
4543CASE_CSI_IGNORE,
4544/*	acute		mu		paragraph	periodcentered	*/
4545CASE_CSI_IGNORE,
4546CASE_CSI_IGNORE,
4547CASE_CSI_IGNORE,
4548CASE_CSI_IGNORE,
4549/*	cedilla		onesuperior	masculine	guillemotright	*/
4550CASE_CSI_IGNORE,
4551CASE_CSI_IGNORE,
4552CASE_CSI_IGNORE,
4553CASE_CSI_IGNORE,
4554/*	onequarter	onehalf		threequarters	questiondown	*/
4555CASE_CSI_IGNORE,
4556CASE_CSI_IGNORE,
4557CASE_CSI_IGNORE,
4558CASE_CSI_IGNORE,
4559/*	Agrave		Aacute		Acircumflex	Atilde		*/
4560CASE_GROUND_STATE,
4561CASE_GROUND_STATE,
4562CASE_GROUND_STATE,
4563CASE_GROUND_STATE,
4564/*	Adiaeresis	Aring		AE		Ccedilla	*/
4565CASE_GROUND_STATE,
4566CASE_GROUND_STATE,
4567CASE_GROUND_STATE,
4568CASE_GROUND_STATE,
4569/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
4570CASE_GROUND_STATE,
4571CASE_GROUND_STATE,
4572CASE_GROUND_STATE,
4573CASE_GROUND_STATE,
4574/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
4575CASE_GROUND_STATE,
4576CASE_GROUND_STATE,
4577CASE_GROUND_STATE,
4578CASE_GROUND_STATE,
4579/*	Eth		Ntilde		Ograve		Oacute		*/
4580CASE_GROUND_STATE,
4581CASE_GROUND_STATE,
4582CASE_GROUND_STATE,
4583CASE_GROUND_STATE,
4584/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
4585CASE_GROUND_STATE,
4586CASE_GROUND_STATE,
4587CASE_GROUND_STATE,
4588CASE_GROUND_STATE,
4589/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
4590CASE_GROUND_STATE,
4591CASE_GROUND_STATE,
4592CASE_GROUND_STATE,
4593CASE_GROUND_STATE,
4594/*	Udiaeresis	Yacute		Thorn		ssharp		*/
4595CASE_GROUND_STATE,
4596CASE_GROUND_STATE,
4597CASE_GROUND_STATE,
4598CASE_GROUND_STATE,
4599/*	agrave		aacute		acircumflex	atilde		*/
4600CASE_GROUND_STATE,
4601CASE_GROUND_STATE,
4602CASE_GROUND_STATE,
4603CASE_GROUND_STATE,
4604/*	adiaeresis	aring		ae		ccedilla	*/
4605CASE_GROUND_STATE,
4606CASE_GROUND_STATE,
4607CASE_GROUND_STATE,
4608CASE_GROUND_STATE,
4609/*	egrave		eacute		ecircumflex	ediaeresis	*/
4610CASE_GROUND_STATE,
4611CASE_GROUND_STATE,
4612CASE_GROUND_STATE,
4613CASE_GROUND_STATE,
4614/*	igrave		iacute		icircumflex	idiaeresis	*/
4615CASE_GROUND_STATE,
4616CASE_GROUND_STATE,
4617CASE_GROUND_STATE,
4618CASE_GROUND_STATE,
4619/*	eth		ntilde		ograve		oacute		*/
4620CASE_DECRQM,
4621CASE_GROUND_STATE,
4622CASE_GROUND_STATE,
4623CASE_GROUND_STATE,
4624/*	ocircumflex	otilde		odiaeresis	division	*/
4625CASE_GROUND_STATE,
4626CASE_GROUND_STATE,
4627CASE_GROUND_STATE,
4628CASE_GROUND_STATE,
4629/*	oslash		ugrave		uacute		ucircumflex	*/
4630CASE_GROUND_STATE,
4631CASE_GROUND_STATE,
4632CASE_GROUND_STATE,
4633CASE_GROUND_STATE,
4634/*	udiaeresis	yacute		thorn		ydiaeresis	*/
4635CASE_GROUND_STATE,
4636CASE_GROUND_STATE,
4637CASE_GROUND_STATE,
4638CASE_GROUND_STATE,
4639};
4640#endif /* OPT_DEC_RECTOPS */
4641
4642Const PARSE_T dec2_table[] =		/* CSI > */
4643{
4644/*	NUL		SOH		STX		ETX	*/
4645CASE_IGNORE,
4646CASE_IGNORE,
4647CASE_IGNORE,
4648CASE_IGNORE,
4649/*	EOT		ENQ		ACK		BEL	*/
4650CASE_IGNORE,
4651CASE_ENQ,
4652CASE_IGNORE,
4653CASE_BELL,
4654/*	BS		HT		NL		VT	*/
4655CASE_BS,
4656CASE_TAB,
4657CASE_VMOT,
4658CASE_VMOT,
4659/*	FF		CR		SO		SI	*/
4660CASE_VMOT,
4661CASE_CR,
4662CASE_SO,
4663CASE_SI,
4664/*	DLE		DC1		DC2		DC3	*/
4665CASE_IGNORE,
4666CASE_IGNORE,
4667CASE_IGNORE,
4668CASE_IGNORE,
4669/*	DC4		NAK		SYN		ETB	*/
4670CASE_IGNORE,
4671CASE_IGNORE,
4672CASE_IGNORE,
4673CASE_IGNORE,
4674/*	CAN		EM		SUB		ESC	*/
4675CASE_GROUND_STATE,
4676CASE_IGNORE,
4677CASE_GROUND_STATE,
4678CASE_ESC,
4679/*	FS		GS		RS		US	*/
4680CASE_IGNORE,
4681CASE_IGNORE,
4682CASE_IGNORE,
4683CASE_IGNORE,
4684/*	SP		!		"		#	*/
4685CASE_CSI_IGNORE,
4686CASE_CSI_IGNORE,
4687CASE_CSI_IGNORE,
4688CASE_CSI_IGNORE,
4689/*	$		%		&		'	*/
4690CASE_CSI_IGNORE,
4691CASE_CSI_IGNORE,
4692CASE_CSI_IGNORE,
4693CASE_CSI_IGNORE,
4694/*	(		)		*		+	*/
4695CASE_CSI_IGNORE,
4696CASE_CSI_IGNORE,
4697CASE_CSI_IGNORE,
4698CASE_CSI_IGNORE,
4699/*	,		-		.		/	*/
4700CASE_CSI_IGNORE,
4701CASE_CSI_IGNORE,
4702CASE_CSI_IGNORE,
4703CASE_CSI_IGNORE,
4704/*	0		1		2		3	*/
4705CASE_ESC_DIGIT,
4706CASE_ESC_DIGIT,
4707CASE_ESC_DIGIT,
4708CASE_ESC_DIGIT,
4709/*	4		5		6		7	*/
4710CASE_ESC_DIGIT,
4711CASE_ESC_DIGIT,
4712CASE_ESC_DIGIT,
4713CASE_ESC_DIGIT,
4714/*	8		9		:		;	*/
4715CASE_ESC_DIGIT,
4716CASE_ESC_DIGIT,
4717CASE_ESC_COLON,
4718CASE_ESC_SEMI,
4719/*	<		=		>		?	*/
4720CASE_CSI_IGNORE,
4721CASE_CSI_IGNORE,
4722CASE_CSI_IGNORE,
4723CASE_CSI_IGNORE,
4724/*	@		A		B		C	*/
4725CASE_GROUND_STATE,
4726CASE_GROUND_STATE,
4727CASE_GROUND_STATE,
4728CASE_GROUND_STATE,
4729/*	D		E		F		G	*/
4730CASE_GROUND_STATE,
4731CASE_GROUND_STATE,
4732CASE_GROUND_STATE,
4733CASE_GROUND_STATE,
4734/*	H		I		J		K	*/
4735CASE_GROUND_STATE,
4736CASE_GROUND_STATE,
4737CASE_GROUND_STATE,
4738CASE_GROUND_STATE,
4739/*	L		M		N		O	*/
4740CASE_GROUND_STATE,
4741CASE_GROUND_STATE,
4742CASE_GROUND_STATE,
4743CASE_GROUND_STATE,
4744/*	P		Q		R		S	*/
4745CASE_GROUND_STATE,
4746CASE_GROUND_STATE,
4747CASE_GROUND_STATE,
4748CASE_GROUND_STATE,
4749/*	T		U		V		W	*/
4750CASE_XTERM_RM_TITLE,
4751CASE_GROUND_STATE,
4752CASE_GROUND_STATE,
4753CASE_GROUND_STATE,
4754/*	X		Y		Z		[	*/
4755CASE_GROUND_STATE,
4756CASE_GROUND_STATE,
4757CASE_GROUND_STATE,
4758CASE_GROUND_STATE,
4759/*	\		]		^		_	*/
4760CASE_GROUND_STATE,
4761CASE_GROUND_STATE,
4762CASE_GROUND_STATE,
4763CASE_GROUND_STATE,
4764/*	`		a		b		c	*/
4765CASE_GROUND_STATE,
4766CASE_GROUND_STATE,
4767CASE_GROUND_STATE,
4768CASE_DA2,
4769/*	d		e		f		g	*/
4770CASE_GROUND_STATE,
4771CASE_GROUND_STATE,
4772CASE_GROUND_STATE,
4773CASE_GROUND_STATE,
4774/*	h		i		j		k	*/
4775CASE_GROUND_STATE,
4776CASE_GROUND_STATE,
4777CASE_GROUND_STATE,
4778CASE_GROUND_STATE,
4779/*	l		m		n		o	*/
4780CASE_GROUND_STATE,
4781CASE_SET_MOD_FKEYS,
4782CASE_SET_MOD_FKEYS0,
4783CASE_GROUND_STATE,
4784/*	p		q		r		s	*/
4785CASE_HIDE_POINTER,
4786CASE_REPORT_VERSION,
4787CASE_GROUND_STATE,
4788CASE_XTERM_SHIFT_ESCAPE,
4789/*	t		u		v		w	*/
4790CASE_XTERM_SM_TITLE,
4791CASE_GROUND_STATE,
4792CASE_GROUND_STATE,
4793CASE_GROUND_STATE,
4794/*	x		y		z		{	*/
4795CASE_GROUND_STATE,
4796CASE_GROUND_STATE,
4797CASE_GROUND_STATE,
4798CASE_GROUND_STATE,
4799/*	|		}		~		DEL	*/
4800CASE_GROUND_STATE,
4801CASE_GROUND_STATE,
4802CASE_GROUND_STATE,
4803CASE_IGNORE,
4804/*      0x80            0x81            0x82            0x83    */
4805CASE_GROUND_STATE,
4806CASE_GROUND_STATE,
4807CASE_GROUND_STATE,
4808CASE_GROUND_STATE,
4809/*      0x84            0x85            0x86            0x87    */
4810CASE_IND,
4811CASE_NEL,
4812CASE_GROUND_STATE,
4813CASE_GROUND_STATE,
4814/*      0x88            0x89            0x8a            0x8b    */
4815CASE_HTS,
4816CASE_GROUND_STATE,
4817CASE_GROUND_STATE,
4818CASE_GROUND_STATE,
4819/*      0x8c            0x8d            0x8e            0x8f    */
4820CASE_GROUND_STATE,
4821CASE_RI,
4822CASE_SS2,
4823CASE_SS3,
4824/*      0x90            0x91            0x92            0x93    */
4825CASE_DCS,
4826CASE_GROUND_STATE,
4827CASE_GROUND_STATE,
4828CASE_GROUND_STATE,
4829/*      0x94            0x95            0x96            0x97    */
4830CASE_GROUND_STATE,
4831CASE_GROUND_STATE,
4832CASE_SPA,
4833CASE_EPA,
4834/*      0x98            0x99            0x9a            0x9b    */
4835CASE_SOS,
4836CASE_GROUND_STATE,
4837CASE_DECID,
4838CASE_CSI_STATE,
4839/*      0x9c            0x9d            0x9e            0x9f    */
4840CASE_ST,
4841CASE_OSC,
4842CASE_PM,
4843CASE_APC,
4844/*      nobreakspace    exclamdown      cent            sterling        */
4845CASE_CSI_IGNORE,
4846CASE_CSI_IGNORE,
4847CASE_CSI_IGNORE,
4848CASE_CSI_IGNORE,
4849/*      currency        yen             brokenbar       section         */
4850CASE_CSI_IGNORE,
4851CASE_CSI_IGNORE,
4852CASE_CSI_IGNORE,
4853CASE_CSI_IGNORE,
4854/*      diaeresis       copyright       ordfeminine     guillemotleft   */
4855CASE_CSI_IGNORE,
4856CASE_CSI_IGNORE,
4857CASE_CSI_IGNORE,
4858CASE_CSI_IGNORE,
4859/*      notsign         hyphen          registered      macron          */
4860CASE_CSI_IGNORE,
4861CASE_CSI_IGNORE,
4862CASE_CSI_IGNORE,
4863CASE_CSI_IGNORE,
4864/*      degree          plusminus       twosuperior     threesuperior   */
4865CASE_ESC_DIGIT,
4866CASE_ESC_DIGIT,
4867CASE_ESC_DIGIT,
4868CASE_ESC_DIGIT,
4869/*      acute           mu              paragraph       periodcentered  */
4870CASE_ESC_DIGIT,
4871CASE_ESC_DIGIT,
4872CASE_ESC_DIGIT,
4873CASE_ESC_DIGIT,
4874/*      cedilla         onesuperior     masculine       guillemotright  */
4875CASE_ESC_DIGIT,
4876CASE_ESC_DIGIT,
4877CASE_ESC_COLON,
4878CASE_ESC_SEMI,
4879/*      onequarter      onehalf         threequarters   questiondown    */
4880CASE_CSI_IGNORE,
4881CASE_CSI_IGNORE,
4882CASE_CSI_IGNORE,
4883CASE_CSI_IGNORE,
4884/*      Agrave          Aacute          Acircumflex     Atilde          */
4885CASE_GROUND_STATE,
4886CASE_GROUND_STATE,
4887CASE_GROUND_STATE,
4888CASE_GROUND_STATE,
4889/*      Adiaeresis      Aring           AE              Ccedilla        */
4890CASE_GROUND_STATE,
4891CASE_GROUND_STATE,
4892CASE_GROUND_STATE,
4893CASE_GROUND_STATE,
4894/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
4895CASE_GROUND_STATE,
4896CASE_GROUND_STATE,
4897CASE_GROUND_STATE,
4898CASE_GROUND_STATE,
4899/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
4900CASE_GROUND_STATE,
4901CASE_GROUND_STATE,
4902CASE_GROUND_STATE,
4903CASE_GROUND_STATE,
4904/*      Eth             Ntilde          Ograve          Oacute          */
4905CASE_GROUND_STATE,
4906CASE_GROUND_STATE,
4907CASE_GROUND_STATE,
4908CASE_GROUND_STATE,
4909/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
4910CASE_XTERM_RM_TITLE,
4911CASE_GROUND_STATE,
4912CASE_GROUND_STATE,
4913CASE_GROUND_STATE,
4914/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
4915CASE_GROUND_STATE,
4916CASE_GROUND_STATE,
4917CASE_GROUND_STATE,
4918CASE_GROUND_STATE,
4919/*      Udiaeresis      Yacute          Thorn           ssharp          */
4920CASE_GROUND_STATE,
4921CASE_GROUND_STATE,
4922CASE_GROUND_STATE,
4923CASE_GROUND_STATE,
4924/*      agrave          aacute          acircumflex     atilde          */
4925CASE_GROUND_STATE,
4926CASE_GROUND_STATE,
4927CASE_GROUND_STATE,
4928CASE_DA2,
4929/*      adiaeresis      aring           ae              ccedilla        */
4930CASE_GROUND_STATE,
4931CASE_GROUND_STATE,
4932CASE_GROUND_STATE,
4933CASE_GROUND_STATE,
4934/*      egrave          eacute          ecircumflex     ediaeresis      */
4935CASE_GROUND_STATE,
4936CASE_GROUND_STATE,
4937CASE_GROUND_STATE,
4938CASE_GROUND_STATE,
4939/*      igrave          iacute          icircumflex     idiaeresis      */
4940CASE_GROUND_STATE,
4941CASE_SET_MOD_FKEYS,
4942CASE_SET_MOD_FKEYS0,
4943CASE_GROUND_STATE,
4944/*      eth             ntilde          ograve          oacute          */
4945CASE_HIDE_POINTER,
4946CASE_REPORT_VERSION,
4947CASE_GROUND_STATE,
4948CASE_XTERM_SHIFT_ESCAPE,
4949/*      ocircumflex     otilde          odiaeresis      division        */
4950CASE_XTERM_SM_TITLE,
4951CASE_GROUND_STATE,
4952CASE_GROUND_STATE,
4953CASE_GROUND_STATE,
4954/*      oslash          ugrave          uacute          ucircumflex     */
4955CASE_GROUND_STATE,
4956CASE_GROUND_STATE,
4957CASE_GROUND_STATE,
4958CASE_GROUND_STATE,
4959/*      udiaeresis      yacute          thorn           ydiaeresis      */
4960CASE_GROUND_STATE,
4961CASE_GROUND_STATE,
4962CASE_GROUND_STATE,
4963CASE_IGNORE,
4964};
4965
4966Const PARSE_T dec3_table[] =		/* CSI = */
4967{
4968/*	NUL		SOH		STX		ETX	*/
4969CASE_IGNORE,
4970CASE_IGNORE,
4971CASE_IGNORE,
4972CASE_IGNORE,
4973/*	EOT		ENQ		ACK		BEL	*/
4974CASE_IGNORE,
4975CASE_ENQ,
4976CASE_IGNORE,
4977CASE_BELL,
4978/*	BS		HT		NL		VT	*/
4979CASE_BS,
4980CASE_TAB,
4981CASE_VMOT,
4982CASE_VMOT,
4983/*	FF		CR		SO		SI	*/
4984CASE_VMOT,
4985CASE_CR,
4986CASE_SO,
4987CASE_SI,
4988/*	DLE		DC1		DC2		DC3	*/
4989CASE_IGNORE,
4990CASE_IGNORE,
4991CASE_IGNORE,
4992CASE_IGNORE,
4993/*	DC4		NAK		SYN		ETB	*/
4994CASE_IGNORE,
4995CASE_IGNORE,
4996CASE_IGNORE,
4997CASE_IGNORE,
4998/*	CAN		EM		SUB		ESC	*/
4999CASE_GROUND_STATE,
5000CASE_IGNORE,
5001CASE_GROUND_STATE,
5002CASE_ESC,
5003/*	FS		GS		RS		US	*/
5004CASE_IGNORE,
5005CASE_IGNORE,
5006CASE_IGNORE,
5007CASE_IGNORE,
5008/*	SP		!		"		#	*/
5009CASE_CSI_IGNORE,
5010CASE_CSI_IGNORE,
5011CASE_CSI_IGNORE,
5012CASE_CSI_IGNORE,
5013/*	$		%		&		'	*/
5014CASE_CSI_IGNORE,
5015CASE_CSI_IGNORE,
5016CASE_CSI_IGNORE,
5017CASE_CSI_IGNORE,
5018/*	(		)		*		+	*/
5019CASE_CSI_IGNORE,
5020CASE_CSI_IGNORE,
5021CASE_CSI_IGNORE,
5022CASE_CSI_IGNORE,
5023/*	,		-		.		/	*/
5024CASE_CSI_IGNORE,
5025CASE_CSI_IGNORE,
5026CASE_CSI_IGNORE,
5027CASE_CSI_IGNORE,
5028/*	0		1		2		3	*/
5029CASE_ESC_DIGIT,
5030CASE_ESC_DIGIT,
5031CASE_ESC_DIGIT,
5032CASE_ESC_DIGIT,
5033/*	4		5		6		7	*/
5034CASE_ESC_DIGIT,
5035CASE_ESC_DIGIT,
5036CASE_ESC_DIGIT,
5037CASE_ESC_DIGIT,
5038/*	8		9		:		;	*/
5039CASE_ESC_DIGIT,
5040CASE_ESC_DIGIT,
5041CASE_ESC_COLON,
5042CASE_ESC_SEMI,
5043/*	<		=		>		?	*/
5044CASE_CSI_IGNORE,
5045CASE_CSI_IGNORE,
5046CASE_CSI_IGNORE,
5047CASE_CSI_IGNORE,
5048/*	@		A		B		C	*/
5049CASE_GROUND_STATE,
5050CASE_GROUND_STATE,
5051CASE_GROUND_STATE,
5052CASE_GROUND_STATE,
5053/*	D		E		F		G	*/
5054CASE_GROUND_STATE,
5055CASE_GROUND_STATE,
5056CASE_GROUND_STATE,
5057CASE_GROUND_STATE,
5058/*	H		I		J		K	*/
5059CASE_GROUND_STATE,
5060CASE_GROUND_STATE,
5061CASE_GROUND_STATE,
5062CASE_GROUND_STATE,
5063/*	L		M		N		O	*/
5064CASE_GROUND_STATE,
5065CASE_GROUND_STATE,
5066CASE_GROUND_STATE,
5067CASE_GROUND_STATE,
5068/*	P		Q		R		S	*/
5069CASE_GROUND_STATE,
5070CASE_GROUND_STATE,
5071CASE_GROUND_STATE,
5072CASE_GROUND_STATE,
5073/*	T		U		V		W	*/
5074CASE_GROUND_STATE,
5075CASE_GROUND_STATE,
5076CASE_GROUND_STATE,
5077CASE_GROUND_STATE,
5078/*	X		Y		Z		[	*/
5079CASE_GROUND_STATE,
5080CASE_GROUND_STATE,
5081CASE_GROUND_STATE,
5082CASE_GROUND_STATE,
5083/*	\		]		^		_	*/
5084CASE_GROUND_STATE,
5085CASE_GROUND_STATE,
5086CASE_GROUND_STATE,
5087CASE_GROUND_STATE,
5088/*	`		a		b		c	*/
5089CASE_GROUND_STATE,
5090CASE_GROUND_STATE,
5091CASE_GROUND_STATE,
5092CASE_DECRPTUI,
5093/*	d		e		f		g	*/
5094CASE_GROUND_STATE,
5095CASE_GROUND_STATE,
5096CASE_GROUND_STATE,
5097CASE_GROUND_STATE,
5098/*	h		i		j		k	*/
5099CASE_GROUND_STATE,
5100CASE_GROUND_STATE,
5101CASE_GROUND_STATE,
5102CASE_GROUND_STATE,
5103/*	l		m		n		o	*/
5104CASE_GROUND_STATE,
5105CASE_GROUND_STATE,
5106CASE_GROUND_STATE,
5107CASE_GROUND_STATE,
5108/*	p		q		r		s	*/
5109CASE_GROUND_STATE,
5110CASE_GROUND_STATE,
5111CASE_GROUND_STATE,
5112CASE_GROUND_STATE,
5113/*	t		u		v		w	*/
5114CASE_GROUND_STATE,
5115CASE_GROUND_STATE,
5116CASE_GROUND_STATE,
5117CASE_GROUND_STATE,
5118/*	x		y		z		{	*/
5119CASE_GROUND_STATE,
5120CASE_GROUND_STATE,
5121CASE_GROUND_STATE,
5122CASE_GROUND_STATE,
5123/*	|		}		~		DEL	*/
5124CASE_GROUND_STATE,
5125CASE_GROUND_STATE,
5126CASE_GROUND_STATE,
5127CASE_IGNORE,
5128/*      0x80            0x81            0x82            0x83    */
5129CASE_GROUND_STATE,
5130CASE_GROUND_STATE,
5131CASE_GROUND_STATE,
5132CASE_GROUND_STATE,
5133/*      0x84            0x85            0x86            0x87    */
5134CASE_IND,
5135CASE_NEL,
5136CASE_GROUND_STATE,
5137CASE_GROUND_STATE,
5138/*      0x88            0x89            0x8a            0x8b    */
5139CASE_HTS,
5140CASE_GROUND_STATE,
5141CASE_GROUND_STATE,
5142CASE_GROUND_STATE,
5143/*      0x8c            0x8d            0x8e            0x8f    */
5144CASE_GROUND_STATE,
5145CASE_RI,
5146CASE_SS2,
5147CASE_SS3,
5148/*      0x90            0x91            0x92            0x93    */
5149CASE_DCS,
5150CASE_GROUND_STATE,
5151CASE_GROUND_STATE,
5152CASE_GROUND_STATE,
5153/*      0x94            0x95            0x96            0x97    */
5154CASE_GROUND_STATE,
5155CASE_GROUND_STATE,
5156CASE_SPA,
5157CASE_EPA,
5158/*      0x98            0x99            0x9a            0x9b    */
5159CASE_SOS,
5160CASE_GROUND_STATE,
5161CASE_DECID,
5162CASE_CSI_STATE,
5163/*      0x9c            0x9d            0x9e            0x9f    */
5164CASE_ST,
5165CASE_OSC,
5166CASE_PM,
5167CASE_APC,
5168/*      nobreakspace    exclamdown      cent            sterling        */
5169CASE_CSI_IGNORE,
5170CASE_CSI_IGNORE,
5171CASE_CSI_IGNORE,
5172CASE_CSI_IGNORE,
5173/*      currency        yen             brokenbar       section         */
5174CASE_CSI_IGNORE,
5175CASE_CSI_IGNORE,
5176CASE_CSI_IGNORE,
5177CASE_CSI_IGNORE,
5178/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5179CASE_CSI_IGNORE,
5180CASE_CSI_IGNORE,
5181CASE_CSI_IGNORE,
5182CASE_CSI_IGNORE,
5183/*      notsign         hyphen          registered      macron          */
5184CASE_CSI_IGNORE,
5185CASE_CSI_IGNORE,
5186CASE_CSI_IGNORE,
5187CASE_CSI_IGNORE,
5188/*      degree          plusminus       twosuperior     threesuperior   */
5189CASE_ESC_DIGIT,
5190CASE_ESC_DIGIT,
5191CASE_ESC_DIGIT,
5192CASE_ESC_DIGIT,
5193/*      acute           mu              paragraph       periodcentered  */
5194CASE_ESC_DIGIT,
5195CASE_ESC_DIGIT,
5196CASE_ESC_DIGIT,
5197CASE_ESC_DIGIT,
5198/*      cedilla         onesuperior     masculine       guillemotright  */
5199CASE_ESC_DIGIT,
5200CASE_ESC_DIGIT,
5201CASE_ESC_COLON,
5202CASE_ESC_SEMI,
5203/*      onequarter      onehalf         threequarters   questiondown    */
5204CASE_CSI_IGNORE,
5205CASE_CSI_IGNORE,
5206CASE_CSI_IGNORE,
5207CASE_CSI_IGNORE,
5208/*      Agrave          Aacute          Acircumflex     Atilde          */
5209CASE_GROUND_STATE,
5210CASE_GROUND_STATE,
5211CASE_GROUND_STATE,
5212CASE_GROUND_STATE,
5213/*      Adiaeresis      Aring           AE              Ccedilla        */
5214CASE_GROUND_STATE,
5215CASE_GROUND_STATE,
5216CASE_GROUND_STATE,
5217CASE_GROUND_STATE,
5218/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5219CASE_GROUND_STATE,
5220CASE_GROUND_STATE,
5221CASE_GROUND_STATE,
5222CASE_GROUND_STATE,
5223/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5224CASE_GROUND_STATE,
5225CASE_GROUND_STATE,
5226CASE_GROUND_STATE,
5227CASE_GROUND_STATE,
5228/*      Eth             Ntilde          Ograve          Oacute          */
5229CASE_GROUND_STATE,
5230CASE_GROUND_STATE,
5231CASE_GROUND_STATE,
5232CASE_GROUND_STATE,
5233/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5234CASE_GROUND_STATE,
5235CASE_GROUND_STATE,
5236CASE_GROUND_STATE,
5237CASE_GROUND_STATE,
5238/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5239CASE_GROUND_STATE,
5240CASE_GROUND_STATE,
5241CASE_GROUND_STATE,
5242CASE_GROUND_STATE,
5243/*      Udiaeresis      Yacute          Thorn           ssharp          */
5244CASE_GROUND_STATE,
5245CASE_GROUND_STATE,
5246CASE_GROUND_STATE,
5247CASE_GROUND_STATE,
5248/*      agrave          aacute          acircumflex     atilde          */
5249CASE_GROUND_STATE,
5250CASE_GROUND_STATE,
5251CASE_GROUND_STATE,
5252CASE_DECRPTUI,
5253/*      adiaeresis      aring           ae              ccedilla        */
5254CASE_GROUND_STATE,
5255CASE_GROUND_STATE,
5256CASE_GROUND_STATE,
5257CASE_GROUND_STATE,
5258/*      egrave          eacute          ecircumflex     ediaeresis      */
5259CASE_GROUND_STATE,
5260CASE_GROUND_STATE,
5261CASE_GROUND_STATE,
5262CASE_GROUND_STATE,
5263/*      igrave          iacute          icircumflex     idiaeresis      */
5264CASE_GROUND_STATE,
5265CASE_GROUND_STATE,
5266CASE_GROUND_STATE,
5267CASE_GROUND_STATE,
5268/*      eth             ntilde          ograve          oacute          */
5269CASE_GROUND_STATE,
5270CASE_GROUND_STATE,
5271CASE_GROUND_STATE,
5272CASE_GROUND_STATE,
5273/*      ocircumflex     otilde          odiaeresis      division        */
5274CASE_GROUND_STATE,
5275CASE_GROUND_STATE,
5276CASE_GROUND_STATE,
5277CASE_GROUND_STATE,
5278/*      oslash          ugrave          uacute          ucircumflex     */
5279CASE_GROUND_STATE,
5280CASE_GROUND_STATE,
5281CASE_GROUND_STATE,
5282CASE_GROUND_STATE,
5283/*      udiaeresis      yacute          thorn           ydiaeresis      */
5284CASE_GROUND_STATE,
5285CASE_GROUND_STATE,
5286CASE_GROUND_STATE,
5287CASE_IGNORE,
5288};
5289
5290Const PARSE_T cigtable[] =		/* CASE_CSI_IGNORE */
5291{
5292/*	NUL		SOH		STX		ETX	*/
5293CASE_IGNORE,
5294CASE_IGNORE,
5295CASE_IGNORE,
5296CASE_IGNORE,
5297/*	EOT		ENQ		ACK		BEL	*/
5298CASE_IGNORE,
5299CASE_ENQ,
5300CASE_IGNORE,
5301CASE_BELL,
5302/*	BS		HT		NL		VT	*/
5303CASE_BS,
5304CASE_TAB,
5305CASE_VMOT,
5306CASE_VMOT,
5307/*	FF		CR		SO		SI	*/
5308CASE_VMOT,
5309CASE_CR,
5310CASE_SO,
5311CASE_SI,
5312/*	DLE		DC1		DC2		DC3	*/
5313CASE_IGNORE,
5314CASE_IGNORE,
5315CASE_IGNORE,
5316CASE_IGNORE,
5317/*	DC4		NAK		SYN		ETB	*/
5318CASE_IGNORE,
5319CASE_IGNORE,
5320CASE_IGNORE,
5321CASE_IGNORE,
5322/*	CAN		EM		SUB		ESC	*/
5323CASE_GROUND_STATE,
5324CASE_IGNORE,
5325CASE_GROUND_STATE,
5326CASE_ESC,
5327/*	FS		GS		RS		US	*/
5328CASE_IGNORE,
5329CASE_IGNORE,
5330CASE_IGNORE,
5331CASE_IGNORE,
5332/*	SP		!		"		#	*/
5333CASE_IGNORE,
5334CASE_IGNORE,
5335CASE_IGNORE,
5336CASE_IGNORE,
5337/*	$		%		&		'	*/
5338CASE_IGNORE,
5339CASE_IGNORE,
5340CASE_IGNORE,
5341CASE_IGNORE,
5342/*	(		)		*		+	*/
5343CASE_IGNORE,
5344CASE_IGNORE,
5345CASE_IGNORE,
5346CASE_IGNORE,
5347/*	,		-		.		/	*/
5348CASE_IGNORE,
5349CASE_IGNORE,
5350CASE_IGNORE,
5351CASE_IGNORE,
5352/*	0		1		2		3	*/
5353CASE_IGNORE,
5354CASE_IGNORE,
5355CASE_IGNORE,
5356CASE_IGNORE,
5357/*	4		5		6		7	*/
5358CASE_IGNORE,
5359CASE_IGNORE,
5360CASE_IGNORE,
5361CASE_IGNORE,
5362/*	8		9		:		;	*/
5363CASE_IGNORE,
5364CASE_IGNORE,
5365CASE_IGNORE,
5366CASE_IGNORE,
5367/*	<		=		>		?	*/
5368CASE_IGNORE,
5369CASE_IGNORE,
5370CASE_IGNORE,
5371CASE_IGNORE,
5372/*	@		A		B		C	*/
5373CASE_GROUND_STATE,
5374CASE_GROUND_STATE,
5375CASE_GROUND_STATE,
5376CASE_GROUND_STATE,
5377/*	D		E		F		G	*/
5378CASE_GROUND_STATE,
5379CASE_GROUND_STATE,
5380CASE_GROUND_STATE,
5381CASE_GROUND_STATE,
5382/*	H		I		J		K	*/
5383CASE_GROUND_STATE,
5384CASE_GROUND_STATE,
5385CASE_GROUND_STATE,
5386CASE_GROUND_STATE,
5387/*	L		M		N		O	*/
5388CASE_GROUND_STATE,
5389CASE_GROUND_STATE,
5390CASE_GROUND_STATE,
5391CASE_GROUND_STATE,
5392/*	P		Q		R		S	*/
5393CASE_GROUND_STATE,
5394CASE_GROUND_STATE,
5395CASE_GROUND_STATE,
5396CASE_GROUND_STATE,
5397/*	T		U		V		W	*/
5398CASE_GROUND_STATE,
5399CASE_GROUND_STATE,
5400CASE_GROUND_STATE,
5401CASE_GROUND_STATE,
5402/*	X		Y		Z		[	*/
5403CASE_GROUND_STATE,
5404CASE_GROUND_STATE,
5405CASE_GROUND_STATE,
5406CASE_GROUND_STATE,
5407/*	\		]		^		_	*/
5408CASE_GROUND_STATE,
5409CASE_GROUND_STATE,
5410CASE_GROUND_STATE,
5411CASE_GROUND_STATE,
5412/*	`		a		b		c	*/
5413CASE_GROUND_STATE,
5414CASE_GROUND_STATE,
5415CASE_GROUND_STATE,
5416CASE_GROUND_STATE,
5417/*	d		e		f		g	*/
5418CASE_GROUND_STATE,
5419CASE_GROUND_STATE,
5420CASE_GROUND_STATE,
5421CASE_GROUND_STATE,
5422/*	h		i		j		k	*/
5423CASE_GROUND_STATE,
5424CASE_GROUND_STATE,
5425CASE_GROUND_STATE,
5426CASE_GROUND_STATE,
5427/*	l		m		n		o	*/
5428CASE_GROUND_STATE,
5429CASE_GROUND_STATE,
5430CASE_GROUND_STATE,
5431CASE_GROUND_STATE,
5432/*	p		q		r		s	*/
5433CASE_GROUND_STATE,
5434CASE_GROUND_STATE,
5435CASE_GROUND_STATE,
5436CASE_GROUND_STATE,
5437/*	t		u		v		w	*/
5438CASE_GROUND_STATE,
5439CASE_GROUND_STATE,
5440CASE_GROUND_STATE,
5441CASE_GROUND_STATE,
5442/*	x		y		z		{	*/
5443CASE_GROUND_STATE,
5444CASE_GROUND_STATE,
5445CASE_GROUND_STATE,
5446CASE_GROUND_STATE,
5447/*	|		}		~		DEL	*/
5448CASE_GROUND_STATE,
5449CASE_GROUND_STATE,
5450CASE_GROUND_STATE,
5451CASE_IGNORE,
5452/*      0x80            0x81            0x82            0x83    */
5453CASE_GROUND_STATE,
5454CASE_GROUND_STATE,
5455CASE_GROUND_STATE,
5456CASE_GROUND_STATE,
5457/*      0x84            0x85            0x86            0x87    */
5458CASE_IND,
5459CASE_NEL,
5460CASE_GROUND_STATE,
5461CASE_GROUND_STATE,
5462/*      0x88            0x89            0x8a            0x8b    */
5463CASE_HTS,
5464CASE_GROUND_STATE,
5465CASE_GROUND_STATE,
5466CASE_GROUND_STATE,
5467/*      0x8c            0x8d            0x8e            0x8f    */
5468CASE_GROUND_STATE,
5469CASE_RI,
5470CASE_SS2,
5471CASE_SS3,
5472/*      0x90            0x91            0x92            0x93    */
5473CASE_DCS,
5474CASE_GROUND_STATE,
5475CASE_GROUND_STATE,
5476CASE_GROUND_STATE,
5477/*      0x94            0x95            0x96            0x97    */
5478CASE_GROUND_STATE,
5479CASE_GROUND_STATE,
5480CASE_SPA,
5481CASE_EPA,
5482/*      0x98            0x99            0x9a            0x9b    */
5483CASE_SOS,
5484CASE_GROUND_STATE,
5485CASE_DECID,
5486CASE_CSI_STATE,
5487/*      0x9c            0x9d            0x9e            0x9f    */
5488CASE_ST,
5489CASE_OSC,
5490CASE_PM,
5491CASE_APC,
5492/*      nobreakspace    exclamdown      cent            sterling        */
5493CASE_IGNORE,
5494CASE_IGNORE,
5495CASE_IGNORE,
5496CASE_IGNORE,
5497/*      currency        yen             brokenbar       section         */
5498CASE_IGNORE,
5499CASE_IGNORE,
5500CASE_IGNORE,
5501CASE_IGNORE,
5502/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5503CASE_IGNORE,
5504CASE_IGNORE,
5505CASE_IGNORE,
5506CASE_IGNORE,
5507/*      notsign         hyphen          registered      macron          */
5508CASE_IGNORE,
5509CASE_IGNORE,
5510CASE_IGNORE,
5511CASE_IGNORE,
5512/*      degree          plusminus       twosuperior     threesuperior   */
5513CASE_IGNORE,
5514CASE_IGNORE,
5515CASE_IGNORE,
5516CASE_IGNORE,
5517/*      acute           mu              paragraph       periodcentered  */
5518CASE_IGNORE,
5519CASE_IGNORE,
5520CASE_IGNORE,
5521CASE_IGNORE,
5522/*      cedilla         onesuperior     masculine       guillemotright  */
5523CASE_IGNORE,
5524CASE_IGNORE,
5525CASE_IGNORE,
5526CASE_IGNORE,
5527/*      onequarter      onehalf         threequarters   questiondown    */
5528CASE_IGNORE,
5529CASE_IGNORE,
5530CASE_IGNORE,
5531CASE_IGNORE,
5532/*      Agrave          Aacute          Acircumflex     Atilde          */
5533CASE_GROUND_STATE,
5534CASE_GROUND_STATE,
5535CASE_GROUND_STATE,
5536CASE_GROUND_STATE,
5537/*      Adiaeresis      Aring           AE              Ccedilla        */
5538CASE_GROUND_STATE,
5539CASE_GROUND_STATE,
5540CASE_GROUND_STATE,
5541CASE_GROUND_STATE,
5542/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5543CASE_GROUND_STATE,
5544CASE_GROUND_STATE,
5545CASE_GROUND_STATE,
5546CASE_GROUND_STATE,
5547/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5548CASE_GROUND_STATE,
5549CASE_GROUND_STATE,
5550CASE_GROUND_STATE,
5551CASE_GROUND_STATE,
5552/*      Eth             Ntilde          Ograve          Oacute          */
5553CASE_GROUND_STATE,
5554CASE_GROUND_STATE,
5555CASE_GROUND_STATE,
5556CASE_GROUND_STATE,
5557/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5558CASE_GROUND_STATE,
5559CASE_GROUND_STATE,
5560CASE_GROUND_STATE,
5561CASE_GROUND_STATE,
5562/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5563CASE_GROUND_STATE,
5564CASE_GROUND_STATE,
5565CASE_GROUND_STATE,
5566CASE_GROUND_STATE,
5567/*      Udiaeresis      Yacute          Thorn           ssharp          */
5568CASE_GROUND_STATE,
5569CASE_GROUND_STATE,
5570CASE_GROUND_STATE,
5571CASE_GROUND_STATE,
5572/*      agrave          aacute          acircumflex     atilde          */
5573CASE_GROUND_STATE,
5574CASE_GROUND_STATE,
5575CASE_GROUND_STATE,
5576CASE_GROUND_STATE,
5577/*      adiaeresis      aring           ae              ccedilla        */
5578CASE_GROUND_STATE,
5579CASE_GROUND_STATE,
5580CASE_GROUND_STATE,
5581CASE_GROUND_STATE,
5582/*      egrave          eacute          ecircumflex     ediaeresis      */
5583CASE_GROUND_STATE,
5584CASE_GROUND_STATE,
5585CASE_GROUND_STATE,
5586CASE_GROUND_STATE,
5587/*      igrave          iacute          icircumflex     idiaeresis      */
5588CASE_GROUND_STATE,
5589CASE_GROUND_STATE,
5590CASE_GROUND_STATE,
5591CASE_GROUND_STATE,
5592/*      eth             ntilde          ograve          oacute          */
5593CASE_GROUND_STATE,
5594CASE_GROUND_STATE,
5595CASE_GROUND_STATE,
5596CASE_GROUND_STATE,
5597/*      ocircumflex     otilde          odiaeresis      division        */
5598CASE_GROUND_STATE,
5599CASE_GROUND_STATE,
5600CASE_GROUND_STATE,
5601CASE_GROUND_STATE,
5602/*      oslash          ugrave          uacute          ucircumflex     */
5603CASE_GROUND_STATE,
5604CASE_GROUND_STATE,
5605CASE_GROUND_STATE,
5606CASE_GROUND_STATE,
5607/*      udiaeresis      yacute          thorn           ydiaeresis      */
5608CASE_GROUND_STATE,
5609CASE_GROUND_STATE,
5610CASE_GROUND_STATE,
5611CASE_IGNORE,
5612};
5613
5614Const PARSE_T eigtable[] =		/* CASE_ESC_IGNORE */
5615{
5616/*	NUL		SOH		STX		ETX	*/
5617CASE_IGNORE,
5618CASE_IGNORE,
5619CASE_IGNORE,
5620CASE_IGNORE,
5621/*	EOT		ENQ		ACK		BEL	*/
5622CASE_IGNORE,
5623CASE_ENQ,
5624CASE_IGNORE,
5625CASE_BELL,
5626/*	BS		HT		NL		VT	*/
5627CASE_BS,
5628CASE_TAB,
5629CASE_VMOT,
5630CASE_VMOT,
5631/*	FF		CR		SO		SI	*/
5632CASE_VMOT,
5633CASE_CR,
5634CASE_SO,
5635CASE_SI,
5636/*	DLE		DC1		DC2		DC3	*/
5637CASE_IGNORE,
5638CASE_IGNORE,
5639CASE_IGNORE,
5640CASE_IGNORE,
5641/*	DC4		NAK		SYN		ETB	*/
5642CASE_IGNORE,
5643CASE_IGNORE,
5644CASE_IGNORE,
5645CASE_IGNORE,
5646/*	CAN		EM		SUB		ESC	*/
5647CASE_GROUND_STATE,
5648CASE_IGNORE,
5649CASE_GROUND_STATE,
5650CASE_ESC,
5651/*	FS		GS		RS		US	*/
5652CASE_IGNORE,
5653CASE_IGNORE,
5654CASE_IGNORE,
5655CASE_IGNORE,
5656/*	SP		!		"		#	*/
5657CASE_IGNORE,
5658CASE_IGNORE,
5659CASE_IGNORE,
5660CASE_IGNORE,
5661/*	$		%		&		'	*/
5662CASE_IGNORE,
5663CASE_IGNORE,
5664CASE_IGNORE,
5665CASE_IGNORE,
5666/*	(		)		*		+	*/
5667CASE_IGNORE,
5668CASE_IGNORE,
5669CASE_IGNORE,
5670CASE_IGNORE,
5671/*	,		-		.		/	*/
5672CASE_IGNORE,
5673CASE_IGNORE,
5674CASE_IGNORE,
5675CASE_IGNORE,
5676/*	0		1		2		3	*/
5677CASE_GROUND_STATE,
5678CASE_GROUND_STATE,
5679CASE_GROUND_STATE,
5680CASE_GROUND_STATE,
5681/*	4		5		6		7	*/
5682CASE_GROUND_STATE,
5683CASE_GROUND_STATE,
5684CASE_GROUND_STATE,
5685CASE_GROUND_STATE,
5686/*	8		9		:		;	*/
5687CASE_GROUND_STATE,
5688CASE_GROUND_STATE,
5689CASE_GROUND_STATE,
5690CASE_GROUND_STATE,
5691/*	<		=		>		?	*/
5692CASE_GROUND_STATE,
5693CASE_GROUND_STATE,
5694CASE_GROUND_STATE,
5695CASE_GROUND_STATE,
5696/*	@		A		B		C	*/
5697CASE_GROUND_STATE,
5698CASE_GROUND_STATE,
5699CASE_GROUND_STATE,
5700CASE_GROUND_STATE,
5701/*	D		E		F		G	*/
5702CASE_GROUND_STATE,
5703CASE_GROUND_STATE,
5704CASE_GROUND_STATE,
5705CASE_GROUND_STATE,
5706/*	H		I		J		K	*/
5707CASE_GROUND_STATE,
5708CASE_GROUND_STATE,
5709CASE_GROUND_STATE,
5710CASE_GROUND_STATE,
5711/*	L		M		N		O	*/
5712CASE_GROUND_STATE,
5713CASE_GROUND_STATE,
5714CASE_GROUND_STATE,
5715CASE_GROUND_STATE,
5716/*	P		Q		R		S	*/
5717CASE_GROUND_STATE,
5718CASE_GROUND_STATE,
5719CASE_GROUND_STATE,
5720CASE_GROUND_STATE,
5721/*	T		U		V		W	*/
5722CASE_GROUND_STATE,
5723CASE_GROUND_STATE,
5724CASE_GROUND_STATE,
5725CASE_GROUND_STATE,
5726/*	X		Y		Z		[	*/
5727CASE_GROUND_STATE,
5728CASE_GROUND_STATE,
5729CASE_GROUND_STATE,
5730CASE_GROUND_STATE,
5731/*	\		]		^		_	*/
5732CASE_GROUND_STATE,
5733CASE_GROUND_STATE,
5734CASE_GROUND_STATE,
5735CASE_GROUND_STATE,
5736/*	`		a		b		c	*/
5737CASE_GROUND_STATE,
5738CASE_GROUND_STATE,
5739CASE_GROUND_STATE,
5740CASE_GROUND_STATE,
5741/*	d		e		f		g	*/
5742CASE_GROUND_STATE,
5743CASE_GROUND_STATE,
5744CASE_GROUND_STATE,
5745CASE_GROUND_STATE,
5746/*	h		i		j		k	*/
5747CASE_GROUND_STATE,
5748CASE_GROUND_STATE,
5749CASE_GROUND_STATE,
5750CASE_GROUND_STATE,
5751/*	l		m		n		o	*/
5752CASE_GROUND_STATE,
5753CASE_GROUND_STATE,
5754CASE_GROUND_STATE,
5755CASE_GROUND_STATE,
5756/*	p		q		r		s	*/
5757CASE_GROUND_STATE,
5758CASE_GROUND_STATE,
5759CASE_GROUND_STATE,
5760CASE_GROUND_STATE,
5761/*	t		u		v		w	*/
5762CASE_GROUND_STATE,
5763CASE_GROUND_STATE,
5764CASE_GROUND_STATE,
5765CASE_GROUND_STATE,
5766/*	x		y		z		{	*/
5767CASE_GROUND_STATE,
5768CASE_GROUND_STATE,
5769CASE_GROUND_STATE,
5770CASE_GROUND_STATE,
5771/*	|		}		~		DEL	*/
5772CASE_GROUND_STATE,
5773CASE_GROUND_STATE,
5774CASE_GROUND_STATE,
5775CASE_IGNORE,
5776/*      0x80            0x81            0x82            0x83    */
5777CASE_GROUND_STATE,
5778CASE_GROUND_STATE,
5779CASE_GROUND_STATE,
5780CASE_GROUND_STATE,
5781/*      0x84            0x85            0x86            0x87    */
5782CASE_IND,
5783CASE_NEL,
5784CASE_GROUND_STATE,
5785CASE_GROUND_STATE,
5786/*      0x88            0x89            0x8a            0x8b    */
5787CASE_HTS,
5788CASE_GROUND_STATE,
5789CASE_GROUND_STATE,
5790CASE_GROUND_STATE,
5791/*      0x8c            0x8d            0x8e            0x8f    */
5792CASE_GROUND_STATE,
5793CASE_RI,
5794CASE_SS2,
5795CASE_SS3,
5796/*      0x90            0x91            0x92            0x93    */
5797CASE_DCS,
5798CASE_GROUND_STATE,
5799CASE_GROUND_STATE,
5800CASE_GROUND_STATE,
5801/*      0x94            0x95            0x96            0x97    */
5802CASE_GROUND_STATE,
5803CASE_GROUND_STATE,
5804CASE_SPA,
5805CASE_EPA,
5806/*      0x98            0x99            0x9a            0x9b    */
5807CASE_SOS,
5808CASE_GROUND_STATE,
5809CASE_DECID,
5810CASE_CSI_STATE,
5811/*      0x9c            0x9d            0x9e            0x9f    */
5812CASE_ST,
5813CASE_OSC,
5814CASE_PM,
5815CASE_APC,
5816/*      nobreakspace    exclamdown      cent            sterling        */
5817CASE_IGNORE,
5818CASE_IGNORE,
5819CASE_IGNORE,
5820CASE_IGNORE,
5821/*      currency        yen             brokenbar       section         */
5822CASE_IGNORE,
5823CASE_IGNORE,
5824CASE_IGNORE,
5825CASE_IGNORE,
5826/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5827CASE_IGNORE,
5828CASE_IGNORE,
5829CASE_IGNORE,
5830CASE_IGNORE,
5831/*      notsign         hyphen          registered      macron          */
5832CASE_IGNORE,
5833CASE_IGNORE,
5834CASE_IGNORE,
5835CASE_IGNORE,
5836/*      degree          plusminus       twosuperior     threesuperior   */
5837CASE_GROUND_STATE,
5838CASE_GROUND_STATE,
5839CASE_GROUND_STATE,
5840CASE_GROUND_STATE,
5841/*      acute           mu              paragraph       periodcentered  */
5842CASE_GROUND_STATE,
5843CASE_GROUND_STATE,
5844CASE_GROUND_STATE,
5845CASE_GROUND_STATE,
5846/*      cedilla         onesuperior     masculine       guillemotright  */
5847CASE_GROUND_STATE,
5848CASE_GROUND_STATE,
5849CASE_GROUND_STATE,
5850CASE_GROUND_STATE,
5851/*      onequarter      onehalf         threequarters   questiondown    */
5852CASE_GROUND_STATE,
5853CASE_GROUND_STATE,
5854CASE_GROUND_STATE,
5855CASE_GROUND_STATE,
5856/*      Agrave          Aacute          Acircumflex     Atilde          */
5857CASE_GROUND_STATE,
5858CASE_GROUND_STATE,
5859CASE_GROUND_STATE,
5860CASE_GROUND_STATE,
5861/*      Adiaeresis      Aring           AE              Ccedilla        */
5862CASE_GROUND_STATE,
5863CASE_GROUND_STATE,
5864CASE_GROUND_STATE,
5865CASE_GROUND_STATE,
5866/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5867CASE_GROUND_STATE,
5868CASE_GROUND_STATE,
5869CASE_GROUND_STATE,
5870CASE_GROUND_STATE,
5871/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5872CASE_GROUND_STATE,
5873CASE_GROUND_STATE,
5874CASE_GROUND_STATE,
5875CASE_GROUND_STATE,
5876/*      Eth             Ntilde          Ograve          Oacute          */
5877CASE_GROUND_STATE,
5878CASE_GROUND_STATE,
5879CASE_GROUND_STATE,
5880CASE_GROUND_STATE,
5881/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5882CASE_GROUND_STATE,
5883CASE_GROUND_STATE,
5884CASE_GROUND_STATE,
5885CASE_GROUND_STATE,
5886/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5887CASE_GROUND_STATE,
5888CASE_GROUND_STATE,
5889CASE_GROUND_STATE,
5890CASE_GROUND_STATE,
5891/*      Udiaeresis      Yacute          Thorn           ssharp          */
5892CASE_GROUND_STATE,
5893CASE_GROUND_STATE,
5894CASE_GROUND_STATE,
5895CASE_GROUND_STATE,
5896/*      agrave          aacute          acircumflex     atilde          */
5897CASE_GROUND_STATE,
5898CASE_GROUND_STATE,
5899CASE_GROUND_STATE,
5900CASE_GROUND_STATE,
5901/*      adiaeresis      aring           ae              ccedilla        */
5902CASE_GROUND_STATE,
5903CASE_GROUND_STATE,
5904CASE_GROUND_STATE,
5905CASE_GROUND_STATE,
5906/*      egrave          eacute          ecircumflex     ediaeresis      */
5907CASE_GROUND_STATE,
5908CASE_GROUND_STATE,
5909CASE_GROUND_STATE,
5910CASE_GROUND_STATE,
5911/*      igrave          iacute          icircumflex     idiaeresis      */
5912CASE_GROUND_STATE,
5913CASE_GROUND_STATE,
5914CASE_GROUND_STATE,
5915CASE_GROUND_STATE,
5916/*      eth             ntilde          ograve          oacute          */
5917CASE_GROUND_STATE,
5918CASE_GROUND_STATE,
5919CASE_GROUND_STATE,
5920CASE_GROUND_STATE,
5921/*      ocircumflex     otilde          odiaeresis      division        */
5922CASE_GROUND_STATE,
5923CASE_GROUND_STATE,
5924CASE_GROUND_STATE,
5925CASE_GROUND_STATE,
5926/*      oslash          ugrave          uacute          ucircumflex     */
5927CASE_GROUND_STATE,
5928CASE_GROUND_STATE,
5929CASE_GROUND_STATE,
5930CASE_GROUND_STATE,
5931/*      udiaeresis      yacute          thorn           ydiaeresis      */
5932CASE_GROUND_STATE,
5933CASE_GROUND_STATE,
5934CASE_GROUND_STATE,
5935CASE_IGNORE,
5936};
5937
5938Const PARSE_T esc_table[] =		/* ESC */
5939{
5940/*	NUL		SOH		STX		ETX	*/
5941CASE_IGNORE,
5942CASE_IGNORE,
5943CASE_IGNORE,
5944CASE_IGNORE,
5945/*	EOT		ENQ		ACK		BEL	*/
5946CASE_IGNORE,
5947CASE_ENQ,
5948CASE_IGNORE,
5949CASE_BELL,
5950/*	BS		HT		NL		VT	*/
5951CASE_BS,
5952CASE_TAB,
5953CASE_VMOT,
5954CASE_VMOT,
5955/*	FF		CR		SO		SI	*/
5956CASE_VMOT,
5957CASE_CR,
5958CASE_SO,
5959CASE_SI,
5960/*	DLE		DC1		DC2		DC3	*/
5961CASE_IGNORE,
5962CASE_IGNORE,
5963CASE_IGNORE,
5964CASE_IGNORE,
5965/*	DC4		NAK		SYN		ETB	*/
5966CASE_IGNORE,
5967CASE_IGNORE,
5968CASE_IGNORE,
5969CASE_IGNORE,
5970/*	CAN		EM		SUB		ESC	*/
5971CASE_GROUND_STATE,
5972CASE_IGNORE,
5973CASE_GROUND_STATE,
5974CASE_ESC,
5975/*	FS		GS		RS		US	*/
5976CASE_IGNORE,
5977CASE_IGNORE,
5978CASE_IGNORE,
5979CASE_IGNORE,
5980/*	SP		!		"		#	*/
5981CASE_ESC_SP_STATE,
5982CASE_ESC_IGNORE,
5983CASE_ESC_IGNORE,
5984CASE_SCR_STATE,
5985/*	$		%		&		'	*/
5986CASE_ESC_IGNORE,
5987CASE_ESC_PERCENT,
5988CASE_ESC_IGNORE,
5989CASE_ESC_IGNORE,
5990/*	(		)		*		+	*/
5991CASE_SCS0_STATE,
5992CASE_SCS1_STATE,
5993CASE_SCS2_STATE,
5994CASE_SCS3_STATE,
5995/*	,		-		.		/	*/
5996CASE_ESC_IGNORE,
5997CASE_SCS1A_STATE,
5998CASE_SCS2A_STATE,
5999CASE_SCS3A_STATE,
6000/*	0		1		2		3	*/
6001CASE_GROUND_STATE,
6002CASE_GROUND_STATE,
6003CASE_GROUND_STATE,
6004CASE_GROUND_STATE,
6005/*	4		5		6		7	*/
6006CASE_GROUND_STATE,
6007CASE_GROUND_STATE,
6008CASE_DECBI,
6009CASE_DECSC,
6010/*	8		9		:		;	*/
6011CASE_DECRC,
6012CASE_DECFI,
6013CASE_GROUND_STATE,
6014CASE_GROUND_STATE,
6015/*	<		=		>		?	*/
6016CASE_GROUND_STATE,
6017CASE_DECKPAM,
6018CASE_DECKPNM,
6019CASE_GROUND_STATE,
6020/*	@		A		B		C	*/
6021CASE_GROUND_STATE,
6022CASE_GROUND_STATE,
6023CASE_GROUND_STATE,
6024CASE_GROUND_STATE,
6025/*	D		E		F		G	*/
6026CASE_IND,
6027CASE_NEL,
6028CASE_HP_BUGGY_LL,
6029CASE_GROUND_STATE,
6030/*	H		I		J		K	*/
6031CASE_HTS,
6032CASE_GROUND_STATE,
6033CASE_GROUND_STATE,
6034CASE_GROUND_STATE,
6035/*	L		M		N		O	*/
6036CASE_GROUND_STATE,
6037CASE_RI,
6038CASE_SS2,
6039CASE_SS3,
6040/*	P		Q		R		S	*/
6041CASE_DCS,
6042CASE_GROUND_STATE,
6043CASE_GROUND_STATE,
6044CASE_GROUND_STATE,
6045/*	T		U		V		W	*/
6046CASE_GROUND_STATE,
6047CASE_GROUND_STATE,
6048CASE_SPA,
6049CASE_EPA,
6050/*	X		Y		Z		[	*/
6051CASE_SOS,
6052CASE_GROUND_STATE,
6053CASE_DECID,
6054CASE_CSI_STATE,
6055/*	\		]		^		_	*/
6056CASE_ST,
6057CASE_OSC,
6058CASE_PM,
6059CASE_APC,
6060/*	`		a		b		c	*/
6061CASE_GROUND_STATE,
6062CASE_GROUND_STATE,
6063CASE_GROUND_STATE,
6064CASE_RIS,
6065/*	d		e		f		g	*/
6066CASE_GROUND_STATE,
6067CASE_GROUND_STATE,
6068CASE_GROUND_STATE,
6069CASE_GROUND_STATE,
6070/*	h		i		j		k	*/
6071CASE_GROUND_STATE,
6072CASE_GROUND_STATE,
6073CASE_GROUND_STATE,
6074CASE_GROUND_STATE,
6075/*	l		m		n		o	*/
6076CASE_HP_MEM_LOCK,
6077CASE_HP_MEM_UNLOCK,
6078CASE_LS2,
6079CASE_LS3,
6080/*	p		q		r		s	*/
6081CASE_GROUND_STATE,
6082CASE_GROUND_STATE,
6083CASE_GROUND_STATE,
6084CASE_GROUND_STATE,
6085/*	t		u		v		w	*/
6086CASE_GROUND_STATE,
6087CASE_GROUND_STATE,
6088CASE_GROUND_STATE,
6089CASE_GROUND_STATE,
6090/*	x		y		z		{	*/
6091CASE_GROUND_STATE,
6092CASE_GROUND_STATE,
6093CASE_GROUND_STATE,
6094CASE_GROUND_STATE,
6095/*	|		}		~		DEL	*/
6096CASE_LS3R,
6097CASE_LS2R,
6098CASE_LS1R,
6099CASE_IGNORE,
6100/*      0x80            0x81            0x82            0x83    */
6101CASE_GROUND_STATE,
6102CASE_GROUND_STATE,
6103CASE_GROUND_STATE,
6104CASE_GROUND_STATE,
6105/*      0x84            0x85            0x86            0x87    */
6106CASE_IND,
6107CASE_NEL,
6108CASE_GROUND_STATE,
6109CASE_GROUND_STATE,
6110/*      0x88            0x89            0x8a            0x8b    */
6111CASE_HTS,
6112CASE_GROUND_STATE,
6113CASE_GROUND_STATE,
6114CASE_GROUND_STATE,
6115/*      0x8c            0x8d            0x8e            0x8f    */
6116CASE_GROUND_STATE,
6117CASE_RI,
6118CASE_SS2,
6119CASE_SS3,
6120/*      0x90            0x91            0x92            0x93    */
6121CASE_DCS,
6122CASE_GROUND_STATE,
6123CASE_GROUND_STATE,
6124CASE_GROUND_STATE,
6125/*      0x94            0x95            0x96            0x97    */
6126CASE_GROUND_STATE,
6127CASE_GROUND_STATE,
6128CASE_SPA,
6129CASE_EPA,
6130/*      0x98            0x99            0x9a            0x9b    */
6131CASE_SOS,
6132CASE_GROUND_STATE,
6133CASE_DECID,
6134CASE_CSI_STATE,
6135/*      0x9c            0x9d            0x9e            0x9f    */
6136CASE_ST,
6137CASE_OSC,
6138CASE_PM,
6139CASE_APC,
6140/*      nobreakspace    exclamdown      cent            sterling        */
6141CASE_ESC_SP_STATE,
6142CASE_ESC_IGNORE,
6143CASE_ESC_IGNORE,
6144CASE_SCR_STATE,
6145/*      currency        yen             brokenbar       section         */
6146CASE_ESC_IGNORE,
6147CASE_ESC_PERCENT,
6148CASE_ESC_IGNORE,
6149CASE_ESC_IGNORE,
6150/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6151CASE_SCS0_STATE,
6152CASE_SCS1_STATE,
6153CASE_SCS2_STATE,
6154CASE_SCS3_STATE,
6155/*      notsign         hyphen          registered      macron          */
6156CASE_ESC_IGNORE,
6157CASE_SCS1A_STATE,
6158CASE_SCS2A_STATE,
6159CASE_SCS3A_STATE,
6160/*      degree          plusminus       twosuperior     threesuperior   */
6161CASE_GROUND_STATE,
6162CASE_GROUND_STATE,
6163CASE_GROUND_STATE,
6164CASE_GROUND_STATE,
6165/*      acute           mu              paragraph       periodcentered  */
6166CASE_GROUND_STATE,
6167CASE_GROUND_STATE,
6168CASE_DECBI,
6169CASE_DECSC,
6170/*      cedilla         onesuperior     masculine       guillemotright  */
6171CASE_DECRC,
6172CASE_DECFI,
6173CASE_GROUND_STATE,
6174CASE_GROUND_STATE,
6175/*      onequarter      onehalf         threequarters   questiondown    */
6176CASE_GROUND_STATE,
6177CASE_DECKPAM,
6178CASE_DECKPNM,
6179CASE_GROUND_STATE,
6180/*      Agrave          Aacute          Acircumflex     Atilde          */
6181CASE_GROUND_STATE,
6182CASE_GROUND_STATE,
6183CASE_GROUND_STATE,
6184CASE_GROUND_STATE,
6185/*      Adiaeresis      Aring           AE              Ccedilla        */
6186CASE_IND,
6187CASE_NEL,
6188CASE_HP_BUGGY_LL,
6189CASE_GROUND_STATE,
6190/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6191CASE_HTS,
6192CASE_GROUND_STATE,
6193CASE_GROUND_STATE,
6194CASE_GROUND_STATE,
6195/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6196CASE_GROUND_STATE,
6197CASE_RI,
6198CASE_SS2,
6199CASE_SS3,
6200/*      Eth             Ntilde          Ograve          Oacute          */
6201CASE_DCS,
6202CASE_GROUND_STATE,
6203CASE_GROUND_STATE,
6204CASE_GROUND_STATE,
6205/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6206CASE_GROUND_STATE,
6207CASE_GROUND_STATE,
6208CASE_SPA,
6209CASE_EPA,
6210/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6211CASE_SOS,
6212CASE_GROUND_STATE,
6213CASE_DECID,
6214CASE_CSI_STATE,
6215/*      Udiaeresis      Yacute          Thorn           ssharp          */
6216CASE_ST,
6217CASE_OSC,
6218CASE_PM,
6219CASE_APC,
6220/*      agrave          aacute          acircumflex     atilde          */
6221CASE_GROUND_STATE,
6222CASE_GROUND_STATE,
6223CASE_GROUND_STATE,
6224CASE_RIS,
6225/*      adiaeresis      aring           ae              ccedilla        */
6226CASE_GROUND_STATE,
6227CASE_GROUND_STATE,
6228CASE_GROUND_STATE,
6229CASE_GROUND_STATE,
6230/*      egrave          eacute          ecircumflex     ediaeresis      */
6231CASE_GROUND_STATE,
6232CASE_GROUND_STATE,
6233CASE_GROUND_STATE,
6234CASE_GROUND_STATE,
6235/*      igrave          iacute          icircumflex     idiaeresis      */
6236CASE_HP_MEM_LOCK,
6237CASE_HP_MEM_UNLOCK,
6238CASE_LS2,
6239CASE_LS3,
6240/*      eth             ntilde          ograve          oacute          */
6241CASE_GROUND_STATE,
6242CASE_GROUND_STATE,
6243CASE_GROUND_STATE,
6244CASE_GROUND_STATE,
6245/*      ocircumflex     otilde          odiaeresis      division        */
6246CASE_GROUND_STATE,
6247CASE_GROUND_STATE,
6248CASE_GROUND_STATE,
6249CASE_GROUND_STATE,
6250/*      oslash          ugrave          uacute          ucircumflex     */
6251CASE_GROUND_STATE,
6252CASE_GROUND_STATE,
6253CASE_GROUND_STATE,
6254CASE_GROUND_STATE,
6255/*      udiaeresis      yacute          thorn           ydiaeresis      */
6256CASE_LS3R,
6257CASE_LS2R,
6258CASE_LS1R,
6259CASE_IGNORE,
6260};
6261
6262Const PARSE_T esc_sp_table[] =		/* ESC SP */
6263{
6264/*	NUL		SOH		STX		ETX	*/
6265CASE_IGNORE,
6266CASE_IGNORE,
6267CASE_IGNORE,
6268CASE_IGNORE,
6269/*	EOT		ENQ		ACK		BEL	*/
6270CASE_IGNORE,
6271CASE_ENQ,
6272CASE_IGNORE,
6273CASE_BELL,
6274/*	BS		HT		NL		VT	*/
6275CASE_BS,
6276CASE_TAB,
6277CASE_VMOT,
6278CASE_VMOT,
6279/*	FF		CR		SO		SI	*/
6280CASE_VMOT,
6281CASE_CR,
6282CASE_SO,
6283CASE_SI,
6284/*	DLE		DC1		DC2		DC3	*/
6285CASE_IGNORE,
6286CASE_IGNORE,
6287CASE_IGNORE,
6288CASE_IGNORE,
6289/*	DC4		NAK		SYN		ETB	*/
6290CASE_IGNORE,
6291CASE_IGNORE,
6292CASE_IGNORE,
6293CASE_IGNORE,
6294/*	CAN		EM		SUB		ESC	*/
6295CASE_GROUND_STATE,
6296CASE_IGNORE,
6297CASE_GROUND_STATE,
6298CASE_ESC,
6299/*	FS		GS		RS		US	*/
6300CASE_IGNORE,
6301CASE_IGNORE,
6302CASE_IGNORE,
6303CASE_IGNORE,
6304/*	SP		!		"		#	*/
6305CASE_ESC_IGNORE,
6306CASE_ESC_IGNORE,
6307CASE_ESC_IGNORE,
6308CASE_ESC_IGNORE,
6309/*	$		%		&		'	*/
6310CASE_ESC_IGNORE,
6311CASE_ESC_IGNORE,
6312CASE_ESC_IGNORE,
6313CASE_ESC_IGNORE,
6314/*	(		)		*		+	*/
6315CASE_ESC_IGNORE,
6316CASE_ESC_IGNORE,
6317CASE_ESC_IGNORE,
6318CASE_ESC_IGNORE,
6319/*	,		-		.		/	*/
6320CASE_ESC_IGNORE,
6321CASE_ESC_IGNORE,
6322CASE_ESC_IGNORE,
6323CASE_ESC_IGNORE,
6324/*	0		1		2		3	*/
6325CASE_GROUND_STATE,
6326CASE_GROUND_STATE,
6327CASE_GROUND_STATE,
6328CASE_GROUND_STATE,
6329/*	4		5		6		7	*/
6330CASE_GROUND_STATE,
6331CASE_GROUND_STATE,
6332CASE_GROUND_STATE,
6333CASE_GROUND_STATE,
6334/*	8		9		:		;	*/
6335CASE_GROUND_STATE,
6336CASE_GROUND_STATE,
6337CASE_GROUND_STATE,
6338CASE_GROUND_STATE,
6339/*	<		=		>		?	*/
6340CASE_GROUND_STATE,
6341CASE_GROUND_STATE,
6342CASE_GROUND_STATE,
6343CASE_GROUND_STATE,
6344/*	@		A		B		C	*/
6345CASE_GROUND_STATE,
6346CASE_GROUND_STATE,
6347CASE_GROUND_STATE,
6348CASE_GROUND_STATE,
6349/*	D		E		F		G	*/
6350CASE_GROUND_STATE,
6351CASE_GROUND_STATE,
6352CASE_S7C1T,
6353CASE_S8C1T,
6354/*	H		I		J		K	*/
6355CASE_GROUND_STATE,
6356CASE_GROUND_STATE,
6357CASE_GROUND_STATE,
6358CASE_GROUND_STATE,
6359/*	L		M		N		O	*/
6360CASE_ANSI_LEVEL_1,
6361CASE_ANSI_LEVEL_2,
6362CASE_ANSI_LEVEL_3,
6363CASE_GROUND_STATE,
6364/*	P		Q		R		S	*/
6365CASE_GROUND_STATE,
6366CASE_GROUND_STATE,
6367CASE_GROUND_STATE,
6368CASE_GROUND_STATE,
6369/*	T		U		V		W	*/
6370CASE_GROUND_STATE,
6371CASE_GROUND_STATE,
6372CASE_GROUND_STATE,
6373CASE_GROUND_STATE,
6374/*	X		Y		Z		[	*/
6375CASE_GROUND_STATE,
6376CASE_GROUND_STATE,
6377CASE_GROUND_STATE,
6378CASE_GROUND_STATE,
6379/*	\		]		^		_	*/
6380CASE_GROUND_STATE,
6381CASE_GROUND_STATE,
6382CASE_GROUND_STATE,
6383CASE_GROUND_STATE,
6384/*	`		a		b		c	*/
6385CASE_GROUND_STATE,
6386CASE_GROUND_STATE,
6387CASE_GROUND_STATE,
6388CASE_GROUND_STATE,
6389/*	d		e		f		g	*/
6390CASE_GROUND_STATE,
6391CASE_GROUND_STATE,
6392CASE_GROUND_STATE,
6393CASE_GROUND_STATE,
6394/*	h		i		j		k	*/
6395CASE_GROUND_STATE,
6396CASE_GROUND_STATE,
6397CASE_GROUND_STATE,
6398CASE_GROUND_STATE,
6399/*	l		m		n		o	*/
6400CASE_GROUND_STATE,
6401CASE_GROUND_STATE,
6402CASE_GROUND_STATE,
6403CASE_GROUND_STATE,
6404/*	p		q		r		s	*/
6405CASE_GROUND_STATE,
6406CASE_GROUND_STATE,
6407CASE_GROUND_STATE,
6408CASE_GROUND_STATE,
6409/*	t		u		v		w	*/
6410CASE_GROUND_STATE,
6411CASE_GROUND_STATE,
6412CASE_GROUND_STATE,
6413CASE_GROUND_STATE,
6414/*	x		y		z		{	*/
6415CASE_GROUND_STATE,
6416CASE_GROUND_STATE,
6417CASE_GROUND_STATE,
6418CASE_GROUND_STATE,
6419/*	|		}		~		DEL	*/
6420CASE_GROUND_STATE,
6421CASE_GROUND_STATE,
6422CASE_GROUND_STATE,
6423CASE_IGNORE,
6424/*      0x80            0x81            0x82            0x83    */
6425CASE_GROUND_STATE,
6426CASE_GROUND_STATE,
6427CASE_GROUND_STATE,
6428CASE_GROUND_STATE,
6429/*      0x84            0x85            0x86            0x87    */
6430CASE_IND,
6431CASE_NEL,
6432CASE_GROUND_STATE,
6433CASE_GROUND_STATE,
6434/*      0x88            0x89            0x8a            0x8b    */
6435CASE_HTS,
6436CASE_GROUND_STATE,
6437CASE_GROUND_STATE,
6438CASE_GROUND_STATE,
6439/*      0x8c            0x8d            0x8e            0x8f    */
6440CASE_GROUND_STATE,
6441CASE_RI,
6442CASE_SS2,
6443CASE_SS3,
6444/*      0x90            0x91            0x92            0x93    */
6445CASE_DCS,
6446CASE_GROUND_STATE,
6447CASE_GROUND_STATE,
6448CASE_GROUND_STATE,
6449/*      0x94            0x95            0x96            0x97    */
6450CASE_GROUND_STATE,
6451CASE_GROUND_STATE,
6452CASE_SPA,
6453CASE_EPA,
6454/*      0x98            0x99            0x9a            0x9b    */
6455CASE_SOS,
6456CASE_GROUND_STATE,
6457CASE_DECID,
6458CASE_CSI_STATE,
6459/*      0x9c            0x9d            0x9e            0x9f    */
6460CASE_ST,
6461CASE_OSC,
6462CASE_PM,
6463CASE_APC,
6464/*      nobreakspace    exclamdown      cent            sterling        */
6465CASE_ESC_IGNORE,
6466CASE_ESC_IGNORE,
6467CASE_ESC_IGNORE,
6468CASE_ESC_IGNORE,
6469/*      currency        yen             brokenbar       section         */
6470CASE_ESC_IGNORE,
6471CASE_ESC_IGNORE,
6472CASE_ESC_IGNORE,
6473CASE_ESC_IGNORE,
6474/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6475CASE_ESC_IGNORE,
6476CASE_ESC_IGNORE,
6477CASE_ESC_IGNORE,
6478CASE_ESC_IGNORE,
6479/*      notsign         hyphen          registered      macron          */
6480CASE_ESC_IGNORE,
6481CASE_ESC_IGNORE,
6482CASE_ESC_IGNORE,
6483CASE_ESC_IGNORE,
6484/*      degree          plusminus       twosuperior     threesuperior   */
6485CASE_GROUND_STATE,
6486CASE_GROUND_STATE,
6487CASE_GROUND_STATE,
6488CASE_GROUND_STATE,
6489/*      acute           mu              paragraph       periodcentered  */
6490CASE_GROUND_STATE,
6491CASE_GROUND_STATE,
6492CASE_GROUND_STATE,
6493CASE_GROUND_STATE,
6494/*      cedilla         onesuperior     masculine       guillemotright  */
6495CASE_GROUND_STATE,
6496CASE_GROUND_STATE,
6497CASE_GROUND_STATE,
6498CASE_GROUND_STATE,
6499/*      onequarter      onehalf         threequarters   questiondown    */
6500CASE_GROUND_STATE,
6501CASE_GROUND_STATE,
6502CASE_GROUND_STATE,
6503CASE_GROUND_STATE,
6504/*      Agrave          Aacute          Acircumflex     Atilde          */
6505CASE_GROUND_STATE,
6506CASE_GROUND_STATE,
6507CASE_GROUND_STATE,
6508CASE_GROUND_STATE,
6509/*      Adiaeresis      Aring           AE              Ccedilla        */
6510CASE_GROUND_STATE,
6511CASE_GROUND_STATE,
6512CASE_S7C1T,
6513CASE_S8C1T,
6514/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6515CASE_GROUND_STATE,
6516CASE_GROUND_STATE,
6517CASE_GROUND_STATE,
6518CASE_GROUND_STATE,
6519/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6520CASE_ANSI_LEVEL_1,
6521CASE_ANSI_LEVEL_2,
6522CASE_ANSI_LEVEL_3,
6523CASE_GROUND_STATE,
6524/*      Eth             Ntilde          Ograve          Oacute          */
6525CASE_GROUND_STATE,
6526CASE_GROUND_STATE,
6527CASE_GROUND_STATE,
6528CASE_GROUND_STATE,
6529/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6530CASE_GROUND_STATE,
6531CASE_GROUND_STATE,
6532CASE_GROUND_STATE,
6533CASE_GROUND_STATE,
6534/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6535CASE_GROUND_STATE,
6536CASE_GROUND_STATE,
6537CASE_GROUND_STATE,
6538CASE_GROUND_STATE,
6539/*      Udiaeresis      Yacute          Thorn           ssharp          */
6540CASE_GROUND_STATE,
6541CASE_GROUND_STATE,
6542CASE_GROUND_STATE,
6543CASE_GROUND_STATE,
6544/*      agrave          aacute          acircumflex     atilde          */
6545CASE_GROUND_STATE,
6546CASE_GROUND_STATE,
6547CASE_GROUND_STATE,
6548CASE_GROUND_STATE,
6549/*      adiaeresis      aring           ae              ccedilla        */
6550CASE_GROUND_STATE,
6551CASE_GROUND_STATE,
6552CASE_GROUND_STATE,
6553CASE_GROUND_STATE,
6554/*      egrave          eacute          ecircumflex     ediaeresis      */
6555CASE_GROUND_STATE,
6556CASE_GROUND_STATE,
6557CASE_GROUND_STATE,
6558CASE_GROUND_STATE,
6559/*      igrave          iacute          icircumflex     idiaeresis      */
6560CASE_GROUND_STATE,
6561CASE_GROUND_STATE,
6562CASE_GROUND_STATE,
6563CASE_GROUND_STATE,
6564/*      eth             ntilde          ograve          oacute          */
6565CASE_GROUND_STATE,
6566CASE_GROUND_STATE,
6567CASE_GROUND_STATE,
6568CASE_GROUND_STATE,
6569/*      ocircumflex     otilde          odiaeresis      division        */
6570CASE_GROUND_STATE,
6571CASE_GROUND_STATE,
6572CASE_GROUND_STATE,
6573CASE_GROUND_STATE,
6574/*      oslash          ugrave          uacute          ucircumflex     */
6575CASE_GROUND_STATE,
6576CASE_GROUND_STATE,
6577CASE_GROUND_STATE,
6578CASE_GROUND_STATE,
6579/*      udiaeresis      yacute          thorn           ydiaeresis      */
6580CASE_GROUND_STATE,
6581CASE_GROUND_STATE,
6582CASE_GROUND_STATE,
6583CASE_IGNORE,
6584};
6585
6586Const PARSE_T scrtable[] =		/* ESC # */
6587{
6588/*	NUL		SOH		STX		ETX	*/
6589CASE_IGNORE,
6590CASE_IGNORE,
6591CASE_IGNORE,
6592CASE_IGNORE,
6593/*	EOT		ENQ		ACK		BEL	*/
6594CASE_IGNORE,
6595CASE_ENQ,
6596CASE_IGNORE,
6597CASE_BELL,
6598/*	BS		HT		NL		VT	*/
6599CASE_BS,
6600CASE_TAB,
6601CASE_VMOT,
6602CASE_VMOT,
6603/*	FF		CR		SO		SI	*/
6604CASE_VMOT,
6605CASE_CR,
6606CASE_SO,
6607CASE_SI,
6608/*	DLE		DC1		DC2		DC3	*/
6609CASE_IGNORE,
6610CASE_IGNORE,
6611CASE_IGNORE,
6612CASE_IGNORE,
6613/*	DC4		NAK		SYN		ETB	*/
6614CASE_IGNORE,
6615CASE_IGNORE,
6616CASE_IGNORE,
6617CASE_IGNORE,
6618/*	CAN		EM		SUB		ESC	*/
6619CASE_GROUND_STATE,
6620CASE_IGNORE,
6621CASE_GROUND_STATE,
6622CASE_ESC,
6623/*	FS		GS		RS		US	*/
6624CASE_IGNORE,
6625CASE_IGNORE,
6626CASE_IGNORE,
6627CASE_IGNORE,
6628/*	SP		!		"		#	*/
6629CASE_ESC_IGNORE,
6630CASE_ESC_IGNORE,
6631CASE_ESC_IGNORE,
6632CASE_ESC_IGNORE,
6633/*	$		%		&		'	*/
6634CASE_ESC_IGNORE,
6635CASE_ESC_IGNORE,
6636CASE_ESC_IGNORE,
6637CASE_ESC_IGNORE,
6638/*	(		)		*		+	*/
6639CASE_ESC_IGNORE,
6640CASE_ESC_IGNORE,
6641CASE_ESC_IGNORE,
6642CASE_ESC_IGNORE,
6643/*	,		-		.		/	*/
6644CASE_ESC_IGNORE,
6645CASE_ESC_IGNORE,
6646CASE_ESC_IGNORE,
6647CASE_ESC_IGNORE,
6648/*	0		1		2		3	*/
6649CASE_GROUND_STATE,
6650CASE_GROUND_STATE,
6651CASE_GROUND_STATE,
6652CASE_DECDHL,
6653/*	4		5		6		7	*/
6654CASE_DECDHL,
6655CASE_DECSWL,
6656CASE_DECDWL,
6657CASE_GROUND_STATE,
6658/*	8		9		:		;	*/
6659CASE_DECALN,
6660CASE_GROUND_STATE,
6661CASE_GROUND_STATE,
6662CASE_GROUND_STATE,
6663/*	<		=		>		?	*/
6664CASE_GROUND_STATE,
6665CASE_GROUND_STATE,
6666CASE_GROUND_STATE,
6667CASE_GROUND_STATE,
6668/*	@		A		B		C	*/
6669CASE_GROUND_STATE,
6670CASE_GROUND_STATE,
6671CASE_GROUND_STATE,
6672CASE_GROUND_STATE,
6673/*	D		E		F		G	*/
6674CASE_GROUND_STATE,
6675CASE_GROUND_STATE,
6676CASE_GROUND_STATE,
6677CASE_GROUND_STATE,
6678/*	H		I		J		K	*/
6679CASE_GROUND_STATE,
6680CASE_GROUND_STATE,
6681CASE_GROUND_STATE,
6682CASE_GROUND_STATE,
6683/*	L		M		N		O	*/
6684CASE_GROUND_STATE,
6685CASE_GROUND_STATE,
6686CASE_GROUND_STATE,
6687CASE_GROUND_STATE,
6688/*	P		Q		R		S	*/
6689CASE_GROUND_STATE,
6690CASE_GROUND_STATE,
6691CASE_GROUND_STATE,
6692CASE_GROUND_STATE,
6693/*	T		U		V		W	*/
6694CASE_GROUND_STATE,
6695CASE_GROUND_STATE,
6696CASE_GROUND_STATE,
6697CASE_GROUND_STATE,
6698/*	X		Y		Z		[	*/
6699CASE_GROUND_STATE,
6700CASE_GROUND_STATE,
6701CASE_GROUND_STATE,
6702CASE_GROUND_STATE,
6703/*	\		]		^		_	*/
6704CASE_GROUND_STATE,
6705CASE_GROUND_STATE,
6706CASE_GROUND_STATE,
6707CASE_GROUND_STATE,
6708/*	`		a		b		c	*/
6709CASE_GROUND_STATE,
6710CASE_GROUND_STATE,
6711CASE_GROUND_STATE,
6712CASE_GROUND_STATE,
6713/*	d		e		f		g	*/
6714CASE_GROUND_STATE,
6715CASE_GROUND_STATE,
6716CASE_GROUND_STATE,
6717CASE_GROUND_STATE,
6718/*	h		i		j		k	*/
6719CASE_GROUND_STATE,
6720CASE_GROUND_STATE,
6721CASE_GROUND_STATE,
6722CASE_GROUND_STATE,
6723/*	l		m		n		o	*/
6724CASE_GROUND_STATE,
6725CASE_GROUND_STATE,
6726CASE_GROUND_STATE,
6727CASE_GROUND_STATE,
6728/*	p		q		r		s	*/
6729CASE_GROUND_STATE,
6730CASE_GROUND_STATE,
6731CASE_GROUND_STATE,
6732CASE_GROUND_STATE,
6733/*	t		u		v		w	*/
6734CASE_GROUND_STATE,
6735CASE_GROUND_STATE,
6736CASE_GROUND_STATE,
6737CASE_GROUND_STATE,
6738/*	x		y		z		{	*/
6739CASE_GROUND_STATE,
6740CASE_GROUND_STATE,
6741CASE_GROUND_STATE,
6742CASE_GROUND_STATE,
6743/*	|		}		~		DEL	*/
6744CASE_GROUND_STATE,
6745CASE_GROUND_STATE,
6746CASE_GROUND_STATE,
6747CASE_IGNORE,
6748/*      0x80            0x81            0x82            0x83    */
6749CASE_GROUND_STATE,
6750CASE_GROUND_STATE,
6751CASE_GROUND_STATE,
6752CASE_GROUND_STATE,
6753/*      0x84            0x85            0x86            0x87    */
6754CASE_IND,
6755CASE_NEL,
6756CASE_GROUND_STATE,
6757CASE_GROUND_STATE,
6758/*      0x88            0x89            0x8a            0x8b    */
6759CASE_HTS,
6760CASE_GROUND_STATE,
6761CASE_GROUND_STATE,
6762CASE_GROUND_STATE,
6763/*      0x8c            0x8d            0x8e            0x8f    */
6764CASE_GROUND_STATE,
6765CASE_RI,
6766CASE_SS2,
6767CASE_SS3,
6768/*      0x90            0x91            0x92            0x93    */
6769CASE_DCS,
6770CASE_GROUND_STATE,
6771CASE_GROUND_STATE,
6772CASE_GROUND_STATE,
6773/*      0x94            0x95            0x96            0x97    */
6774CASE_GROUND_STATE,
6775CASE_GROUND_STATE,
6776CASE_SPA,
6777CASE_EPA,
6778/*      0x98            0x99            0x9a            0x9b    */
6779CASE_SOS,
6780CASE_GROUND_STATE,
6781CASE_DECID,
6782CASE_CSI_STATE,
6783/*      0x9c            0x9d            0x9e            0x9f    */
6784CASE_ST,
6785CASE_OSC,
6786CASE_PM,
6787CASE_APC,
6788/*      nobreakspace    exclamdown      cent            sterling        */
6789CASE_ESC_IGNORE,
6790CASE_ESC_IGNORE,
6791CASE_ESC_IGNORE,
6792CASE_ESC_IGNORE,
6793/*      currency        yen             brokenbar       section         */
6794CASE_ESC_IGNORE,
6795CASE_ESC_IGNORE,
6796CASE_ESC_IGNORE,
6797CASE_ESC_IGNORE,
6798/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6799CASE_ESC_IGNORE,
6800CASE_ESC_IGNORE,
6801CASE_ESC_IGNORE,
6802CASE_ESC_IGNORE,
6803/*      notsign         hyphen          registered      macron          */
6804CASE_ESC_IGNORE,
6805CASE_ESC_IGNORE,
6806CASE_ESC_IGNORE,
6807CASE_ESC_IGNORE,
6808/*      degree          plusminus       twosuperior     threesuperior   */
6809CASE_GROUND_STATE,
6810CASE_GROUND_STATE,
6811CASE_GROUND_STATE,
6812CASE_DECDHL,
6813/*      acute           mu              paragraph       periodcentered  */
6814CASE_DECDHL,
6815CASE_DECSWL,
6816CASE_DECDWL,
6817CASE_GROUND_STATE,
6818/*      cedilla         onesuperior     masculine       guillemotright  */
6819CASE_DECALN,
6820CASE_GROUND_STATE,
6821CASE_GROUND_STATE,
6822CASE_GROUND_STATE,
6823/*      onequarter      onehalf         threequarters   questiondown    */
6824CASE_GROUND_STATE,
6825CASE_GROUND_STATE,
6826CASE_GROUND_STATE,
6827CASE_GROUND_STATE,
6828/*      Agrave          Aacute          Acircumflex     Atilde          */
6829CASE_GROUND_STATE,
6830CASE_GROUND_STATE,
6831CASE_GROUND_STATE,
6832CASE_GROUND_STATE,
6833/*      Adiaeresis      Aring           AE              Ccedilla        */
6834CASE_GROUND_STATE,
6835CASE_GROUND_STATE,
6836CASE_GROUND_STATE,
6837CASE_GROUND_STATE,
6838/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6839CASE_GROUND_STATE,
6840CASE_GROUND_STATE,
6841CASE_GROUND_STATE,
6842CASE_GROUND_STATE,
6843/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6844CASE_GROUND_STATE,
6845CASE_GROUND_STATE,
6846CASE_GROUND_STATE,
6847CASE_GROUND_STATE,
6848/*      Eth             Ntilde          Ograve          Oacute          */
6849CASE_GROUND_STATE,
6850CASE_GROUND_STATE,
6851CASE_GROUND_STATE,
6852CASE_GROUND_STATE,
6853/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6854CASE_GROUND_STATE,
6855CASE_GROUND_STATE,
6856CASE_GROUND_STATE,
6857CASE_GROUND_STATE,
6858/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6859CASE_GROUND_STATE,
6860CASE_GROUND_STATE,
6861CASE_GROUND_STATE,
6862CASE_GROUND_STATE,
6863/*      Udiaeresis      Yacute          Thorn           ssharp          */
6864CASE_GROUND_STATE,
6865CASE_GROUND_STATE,
6866CASE_GROUND_STATE,
6867CASE_GROUND_STATE,
6868/*      agrave          aacute          acircumflex     atilde          */
6869CASE_GROUND_STATE,
6870CASE_GROUND_STATE,
6871CASE_GROUND_STATE,
6872CASE_GROUND_STATE,
6873/*      adiaeresis      aring           ae              ccedilla        */
6874CASE_GROUND_STATE,
6875CASE_GROUND_STATE,
6876CASE_GROUND_STATE,
6877CASE_GROUND_STATE,
6878/*      egrave          eacute          ecircumflex     ediaeresis      */
6879CASE_GROUND_STATE,
6880CASE_GROUND_STATE,
6881CASE_GROUND_STATE,
6882CASE_GROUND_STATE,
6883/*      igrave          iacute          icircumflex     idiaeresis      */
6884CASE_GROUND_STATE,
6885CASE_GROUND_STATE,
6886CASE_GROUND_STATE,
6887CASE_GROUND_STATE,
6888/*      eth             ntilde          ograve          oacute          */
6889CASE_GROUND_STATE,
6890CASE_GROUND_STATE,
6891CASE_GROUND_STATE,
6892CASE_GROUND_STATE,
6893/*      ocircumflex     otilde          odiaeresis      division        */
6894CASE_GROUND_STATE,
6895CASE_GROUND_STATE,
6896CASE_GROUND_STATE,
6897CASE_GROUND_STATE,
6898/*      oslash          ugrave          uacute          ucircumflex     */
6899CASE_GROUND_STATE,
6900CASE_GROUND_STATE,
6901CASE_GROUND_STATE,
6902CASE_GROUND_STATE,
6903/*      udiaeresis      yacute          thorn           ydiaeresis      */
6904CASE_GROUND_STATE,
6905CASE_GROUND_STATE,
6906CASE_GROUND_STATE,
6907CASE_IGNORE,
6908};
6909
6910Const PARSE_T scstable[] =		/* ESC ( etc. */
6911{
6912/*	NUL		SOH		STX		ETX	*/
6913CASE_IGNORE,
6914CASE_IGNORE,
6915CASE_IGNORE,
6916CASE_IGNORE,
6917/*	EOT		ENQ		ACK		BEL	*/
6918CASE_IGNORE,
6919CASE_ENQ,
6920CASE_IGNORE,
6921CASE_BELL,
6922/*	BS		HT		NL		VT	*/
6923CASE_BS,
6924CASE_TAB,
6925CASE_VMOT,
6926CASE_VMOT,
6927/*	FF		CR		SO		SI	*/
6928CASE_VMOT,
6929CASE_CR,
6930CASE_SO,
6931CASE_SI,
6932/*	DLE		DC1		DC2		DC3	*/
6933CASE_IGNORE,
6934CASE_IGNORE,
6935CASE_IGNORE,
6936CASE_IGNORE,
6937/*	DC4		NAK		SYN		ETB	*/
6938CASE_IGNORE,
6939CASE_IGNORE,
6940CASE_IGNORE,
6941CASE_IGNORE,
6942/*	CAN		EM		SUB		ESC	*/
6943CASE_GROUND_STATE,
6944CASE_IGNORE,
6945CASE_GROUND_STATE,
6946CASE_ESC,
6947/*	FS		GS		RS		US	*/
6948CASE_IGNORE,
6949CASE_IGNORE,
6950CASE_IGNORE,
6951CASE_IGNORE,
6952/*	SP		!		"		#	*/
6953CASE_ESC_IGNORE,
6954CASE_ESC_IGNORE,
6955CASE_SCS_DQUOTE,
6956CASE_ESC_IGNORE,
6957/*	$		%		&		'	*/
6958CASE_ESC_IGNORE,
6959CASE_SCS_PERCENT,
6960CASE_SCS_AMPRSND,
6961CASE_ESC_IGNORE,
6962/*	(		)		*		+	*/
6963CASE_ESC_IGNORE,
6964CASE_ESC_IGNORE,
6965CASE_ESC_IGNORE,
6966CASE_ESC_IGNORE,
6967/*	,		-		.		/	*/
6968CASE_ESC_IGNORE,
6969CASE_ESC_IGNORE,
6970CASE_ESC_IGNORE,
6971CASE_ESC_IGNORE,
6972/*	0		1		2		3	*/
6973CASE_GSETS,
6974CASE_GSETS,
6975CASE_GSETS,
6976CASE_GROUND_STATE,
6977/*	4		5		6		7	*/
6978CASE_GSETS,
6979CASE_GSETS,
6980CASE_GSETS,
6981CASE_GSETS,
6982/*	8		9		:		;	*/
6983CASE_GROUND_STATE,
6984CASE_GSETS3,
6985CASE_GROUND_STATE,
6986CASE_GROUND_STATE,
6987/*	<		=		>		?	*/
6988CASE_GSETS,
6989CASE_GSETS,
6990CASE_GSETS3,
6991CASE_GROUND_STATE,
6992/*	@		A		B		C	*/
6993CASE_GROUND_STATE,
6994CASE_GSETS,
6995CASE_GSETS,
6996CASE_GSETS,
6997/*	D		E		F		G	*/
6998CASE_GROUND_STATE,
6999CASE_GSETS,
7000CASE_GROUND_STATE,
7001CASE_GROUND_STATE,
7002/*	H		I		J		K	*/
7003CASE_GSETS,
7004CASE_GROUND_STATE,
7005CASE_GROUND_STATE,
7006CASE_GSETS,
7007/*	L		M		N		O	*/
7008CASE_GROUND_STATE,
7009CASE_GROUND_STATE,
7010CASE_GROUND_STATE,
7011CASE_GROUND_STATE,
7012/*	P		Q		R		S	*/
7013CASE_GROUND_STATE,
7014CASE_GSETS,
7015CASE_GSETS,
7016CASE_GROUND_STATE,
7017/*	T		U		V		W	*/
7018CASE_GROUND_STATE,
7019CASE_GROUND_STATE,
7020CASE_GROUND_STATE,
7021CASE_GROUND_STATE,
7022/*	X		Y		Z		[	*/
7023CASE_GROUND_STATE,
7024CASE_GSETS,
7025CASE_GSETS,
7026CASE_GROUND_STATE,
7027/*	\		]		^		_	*/
7028CASE_GROUND_STATE,
7029CASE_GROUND_STATE,
7030CASE_GROUND_STATE,
7031CASE_GROUND_STATE,
7032/*	`		a		b		c	*/
7033CASE_GSETS3,
7034CASE_GROUND_STATE,
7035CASE_GROUND_STATE,
7036CASE_GROUND_STATE,
7037/*	d		e		f		g	*/
7038CASE_GROUND_STATE,
7039CASE_GROUND_STATE,
7040CASE_GSETS,
7041CASE_GROUND_STATE,
7042/*	h		i		j		k	*/
7043CASE_GROUND_STATE,
7044CASE_GROUND_STATE,
7045CASE_GROUND_STATE,
7046CASE_GROUND_STATE,
7047/*	l		m		n		o	*/
7048CASE_GROUND_STATE,
7049CASE_GROUND_STATE,
7050CASE_GROUND_STATE,
7051CASE_GROUND_STATE,
7052/*	p		q		r		s	*/
7053CASE_GROUND_STATE,
7054CASE_GROUND_STATE,
7055CASE_GROUND_STATE,
7056CASE_GROUND_STATE,
7057/*	t		u		v		w	*/
7058CASE_GROUND_STATE,
7059CASE_GROUND_STATE,
7060CASE_GROUND_STATE,
7061CASE_GROUND_STATE,
7062/*	x		y		z		{	*/
7063CASE_GROUND_STATE,
7064CASE_GROUND_STATE,
7065CASE_GROUND_STATE,
7066CASE_GROUND_STATE,
7067/*	|		}		~		DEL	*/
7068CASE_GROUND_STATE,
7069CASE_GROUND_STATE,
7070CASE_GROUND_STATE,
7071CASE_IGNORE,
7072/*      0x80            0x81            0x82            0x83    */
7073CASE_GROUND_STATE,
7074CASE_GROUND_STATE,
7075CASE_GROUND_STATE,
7076CASE_GROUND_STATE,
7077/*      0x84            0x85            0x86            0x87    */
7078CASE_IND,
7079CASE_NEL,
7080CASE_GROUND_STATE,
7081CASE_GROUND_STATE,
7082/*      0x88            0x89            0x8a            0x8b    */
7083CASE_HTS,
7084CASE_GROUND_STATE,
7085CASE_GROUND_STATE,
7086CASE_GROUND_STATE,
7087/*      0x8c            0x8d            0x8e            0x8f    */
7088CASE_GROUND_STATE,
7089CASE_RI,
7090CASE_SS2,
7091CASE_SS3,
7092/*      0x90            0x91            0x92            0x93    */
7093CASE_DCS,
7094CASE_GROUND_STATE,
7095CASE_GROUND_STATE,
7096CASE_GROUND_STATE,
7097/*      0x94            0x95            0x96            0x97    */
7098CASE_GROUND_STATE,
7099CASE_GROUND_STATE,
7100CASE_SPA,
7101CASE_EPA,
7102/*      0x98            0x99            0x9a            0x9b    */
7103CASE_SOS,
7104CASE_GROUND_STATE,
7105CASE_DECID,
7106CASE_CSI_STATE,
7107/*      0x9c            0x9d            0x9e            0x9f    */
7108CASE_ST,
7109CASE_OSC,
7110CASE_PM,
7111CASE_APC,
7112/*      nobreakspace    exclamdown      cent            sterling        */
7113CASE_ESC_IGNORE,
7114CASE_ESC_IGNORE,
7115CASE_SCS_DQUOTE,
7116CASE_ESC_IGNORE,
7117/*      currency        yen             brokenbar       section         */
7118CASE_ESC_IGNORE,
7119CASE_SCS_PERCENT,
7120CASE_SCS_AMPRSND,
7121CASE_ESC_IGNORE,
7122/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7123CASE_ESC_IGNORE,
7124CASE_ESC_IGNORE,
7125CASE_ESC_IGNORE,
7126CASE_ESC_IGNORE,
7127/*      notsign         hyphen          registered      macron          */
7128CASE_ESC_IGNORE,
7129CASE_ESC_IGNORE,
7130CASE_ESC_IGNORE,
7131CASE_ESC_IGNORE,
7132/*      degree          plusminus       twosuperior     threesuperior   */
7133CASE_GSETS,
7134CASE_GSETS,
7135CASE_GSETS,
7136CASE_GROUND_STATE,
7137/*      acute           mu              paragraph       periodcentered  */
7138CASE_GSETS,
7139CASE_GSETS,
7140CASE_GSETS,
7141CASE_GSETS,
7142/*      cedilla         onesuperior     masculine       guillemotright  */
7143CASE_GROUND_STATE,
7144CASE_GSETS3,
7145CASE_GROUND_STATE,
7146CASE_GROUND_STATE,
7147/*      onequarter      onehalf         threequarters   questiondown    */
7148CASE_GSETS,
7149CASE_GSETS,
7150CASE_GSETS3,
7151CASE_GROUND_STATE,
7152/*      Agrave          Aacute          Acircumflex     Atilde          */
7153CASE_GROUND_STATE,
7154CASE_GSETS,
7155CASE_GSETS,
7156CASE_GSETS,
7157/*      Adiaeresis      Aring           AE              Ccedilla        */
7158CASE_GROUND_STATE,
7159CASE_GSETS,
7160CASE_GROUND_STATE,
7161CASE_GROUND_STATE,
7162/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7163CASE_GSETS,
7164CASE_GROUND_STATE,
7165CASE_GROUND_STATE,
7166CASE_GSETS,
7167/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7168CASE_GROUND_STATE,
7169CASE_GROUND_STATE,
7170CASE_GROUND_STATE,
7171CASE_GROUND_STATE,
7172/*      Eth             Ntilde          Ograve          Oacute          */
7173CASE_GROUND_STATE,
7174CASE_GSETS,
7175CASE_GSETS,
7176CASE_GROUND_STATE,
7177/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7178CASE_GROUND_STATE,
7179CASE_GROUND_STATE,
7180CASE_GROUND_STATE,
7181CASE_GROUND_STATE,
7182/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7183CASE_GROUND_STATE,
7184CASE_GSETS,
7185CASE_GSETS,
7186CASE_GROUND_STATE,
7187/*      Udiaeresis      Yacute          Thorn           ssharp          */
7188CASE_GROUND_STATE,
7189CASE_GROUND_STATE,
7190CASE_GROUND_STATE,
7191CASE_GROUND_STATE,
7192/*      agrave          aacute          acircumflex     atilde          */
7193CASE_GSETS3,
7194CASE_GROUND_STATE,
7195CASE_GROUND_STATE,
7196CASE_GROUND_STATE,
7197/*      adiaeresis      aring           ae              ccedilla        */
7198CASE_GROUND_STATE,
7199CASE_GROUND_STATE,
7200CASE_GSETS,
7201CASE_GROUND_STATE,
7202/*      egrave          eacute          ecircumflex     ediaeresis      */
7203CASE_GROUND_STATE,
7204CASE_GROUND_STATE,
7205CASE_GROUND_STATE,
7206CASE_GROUND_STATE,
7207/*      igrave          iacute          icircumflex     idiaeresis      */
7208CASE_GROUND_STATE,
7209CASE_GROUND_STATE,
7210CASE_GROUND_STATE,
7211CASE_GROUND_STATE,
7212/*      eth             ntilde          ograve          oacute          */
7213CASE_GROUND_STATE,
7214CASE_GROUND_STATE,
7215CASE_GROUND_STATE,
7216CASE_GROUND_STATE,
7217/*      ocircumflex     otilde          odiaeresis      division        */
7218CASE_GROUND_STATE,
7219CASE_GROUND_STATE,
7220CASE_GROUND_STATE,
7221CASE_GROUND_STATE,
7222/*      oslash          ugrave          uacute          ucircumflex     */
7223CASE_GROUND_STATE,
7224CASE_GROUND_STATE,
7225CASE_GROUND_STATE,
7226CASE_GROUND_STATE,
7227/*      udiaeresis      yacute          thorn           ydiaeresis      */
7228CASE_GROUND_STATE,
7229CASE_GROUND_STATE,
7230CASE_GROUND_STATE,
7231CASE_IGNORE,
7232};
7233
7234Const PARSE_T scs96table[] =		/* ESC - etc. */
7235{
7236/*	NUL		SOH		STX		ETX	*/
7237CASE_IGNORE,
7238CASE_IGNORE,
7239CASE_IGNORE,
7240CASE_IGNORE,
7241/*	EOT		ENQ		ACK		BEL	*/
7242CASE_IGNORE,
7243CASE_ENQ,
7244CASE_IGNORE,
7245CASE_BELL,
7246/*	BS		HT		NL		VT	*/
7247CASE_BS,
7248CASE_TAB,
7249CASE_VMOT,
7250CASE_VMOT,
7251/*	FF		CR		SO		SI	*/
7252CASE_VMOT,
7253CASE_CR,
7254CASE_SO,
7255CASE_SI,
7256/*	DLE		DC1		DC2		DC3	*/
7257CASE_IGNORE,
7258CASE_IGNORE,
7259CASE_IGNORE,
7260CASE_IGNORE,
7261/*	DC4		NAK		SYN		ETB	*/
7262CASE_IGNORE,
7263CASE_IGNORE,
7264CASE_IGNORE,
7265CASE_IGNORE,
7266/*	CAN		EM		SUB		ESC	*/
7267CASE_GROUND_STATE,
7268CASE_IGNORE,
7269CASE_GROUND_STATE,
7270CASE_ESC,
7271/*	FS		GS		RS		US	*/
7272CASE_IGNORE,
7273CASE_IGNORE,
7274CASE_IGNORE,
7275CASE_IGNORE,
7276/*	SP		!		"		#	*/
7277CASE_ESC_IGNORE,
7278CASE_ESC_IGNORE,
7279CASE_ESC_IGNORE,
7280CASE_ESC_IGNORE,
7281/*	$		%		&		'	*/
7282CASE_ESC_IGNORE,
7283CASE_ESC_IGNORE,
7284CASE_ESC_IGNORE,
7285CASE_ESC_IGNORE,
7286/*	(		)		*		+	*/
7287CASE_ESC_IGNORE,
7288CASE_ESC_IGNORE,
7289CASE_ESC_IGNORE,
7290CASE_ESC_IGNORE,
7291/*	,		-		.		/	*/
7292CASE_ESC_IGNORE,
7293CASE_ESC_IGNORE,
7294CASE_ESC_IGNORE,
7295CASE_ESC_IGNORE,
7296/*	0		1		2		3	*/
7297CASE_GROUND_STATE,
7298CASE_GROUND_STATE,
7299CASE_GROUND_STATE,
7300CASE_GROUND_STATE,
7301/*	4		5		6		7	*/
7302CASE_GROUND_STATE,
7303CASE_GROUND_STATE,
7304CASE_GROUND_STATE,
7305CASE_GROUND_STATE,
7306/*	8		9		:		;	*/
7307CASE_GROUND_STATE,
7308CASE_GROUND_STATE,
7309CASE_GROUND_STATE,
7310CASE_GROUND_STATE,
7311/*	<		=		>		?	*/
7312CASE_GROUND_STATE,
7313CASE_GROUND_STATE,
7314CASE_GROUND_STATE,
7315CASE_GROUND_STATE,
7316/*	@		A		B		C	*/
7317CASE_GROUND_STATE,
7318CASE_GSETS3,
7319CASE_GSETS5,
7320CASE_GROUND_STATE,
7321/*	D		E		F		G	*/
7322CASE_GROUND_STATE,
7323CASE_GROUND_STATE,
7324CASE_GSETS5,
7325CASE_GROUND_STATE,
7326/*	H		I		J		K	*/
7327CASE_GSETS5,
7328CASE_GROUND_STATE,
7329CASE_GROUND_STATE,
7330CASE_GROUND_STATE,
7331/*	L		M		N		O	*/
7332CASE_GSETS5,
7333CASE_GSETS5,
7334CASE_GROUND_STATE,
7335CASE_GROUND_STATE,
7336/*	P		Q		R		S	*/
7337CASE_GROUND_STATE,
7338CASE_GROUND_STATE,
7339CASE_GROUND_STATE,
7340CASE_GROUND_STATE,
7341/*	T		U		V		W	*/
7342CASE_GROUND_STATE,
7343CASE_GROUND_STATE,
7344CASE_GROUND_STATE,
7345CASE_GROUND_STATE,
7346/*	X		Y		Z		[	*/
7347CASE_GROUND_STATE,
7348CASE_GROUND_STATE,
7349CASE_GROUND_STATE,
7350CASE_GROUND_STATE,
7351/*	\		]		^		_	*/
7352CASE_GROUND_STATE,
7353CASE_GROUND_STATE,
7354CASE_GROUND_STATE,
7355CASE_GROUND_STATE,
7356/*	`		a		b		c	*/
7357CASE_GROUND_STATE,
7358CASE_GROUND_STATE,
7359CASE_GROUND_STATE,
7360CASE_GROUND_STATE,
7361/*	d		e		f		g	*/
7362CASE_GROUND_STATE,
7363CASE_GROUND_STATE,
7364CASE_GROUND_STATE,
7365CASE_GROUND_STATE,
7366/*	h		i		j		k	*/
7367CASE_GROUND_STATE,
7368CASE_GROUND_STATE,
7369CASE_GROUND_STATE,
7370CASE_GROUND_STATE,
7371/*	l		m		n		o	*/
7372CASE_GROUND_STATE,
7373CASE_GROUND_STATE,
7374CASE_GROUND_STATE,
7375CASE_GROUND_STATE,
7376/*	p		q		r		s	*/
7377CASE_GROUND_STATE,
7378CASE_GROUND_STATE,
7379CASE_GROUND_STATE,
7380CASE_GROUND_STATE,
7381/*	t		u		v		w	*/
7382CASE_GROUND_STATE,
7383CASE_GROUND_STATE,
7384CASE_GROUND_STATE,
7385CASE_GROUND_STATE,
7386/*	x		y		z		{	*/
7387CASE_GROUND_STATE,
7388CASE_GROUND_STATE,
7389CASE_GROUND_STATE,
7390CASE_GROUND_STATE,
7391/*	|		}		~		DEL	*/
7392CASE_GROUND_STATE,
7393CASE_GROUND_STATE,
7394CASE_GROUND_STATE,
7395CASE_IGNORE,
7396/*      0x80            0x81            0x82            0x83    */
7397CASE_GROUND_STATE,
7398CASE_GROUND_STATE,
7399CASE_GROUND_STATE,
7400CASE_GROUND_STATE,
7401/*      0x84            0x85            0x86            0x87    */
7402CASE_IND,
7403CASE_NEL,
7404CASE_GROUND_STATE,
7405CASE_GROUND_STATE,
7406/*      0x88            0x89            0x8a            0x8b    */
7407CASE_HTS,
7408CASE_GROUND_STATE,
7409CASE_GROUND_STATE,
7410CASE_GROUND_STATE,
7411/*      0x8c            0x8d            0x8e            0x8f    */
7412CASE_GROUND_STATE,
7413CASE_RI,
7414CASE_SS2,
7415CASE_SS3,
7416/*      0x90            0x91            0x92            0x93    */
7417CASE_DCS,
7418CASE_GROUND_STATE,
7419CASE_GROUND_STATE,
7420CASE_GROUND_STATE,
7421/*      0x94            0x95            0x96            0x97    */
7422CASE_GROUND_STATE,
7423CASE_GROUND_STATE,
7424CASE_SPA,
7425CASE_EPA,
7426/*      0x98            0x99            0x9a            0x9b    */
7427CASE_SOS,
7428CASE_GROUND_STATE,
7429CASE_DECID,
7430CASE_CSI_STATE,
7431/*      0x9c            0x9d            0x9e            0x9f    */
7432CASE_ST,
7433CASE_OSC,
7434CASE_PM,
7435CASE_APC,
7436/*      nobreakspace    exclamdown      cent            sterling        */
7437CASE_ESC_IGNORE,
7438CASE_ESC_IGNORE,
7439CASE_ESC_IGNORE,
7440CASE_ESC_IGNORE,
7441/*      currency        yen             brokenbar       section         */
7442CASE_ESC_IGNORE,
7443CASE_ESC_IGNORE,
7444CASE_ESC_IGNORE,
7445CASE_ESC_IGNORE,
7446/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7447CASE_ESC_IGNORE,
7448CASE_ESC_IGNORE,
7449CASE_ESC_IGNORE,
7450CASE_ESC_IGNORE,
7451/*      notsign         hyphen          registered      macron          */
7452CASE_ESC_IGNORE,
7453CASE_ESC_IGNORE,
7454CASE_ESC_IGNORE,
7455CASE_ESC_IGNORE,
7456/*      degree          plusminus       twosuperior     threesuperior   */
7457CASE_GROUND_STATE,
7458CASE_GROUND_STATE,
7459CASE_GROUND_STATE,
7460CASE_GROUND_STATE,
7461/*      acute           mu              paragraph       periodcentered  */
7462CASE_GROUND_STATE,
7463CASE_GROUND_STATE,
7464CASE_GROUND_STATE,
7465CASE_GROUND_STATE,
7466/*      cedilla         onesuperior     masculine       guillemotright  */
7467CASE_GROUND_STATE,
7468CASE_GROUND_STATE,
7469CASE_GROUND_STATE,
7470CASE_GROUND_STATE,
7471/*      onequarter      onehalf         threequarters   questiondown    */
7472CASE_GROUND_STATE,
7473CASE_GROUND_STATE,
7474CASE_GROUND_STATE,
7475CASE_GROUND_STATE,
7476/*      Agrave          Aacute          Acircumflex     Atilde          */
7477CASE_GROUND_STATE,
7478CASE_GSETS3,
7479CASE_GSETS5,
7480CASE_GROUND_STATE,
7481/*      Adiaeresis      Aring           AE              Ccedilla        */
7482CASE_GROUND_STATE,
7483CASE_GROUND_STATE,
7484CASE_GSETS5,
7485CASE_GROUND_STATE,
7486/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7487CASE_GSETS5,
7488CASE_GROUND_STATE,
7489CASE_GROUND_STATE,
7490CASE_GROUND_STATE,
7491/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7492CASE_GSETS5,
7493CASE_GSETS5,
7494CASE_GROUND_STATE,
7495CASE_GROUND_STATE,
7496/*      Eth             Ntilde          Ograve          Oacute          */
7497CASE_GROUND_STATE,
7498CASE_GROUND_STATE,
7499CASE_GROUND_STATE,
7500CASE_GROUND_STATE,
7501/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7502CASE_GROUND_STATE,
7503CASE_GROUND_STATE,
7504CASE_GROUND_STATE,
7505CASE_GROUND_STATE,
7506/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7507CASE_GROUND_STATE,
7508CASE_GROUND_STATE,
7509CASE_GROUND_STATE,
7510CASE_GROUND_STATE,
7511/*      Udiaeresis      Yacute          Thorn           ssharp          */
7512CASE_GROUND_STATE,
7513CASE_GROUND_STATE,
7514CASE_GROUND_STATE,
7515CASE_GROUND_STATE,
7516/*      agrave          aacute          acircumflex     atilde          */
7517CASE_GROUND_STATE,
7518CASE_GROUND_STATE,
7519CASE_GROUND_STATE,
7520CASE_GROUND_STATE,
7521/*      adiaeresis      aring           ae              ccedilla        */
7522CASE_GROUND_STATE,
7523CASE_GROUND_STATE,
7524CASE_GROUND_STATE,
7525CASE_GROUND_STATE,
7526/*      egrave          eacute          ecircumflex     ediaeresis      */
7527CASE_GROUND_STATE,
7528CASE_GROUND_STATE,
7529CASE_GROUND_STATE,
7530CASE_GROUND_STATE,
7531/*      igrave          iacute          icircumflex     idiaeresis      */
7532CASE_GROUND_STATE,
7533CASE_GROUND_STATE,
7534CASE_GROUND_STATE,
7535CASE_GROUND_STATE,
7536/*      eth             ntilde          ograve          oacute          */
7537CASE_GROUND_STATE,
7538CASE_GROUND_STATE,
7539CASE_GROUND_STATE,
7540CASE_GROUND_STATE,
7541/*      ocircumflex     otilde          odiaeresis      division        */
7542CASE_GROUND_STATE,
7543CASE_GROUND_STATE,
7544CASE_GROUND_STATE,
7545CASE_GROUND_STATE,
7546/*      oslash          ugrave          uacute          ucircumflex     */
7547CASE_GROUND_STATE,
7548CASE_GROUND_STATE,
7549CASE_GROUND_STATE,
7550CASE_GROUND_STATE,
7551/*      udiaeresis      yacute          thorn           ydiaeresis      */
7552CASE_GROUND_STATE,
7553CASE_GROUND_STATE,
7554CASE_GROUND_STATE,
7555CASE_IGNORE,
7556};
7557
7558/*
7559 * This table is treated specially.  The CASE_IGNORE entries correspond to the
7560 * characters that can be accumulated for the string function (e.g., OSC).
7561 */
7562Const PARSE_T sos_table[] =		/* OSC, DCS, etc. */
7563{
7564/*	NUL		SOH		STX		ETX	*/
7565CASE_IGNORE,
7566CASE_IGNORE,
7567CASE_IGNORE,
7568CASE_IGNORE,
7569/*	EOT		ENQ		ACK		BEL	*/
7570CASE_IGNORE,
7571CASE_IGNORE,
7572CASE_IGNORE,
7573CASE_BELL,
7574/*	BS		HT		NL		VT	*/
7575CASE_IGNORE,
7576CASE_IGNORE,
7577CASE_IGNORE,
7578CASE_IGNORE,
7579/*	FF		CR		SO		SI	*/
7580CASE_IGNORE,
7581CASE_IGNORE,
7582CASE_IGNORE,
7583CASE_IGNORE,
7584/*	DLE		DC1		DC2		DC3	*/
7585CASE_IGNORE,
7586CASE_IGNORE,
7587CASE_IGNORE,
7588CASE_IGNORE,
7589/*	DC4		NAK		SYN		ETB	*/
7590CASE_IGNORE,
7591CASE_IGNORE,
7592CASE_IGNORE,
7593CASE_IGNORE,
7594/*	CAN		EM		SUB		ESC	*/
7595CASE_GROUND_STATE,
7596CASE_IGNORE,
7597CASE_GROUND_STATE,
7598CASE_ESC,
7599/*	FS		GS		RS		US	*/
7600CASE_IGNORE,
7601CASE_IGNORE,
7602CASE_IGNORE,
7603CASE_IGNORE,
7604/*	SP		!		"		#	*/
7605CASE_IGNORE,
7606CASE_IGNORE,
7607CASE_IGNORE,
7608CASE_IGNORE,
7609/*	$		%		&		'	*/
7610CASE_IGNORE,
7611CASE_IGNORE,
7612CASE_IGNORE,
7613CASE_IGNORE,
7614/*	(		)		*		+	*/
7615CASE_IGNORE,
7616CASE_IGNORE,
7617CASE_IGNORE,
7618CASE_IGNORE,
7619/*	,		-		.		/	*/
7620CASE_IGNORE,
7621CASE_IGNORE,
7622CASE_IGNORE,
7623CASE_IGNORE,
7624/*	0		1		2		3	*/
7625CASE_IGNORE,
7626CASE_IGNORE,
7627CASE_IGNORE,
7628CASE_IGNORE,
7629/*	4		5		6		7	*/
7630CASE_IGNORE,
7631CASE_IGNORE,
7632CASE_IGNORE,
7633CASE_IGNORE,
7634/*	8		9		:		;	*/
7635CASE_IGNORE,
7636CASE_IGNORE,
7637CASE_IGNORE,
7638CASE_IGNORE,
7639/*	<		=		>		?	*/
7640CASE_IGNORE,
7641CASE_IGNORE,
7642CASE_IGNORE,
7643CASE_IGNORE,
7644/*	@		A		B		C	*/
7645CASE_IGNORE,
7646CASE_IGNORE,
7647CASE_IGNORE,
7648CASE_IGNORE,
7649/*	D		E		F		G	*/
7650CASE_IGNORE,
7651CASE_IGNORE,
7652CASE_IGNORE,
7653CASE_IGNORE,
7654/*	H		I		J		K	*/
7655CASE_IGNORE,
7656CASE_IGNORE,
7657CASE_IGNORE,
7658CASE_IGNORE,
7659/*	L		M		N		O	*/
7660CASE_IGNORE,
7661CASE_IGNORE,
7662CASE_IGNORE,
7663CASE_IGNORE,
7664/*	P		Q		R		S	*/
7665CASE_IGNORE,
7666CASE_IGNORE,
7667CASE_IGNORE,
7668CASE_IGNORE,
7669/*	T		U		V		W	*/
7670CASE_IGNORE,
7671CASE_IGNORE,
7672CASE_IGNORE,
7673CASE_IGNORE,
7674/*	X		Y		Z		[	*/
7675CASE_IGNORE,
7676CASE_IGNORE,
7677CASE_IGNORE,
7678CASE_IGNORE,
7679/*	\		]		^		_	*/
7680CASE_IGNORE,
7681CASE_IGNORE,
7682CASE_IGNORE,
7683CASE_IGNORE,
7684/*	`		a		b		c	*/
7685CASE_IGNORE,
7686CASE_IGNORE,
7687CASE_IGNORE,
7688CASE_IGNORE,
7689/*	d		e		f		g	*/
7690CASE_IGNORE,
7691CASE_IGNORE,
7692CASE_IGNORE,
7693CASE_IGNORE,
7694/*	h		i		j		k	*/
7695CASE_IGNORE,
7696CASE_IGNORE,
7697CASE_IGNORE,
7698CASE_IGNORE,
7699/*	l		m		n		o	*/
7700CASE_IGNORE,
7701CASE_IGNORE,
7702CASE_IGNORE,
7703CASE_IGNORE,
7704/*	p		q		r		s	*/
7705CASE_IGNORE,
7706CASE_IGNORE,
7707CASE_IGNORE,
7708CASE_IGNORE,
7709/*	t		u		v		w	*/
7710CASE_IGNORE,
7711CASE_IGNORE,
7712CASE_IGNORE,
7713CASE_IGNORE,
7714/*	x		y		z		{	*/
7715CASE_IGNORE,
7716CASE_IGNORE,
7717CASE_IGNORE,
7718CASE_IGNORE,
7719/*	|		}		~		DEL	*/
7720CASE_IGNORE,
7721CASE_IGNORE,
7722CASE_IGNORE,
7723CASE_IGNORE,
7724/*      0x80            0x81            0x82            0x83    */
7725CASE_GROUND_STATE,
7726CASE_GROUND_STATE,
7727CASE_GROUND_STATE,
7728CASE_GROUND_STATE,
7729/*      0x84            0x85            0x86            0x87    */
7730CASE_IND,
7731CASE_NEL,
7732CASE_GROUND_STATE,
7733CASE_GROUND_STATE,
7734/*      0x88            0x89            0x8a            0x8b    */
7735CASE_HTS,
7736CASE_GROUND_STATE,
7737CASE_GROUND_STATE,
7738CASE_GROUND_STATE,
7739/*      0x8c            0x8d            0x8e            0x8f    */
7740CASE_GROUND_STATE,
7741CASE_RI,
7742CASE_SS2,
7743CASE_SS3,
7744/*      0x90            0x91            0x92            0x93    */
7745CASE_DCS,
7746CASE_GROUND_STATE,
7747CASE_GROUND_STATE,
7748CASE_GROUND_STATE,
7749/*      0x94            0x95            0x96            0x97    */
7750CASE_GROUND_STATE,
7751CASE_GROUND_STATE,
7752CASE_SPA,
7753CASE_EPA,
7754/*      0x98            0x99            0x9a            0x9b    */
7755CASE_SOS,
7756CASE_GROUND_STATE,
7757CASE_DECID,
7758CASE_CSI_STATE,
7759/*      0x9c            0x9d            0x9e            0x9f    */
7760CASE_ST,
7761CASE_OSC,
7762CASE_PM,
7763CASE_APC,
7764/*      nobreakspace    exclamdown      cent            sterling        */
7765CASE_IGNORE,
7766CASE_IGNORE,
7767CASE_IGNORE,
7768CASE_IGNORE,
7769/*      currency        yen             brokenbar       section         */
7770CASE_IGNORE,
7771CASE_IGNORE,
7772CASE_IGNORE,
7773CASE_IGNORE,
7774/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7775CASE_IGNORE,
7776CASE_IGNORE,
7777CASE_IGNORE,
7778CASE_IGNORE,
7779/*      notsign         hyphen          registered      macron          */
7780CASE_IGNORE,
7781CASE_IGNORE,
7782CASE_IGNORE,
7783CASE_IGNORE,
7784/*      degree          plusminus       twosuperior     threesuperior   */
7785CASE_IGNORE,
7786CASE_IGNORE,
7787CASE_IGNORE,
7788CASE_IGNORE,
7789/*      acute           mu              paragraph       periodcentered  */
7790CASE_IGNORE,
7791CASE_IGNORE,
7792CASE_IGNORE,
7793CASE_IGNORE,
7794/*      cedilla         onesuperior     masculine       guillemotright  */
7795CASE_IGNORE,
7796CASE_IGNORE,
7797CASE_IGNORE,
7798CASE_IGNORE,
7799/*      onequarter      onehalf         threequarters   questiondown    */
7800CASE_IGNORE,
7801CASE_IGNORE,
7802CASE_IGNORE,
7803CASE_IGNORE,
7804/*      Agrave          Aacute          Acircumflex     Atilde          */
7805CASE_IGNORE,
7806CASE_IGNORE,
7807CASE_IGNORE,
7808CASE_IGNORE,
7809/*      Adiaeresis      Aring           AE              Ccedilla        */
7810CASE_IGNORE,
7811CASE_IGNORE,
7812CASE_IGNORE,
7813CASE_IGNORE,
7814/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7815CASE_IGNORE,
7816CASE_IGNORE,
7817CASE_IGNORE,
7818CASE_IGNORE,
7819/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7820CASE_IGNORE,
7821CASE_IGNORE,
7822CASE_IGNORE,
7823CASE_IGNORE,
7824/*      Eth             Ntilde          Ograve          Oacute          */
7825CASE_IGNORE,
7826CASE_IGNORE,
7827CASE_IGNORE,
7828CASE_IGNORE,
7829/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7830CASE_IGNORE,
7831CASE_IGNORE,
7832CASE_IGNORE,
7833CASE_IGNORE,
7834/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7835CASE_IGNORE,
7836CASE_IGNORE,
7837CASE_IGNORE,
7838CASE_IGNORE,
7839/*      Udiaeresis      Yacute          Thorn           ssharp          */
7840CASE_IGNORE,
7841CASE_IGNORE,
7842CASE_IGNORE,
7843CASE_IGNORE,
7844/*      agrave          aacute          acircumflex     atilde          */
7845CASE_IGNORE,
7846CASE_IGNORE,
7847CASE_IGNORE,
7848CASE_IGNORE,
7849/*      adiaeresis      aring           ae              ccedilla        */
7850CASE_IGNORE,
7851CASE_IGNORE,
7852CASE_IGNORE,
7853CASE_IGNORE,
7854/*      egrave          eacute          ecircumflex     ediaeresis      */
7855CASE_IGNORE,
7856CASE_IGNORE,
7857CASE_IGNORE,
7858CASE_IGNORE,
7859/*      igrave          iacute          icircumflex     idiaeresis      */
7860CASE_IGNORE,
7861CASE_IGNORE,
7862CASE_IGNORE,
7863CASE_IGNORE,
7864/*      eth             ntilde          ograve          oacute          */
7865CASE_IGNORE,
7866CASE_IGNORE,
7867CASE_IGNORE,
7868CASE_IGNORE,
7869/*      ocircumflex     otilde          odiaeresis      division        */
7870CASE_IGNORE,
7871CASE_IGNORE,
7872CASE_IGNORE,
7873CASE_IGNORE,
7874/*      oslash          ugrave          uacute          ucircumflex     */
7875CASE_IGNORE,
7876CASE_IGNORE,
7877CASE_IGNORE,
7878CASE_IGNORE,
7879/*      udiaeresis      yacute          thorn           ydiaeresis      */
7880CASE_IGNORE,
7881CASE_IGNORE,
7882CASE_IGNORE,
7883CASE_IGNORE,
7884};
7885
7886#if OPT_WIDE_CHARS
7887Const PARSE_T esc_pct_table[] =		/* ESC % */
7888{
7889/*	NUL		SOH		STX		ETX	*/
7890CASE_IGNORE,
7891CASE_IGNORE,
7892CASE_IGNORE,
7893CASE_IGNORE,
7894/*	EOT		ENQ		ACK		BEL	*/
7895CASE_IGNORE,
7896CASE_ENQ,
7897CASE_IGNORE,
7898CASE_BELL,
7899/*	BS		HT		NL		VT	*/
7900CASE_BS,
7901CASE_TAB,
7902CASE_VMOT,
7903CASE_VMOT,
7904/*	FF		CR		SO		SI	*/
7905CASE_VMOT,
7906CASE_CR,
7907CASE_SO,
7908CASE_SI,
7909/*	DLE		DC1		DC2		DC3	*/
7910CASE_IGNORE,
7911CASE_IGNORE,
7912CASE_IGNORE,
7913CASE_IGNORE,
7914/*	DC4		NAK		SYN		ETB	*/
7915CASE_IGNORE,
7916CASE_IGNORE,
7917CASE_IGNORE,
7918CASE_IGNORE,
7919/*	CAN		EM		SUB		ESC	*/
7920CASE_GROUND_STATE,
7921CASE_IGNORE,
7922CASE_GROUND_STATE,
7923CASE_ESC,
7924/*	FS		GS		RS		US	*/
7925CASE_IGNORE,
7926CASE_IGNORE,
7927CASE_IGNORE,
7928CASE_IGNORE,
7929/*	SP		!		"		#	*/
7930CASE_ESC_IGNORE,
7931CASE_ESC_IGNORE,
7932CASE_ESC_IGNORE,
7933CASE_ESC_IGNORE,
7934/*	$		%		&		'	*/
7935CASE_ESC_IGNORE,
7936CASE_ESC_IGNORE,
7937CASE_ESC_IGNORE,
7938CASE_ESC_IGNORE,
7939/*	(		)		*		+	*/
7940CASE_ESC_IGNORE,
7941CASE_ESC_IGNORE,
7942CASE_ESC_IGNORE,
7943CASE_ESC_IGNORE,
7944/*	,		-		.		/	*/
7945CASE_ESC_IGNORE,
7946CASE_ESC_IGNORE,
7947CASE_ESC_IGNORE,
7948CASE_ESC_IGNORE,
7949/*	0		1		2		3	*/
7950CASE_GSETS5,
7951CASE_GROUND_STATE,
7952CASE_GSETS5,
7953CASE_GROUND_STATE,
7954/*	4		5		6		7	*/
7955CASE_GROUND_STATE,
7956CASE_GROUND_STATE,
7957CASE_GROUND_STATE,
7958CASE_GROUND_STATE,
7959/*	8		9		:		;	*/
7960CASE_GROUND_STATE,
7961CASE_GROUND_STATE,
7962CASE_GROUND_STATE,
7963CASE_GROUND_STATE,
7964/*	<		=		>		?	*/
7965CASE_GROUND_STATE,
7966CASE_GROUND_STATE,
7967CASE_GROUND_STATE,
7968CASE_GROUND_STATE,
7969/*	@		A		B		C	*/
7970CASE_UTF8,
7971CASE_GROUND_STATE,
7972CASE_GROUND_STATE,
7973CASE_GROUND_STATE,
7974/*	D		E		F		G	*/
7975CASE_GROUND_STATE,
7976CASE_GROUND_STATE,
7977CASE_GROUND_STATE,
7978CASE_UTF8,
7979/*	H		I		J		K	*/
7980CASE_GROUND_STATE,
7981CASE_GROUND_STATE,
7982CASE_GROUND_STATE,
7983CASE_GROUND_STATE,
7984/*	L		M		N		O	*/
7985CASE_GROUND_STATE,
7986CASE_GROUND_STATE,
7987CASE_GROUND_STATE,
7988CASE_GROUND_STATE,
7989/*	P		Q		R		S	*/
7990CASE_GROUND_STATE,
7991CASE_GROUND_STATE,
7992CASE_GROUND_STATE,
7993CASE_GROUND_STATE,
7994/*	T		U		V		W	*/
7995CASE_GROUND_STATE,
7996CASE_GROUND_STATE,
7997CASE_GROUND_STATE,
7998CASE_GROUND_STATE,
7999/*	X		Y		Z		[	*/
8000CASE_GROUND_STATE,
8001CASE_GROUND_STATE,
8002CASE_GROUND_STATE,
8003CASE_GROUND_STATE,
8004/*	\		]		^		_	*/
8005CASE_GROUND_STATE,
8006CASE_GROUND_STATE,
8007CASE_GROUND_STATE,
8008CASE_GROUND_STATE,
8009/*	`		a		b		c	*/
8010CASE_GROUND_STATE,
8011CASE_GROUND_STATE,
8012CASE_GROUND_STATE,
8013CASE_GROUND_STATE,
8014/*	d		e		f		g	*/
8015CASE_GROUND_STATE,
8016CASE_GROUND_STATE,
8017CASE_GROUND_STATE,
8018CASE_GROUND_STATE,
8019/*	h		i		j		k	*/
8020CASE_GROUND_STATE,
8021CASE_GROUND_STATE,
8022CASE_GROUND_STATE,
8023CASE_GROUND_STATE,
8024/*	l		m		n		o	*/
8025CASE_GROUND_STATE,
8026CASE_GROUND_STATE,
8027CASE_GROUND_STATE,
8028CASE_GROUND_STATE,
8029/*	p		q		r		s	*/
8030CASE_GROUND_STATE,
8031CASE_GROUND_STATE,
8032CASE_GROUND_STATE,
8033CASE_GROUND_STATE,
8034/*	t		u		v		w	*/
8035CASE_GROUND_STATE,
8036CASE_GROUND_STATE,
8037CASE_GROUND_STATE,
8038CASE_GROUND_STATE,
8039/*	x		y		z		{	*/
8040CASE_GROUND_STATE,
8041CASE_GROUND_STATE,
8042CASE_GROUND_STATE,
8043CASE_GROUND_STATE,
8044/*	|		}		~		DEL	*/
8045CASE_GROUND_STATE,
8046CASE_GROUND_STATE,
8047CASE_GROUND_STATE,
8048CASE_IGNORE,
8049/*      0x80            0x81            0x82            0x83    */
8050CASE_GROUND_STATE,
8051CASE_GROUND_STATE,
8052CASE_GROUND_STATE,
8053CASE_GROUND_STATE,
8054/*      0x84            0x85            0x86            0x87    */
8055CASE_IND,
8056CASE_NEL,
8057CASE_GROUND_STATE,
8058CASE_GROUND_STATE,
8059/*      0x88            0x89            0x8a            0x8b    */
8060CASE_HTS,
8061CASE_GROUND_STATE,
8062CASE_GROUND_STATE,
8063CASE_GROUND_STATE,
8064/*      0x8c            0x8d            0x8e            0x8f    */
8065CASE_GROUND_STATE,
8066CASE_RI,
8067CASE_SS2,
8068CASE_SS3,
8069/*      0x90            0x91            0x92            0x93    */
8070CASE_DCS,
8071CASE_GROUND_STATE,
8072CASE_GROUND_STATE,
8073CASE_GROUND_STATE,
8074/*      0x94            0x95            0x96            0x97    */
8075CASE_GROUND_STATE,
8076CASE_GROUND_STATE,
8077CASE_SPA,
8078CASE_EPA,
8079/*      0x98            0x99            0x9a            0x9b    */
8080CASE_SOS,
8081CASE_GROUND_STATE,
8082CASE_DECID,
8083CASE_CSI_STATE,
8084/*      0x9c            0x9d            0x9e            0x9f    */
8085CASE_ST,
8086CASE_OSC,
8087CASE_PM,
8088CASE_APC,
8089/*      nobreakspace    exclamdown      cent            sterling        */
8090CASE_ESC_IGNORE,
8091CASE_ESC_IGNORE,
8092CASE_ESC_IGNORE,
8093CASE_ESC_IGNORE,
8094/*      currency        yen             brokenbar       section         */
8095CASE_ESC_IGNORE,
8096CASE_ESC_IGNORE,
8097CASE_ESC_IGNORE,
8098CASE_ESC_IGNORE,
8099/*      diaeresis       copyright       ordfeminine     guillemotleft   */
8100CASE_ESC_IGNORE,
8101CASE_ESC_IGNORE,
8102CASE_ESC_IGNORE,
8103CASE_ESC_IGNORE,
8104/*      notsign         hyphen          registered      macron          */
8105CASE_ESC_IGNORE,
8106CASE_ESC_IGNORE,
8107CASE_ESC_IGNORE,
8108CASE_ESC_IGNORE,
8109/*      degree          plusminus       twosuperior     threesuperior   */
8110CASE_GSETS5,
8111CASE_GROUND_STATE,
8112CASE_GSETS5,
8113CASE_GROUND_STATE,
8114/*      acute           mu              paragraph       periodcentered  */
8115CASE_GROUND_STATE,
8116CASE_GROUND_STATE,
8117CASE_GROUND_STATE,
8118CASE_GROUND_STATE,
8119/*      cedilla         onesuperior     masculine       guillemotright  */
8120CASE_GROUND_STATE,
8121CASE_GROUND_STATE,
8122CASE_GROUND_STATE,
8123CASE_GROUND_STATE,
8124/*      onequarter      onehalf         threequarters   questiondown    */
8125CASE_GROUND_STATE,
8126CASE_GROUND_STATE,
8127CASE_GROUND_STATE,
8128CASE_GROUND_STATE,
8129/*      Agrave          Aacute          Acircumflex     Atilde          */
8130CASE_UTF8,
8131CASE_GROUND_STATE,
8132CASE_GROUND_STATE,
8133CASE_GROUND_STATE,
8134/*      Adiaeresis      Aring           AE              Ccedilla        */
8135CASE_GROUND_STATE,
8136CASE_GROUND_STATE,
8137CASE_GROUND_STATE,
8138CASE_UTF8,
8139/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
8140CASE_GROUND_STATE,
8141CASE_GROUND_STATE,
8142CASE_GROUND_STATE,
8143CASE_GROUND_STATE,
8144/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
8145CASE_GROUND_STATE,
8146CASE_GROUND_STATE,
8147CASE_GROUND_STATE,
8148CASE_GROUND_STATE,
8149/*      Eth             Ntilde          Ograve          Oacute          */
8150CASE_GROUND_STATE,
8151CASE_GROUND_STATE,
8152CASE_GROUND_STATE,
8153CASE_GROUND_STATE,
8154/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
8155CASE_GROUND_STATE,
8156CASE_GROUND_STATE,
8157CASE_GROUND_STATE,
8158CASE_GROUND_STATE,
8159/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
8160CASE_GROUND_STATE,
8161CASE_GROUND_STATE,
8162CASE_GROUND_STATE,
8163CASE_GROUND_STATE,
8164/*      Udiaeresis      Yacute          Thorn           ssharp          */
8165CASE_GROUND_STATE,
8166CASE_GROUND_STATE,
8167CASE_GROUND_STATE,
8168CASE_GROUND_STATE,
8169/*      agrave          aacute          acircumflex     atilde          */
8170CASE_GROUND_STATE,
8171CASE_GROUND_STATE,
8172CASE_GROUND_STATE,
8173CASE_GROUND_STATE,
8174/*      adiaeresis      aring           ae              ccedilla        */
8175CASE_GROUND_STATE,
8176CASE_GROUND_STATE,
8177CASE_GROUND_STATE,
8178CASE_GROUND_STATE,
8179/*      egrave          eacute          ecircumflex     ediaeresis      */
8180CASE_GROUND_STATE,
8181CASE_GROUND_STATE,
8182CASE_GROUND_STATE,
8183CASE_GROUND_STATE,
8184/*      igrave          iacute          icircumflex     idiaeresis      */
8185CASE_GROUND_STATE,
8186CASE_GROUND_STATE,
8187CASE_GROUND_STATE,
8188CASE_GROUND_STATE,
8189/*      eth             ntilde          ograve          oacute          */
8190CASE_GROUND_STATE,
8191CASE_GROUND_STATE,
8192CASE_GROUND_STATE,
8193CASE_GROUND_STATE,
8194/*      ocircumflex     otilde          odiaeresis      division        */
8195CASE_GROUND_STATE,
8196CASE_GROUND_STATE,
8197CASE_GROUND_STATE,
8198CASE_GROUND_STATE,
8199/*      oslash          ugrave          uacute          ucircumflex     */
8200CASE_GROUND_STATE,
8201CASE_GROUND_STATE,
8202CASE_GROUND_STATE,
8203CASE_GROUND_STATE,
8204/*      udiaeresis      yacute          thorn           ydiaeresis      */
8205CASE_GROUND_STATE,
8206CASE_GROUND_STATE,
8207CASE_GROUND_STATE,
8208CASE_IGNORE,
8209};
8210
8211Const PARSE_T scs_2qt_table[] =		/* SCS " */
8212{
8213/*	NUL		SOH		STX		ETX	*/
8214CASE_IGNORE,
8215CASE_IGNORE,
8216CASE_IGNORE,
8217CASE_IGNORE,
8218/*	EOT		ENQ		ACK		BEL	*/
8219CASE_IGNORE,
8220CASE_ENQ,
8221CASE_IGNORE,
8222CASE_BELL,
8223/*	BS		HT		NL		VT	*/
8224CASE_BS,
8225CASE_TAB,
8226CASE_VMOT,
8227CASE_VMOT,
8228/*	FF		CR		SO		SI	*/
8229CASE_VMOT,
8230CASE_CR,
8231CASE_SO,
8232CASE_SI,
8233/*	DLE		DC1		DC2		DC3	*/
8234CASE_IGNORE,
8235CASE_IGNORE,
8236CASE_IGNORE,
8237CASE_IGNORE,
8238/*	DC4		NAK		SYN		ETB	*/
8239CASE_IGNORE,
8240CASE_IGNORE,
8241CASE_IGNORE,
8242CASE_IGNORE,
8243/*	CAN		EM		SUB		ESC	*/
8244CASE_GROUND_STATE,
8245CASE_IGNORE,
8246CASE_GROUND_STATE,
8247CASE_ESC,
8248/*	FS		GS		RS		US	*/
8249CASE_IGNORE,
8250CASE_IGNORE,
8251CASE_IGNORE,
8252CASE_IGNORE,
8253/*	SP		!		"		#	*/
8254CASE_ESC_IGNORE,
8255CASE_ESC_IGNORE,
8256CASE_ESC_IGNORE,
8257CASE_ESC_IGNORE,
8258/*	$		%		&		'	*/
8259CASE_ESC_IGNORE,
8260CASE_ESC_IGNORE,
8261CASE_ESC_IGNORE,
8262CASE_ESC_IGNORE,
8263/*	(		)		*		+	*/
8264CASE_ESC_IGNORE,
8265CASE_ESC_IGNORE,
8266CASE_ESC_IGNORE,
8267CASE_ESC_IGNORE,
8268/*	,		-		.		/	*/
8269CASE_ESC_IGNORE,
8270CASE_ESC_IGNORE,
8271CASE_ESC_IGNORE,
8272CASE_ESC_IGNORE,
8273/*	0		1		2		3	*/
8274CASE_GROUND_STATE,
8275CASE_GROUND_STATE,
8276CASE_GROUND_STATE,
8277CASE_GROUND_STATE,
8278/*	4		5		6		7	*/
8279CASE_GSETS_DQUOTE,
8280CASE_GROUND_STATE,
8281CASE_GROUND_STATE,
8282CASE_GROUND_STATE,
8283/*	8		9		:		;	*/
8284CASE_GROUND_STATE,
8285CASE_GROUND_STATE,
8286CASE_GROUND_STATE,
8287CASE_GROUND_STATE,
8288/*	<		=		>		?	*/
8289CASE_GROUND_STATE,
8290CASE_GROUND_STATE,
8291CASE_GSETS_DQUOTE,
8292CASE_GSETS_DQUOTE,
8293/*	@		A		B		C	*/
8294CASE_GROUND_STATE,
8295CASE_GROUND_STATE,
8296CASE_GROUND_STATE,
8297CASE_GROUND_STATE,
8298/*	D		E		F		G	*/
8299CASE_GROUND_STATE,
8300CASE_GROUND_STATE,
8301CASE_GROUND_STATE,
8302CASE_GROUND_STATE,
8303/*	H		I		J		K	*/
8304CASE_GROUND_STATE,
8305CASE_GROUND_STATE,
8306CASE_GROUND_STATE,
8307CASE_GROUND_STATE,
8308/*	L		M		N		O	*/
8309CASE_GROUND_STATE,
8310CASE_GROUND_STATE,
8311CASE_GROUND_STATE,
8312CASE_GROUND_STATE,
8313/*	P		Q		R		S	*/
8314CASE_GROUND_STATE,
8315CASE_GROUND_STATE,
8316CASE_GROUND_STATE,
8317CASE_GROUND_STATE,
8318/*	T		U		V		W	*/
8319CASE_GROUND_STATE,
8320CASE_GROUND_STATE,
8321CASE_GROUND_STATE,
8322CASE_GROUND_STATE,
8323/*	X		Y		Z		[	*/
8324CASE_GROUND_STATE,
8325CASE_GROUND_STATE,
8326CASE_GROUND_STATE,
8327CASE_GROUND_STATE,
8328/*	\		]		^		_	*/
8329CASE_GROUND_STATE,
8330CASE_GROUND_STATE,
8331CASE_GROUND_STATE,
8332CASE_GROUND_STATE,
8333/*	`		a		b		c	*/
8334CASE_GROUND_STATE,
8335CASE_GROUND_STATE,
8336CASE_GROUND_STATE,
8337CASE_GROUND_STATE,
8338/*	d		e		f		g	*/
8339CASE_GROUND_STATE,
8340CASE_GROUND_STATE,
8341CASE_GROUND_STATE,
8342CASE_GROUND_STATE,
8343/*	h		i		j		k	*/
8344CASE_GROUND_STATE,
8345CASE_GROUND_STATE,
8346CASE_GROUND_STATE,
8347CASE_GROUND_STATE,
8348/*	l		m		n		o	*/
8349CASE_GROUND_STATE,
8350CASE_GROUND_STATE,
8351CASE_GROUND_STATE,
8352CASE_GROUND_STATE,
8353/*	p		q		r		s	*/
8354CASE_GROUND_STATE,
8355CASE_GROUND_STATE,
8356CASE_GROUND_STATE,
8357CASE_GROUND_STATE,
8358/*	t		u		v		w	*/
8359CASE_GROUND_STATE,
8360CASE_GROUND_STATE,
8361CASE_GROUND_STATE,
8362CASE_GROUND_STATE,
8363/*	x		y		z		{	*/
8364CASE_GROUND_STATE,
8365CASE_GROUND_STATE,
8366CASE_GROUND_STATE,
8367CASE_GROUND_STATE,
8368/*	|		}		~		DEL	*/
8369CASE_GROUND_STATE,
8370CASE_GROUND_STATE,
8371CASE_GROUND_STATE,
8372CASE_IGNORE,
8373/*      0x80            0x81            0x82            0x83    */
8374CASE_GROUND_STATE,
8375CASE_GROUND_STATE,
8376CASE_GROUND_STATE,
8377CASE_GROUND_STATE,
8378/*      0x84            0x85            0x86            0x87    */
8379CASE_IND,
8380CASE_NEL,
8381CASE_GROUND_STATE,
8382CASE_GROUND_STATE,
8383/*      0x88            0x89            0x8a            0x8b    */
8384CASE_HTS,
8385CASE_GROUND_STATE,
8386CASE_GROUND_STATE,
8387CASE_GROUND_STATE,
8388/*      0x8c            0x8d            0x8e            0x8f    */
8389CASE_GROUND_STATE,
8390CASE_RI,
8391CASE_SS2,
8392CASE_SS3,
8393/*      0x90            0x91            0x92            0x93    */
8394CASE_DCS,
8395CASE_GROUND_STATE,
8396CASE_GROUND_STATE,
8397CASE_GROUND_STATE,
8398/*      0x94            0x95            0x96            0x97    */
8399CASE_GROUND_STATE,
8400CASE_GROUND_STATE,
8401CASE_SPA,
8402CASE_EPA,
8403/*      0x98            0x99            0x9a            0x9b    */
8404CASE_SOS,
8405CASE_GROUND_STATE,
8406CASE_DECID,
8407CASE_CSI_STATE,
8408/*      0x9c            0x9d            0x9e            0x9f    */
8409CASE_ST,
8410CASE_OSC,
8411CASE_PM,
8412CASE_APC,
8413/*      nobreakspace    exclamdown      cent            sterling        */
8414CASE_ESC_IGNORE,
8415CASE_ESC_IGNORE,
8416CASE_ESC_IGNORE,
8417CASE_ESC_IGNORE,
8418/*      currency        yen             brokenbar       section         */
8419CASE_ESC_IGNORE,
8420CASE_ESC_IGNORE,
8421CASE_ESC_IGNORE,
8422CASE_ESC_IGNORE,
8423/*      diaeresis       copyright       ordfeminine     guillemotleft   */
8424CASE_ESC_IGNORE,
8425CASE_ESC_IGNORE,
8426CASE_ESC_IGNORE,
8427CASE_ESC_IGNORE,
8428/*      notsign         hyphen          registered      macron          */
8429CASE_ESC_IGNORE,
8430CASE_ESC_IGNORE,
8431CASE_ESC_IGNORE,
8432CASE_ESC_IGNORE,
8433/*      degree          plusminus       twosuperior     threesuperior   */
8434CASE_GROUND_STATE,
8435CASE_GROUND_STATE,
8436CASE_GROUND_STATE,
8437CASE_GROUND_STATE,
8438/*      acute           mu              paragraph       periodcentered  */
8439CASE_GSETS_DQUOTE,
8440CASE_GROUND_STATE,
8441CASE_GROUND_STATE,
8442CASE_GROUND_STATE,
8443/*      cedilla         onesuperior     masculine       guillemotright  */
8444CASE_GROUND_STATE,
8445CASE_GROUND_STATE,
8446CASE_GROUND_STATE,
8447CASE_GROUND_STATE,
8448/*      onequarter      onehalf         threequarters   questiondown    */
8449CASE_GROUND_STATE,
8450CASE_GROUND_STATE,
8451CASE_GSETS_DQUOTE,
8452CASE_GSETS_DQUOTE,
8453/*      Agrave          Aacute          Acircumflex     Atilde          */
8454CASE_GROUND_STATE,
8455CASE_GROUND_STATE,
8456CASE_GROUND_STATE,
8457CASE_GROUND_STATE,
8458/*      Adiaeresis      Aring           AE              Ccedilla        */
8459CASE_GROUND_STATE,
8460CASE_GROUND_STATE,
8461CASE_GROUND_STATE,
8462CASE_GROUND_STATE,
8463/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
8464CASE_GROUND_STATE,
8465CASE_GROUND_STATE,
8466CASE_GROUND_STATE,
8467CASE_GROUND_STATE,
8468/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
8469CASE_GROUND_STATE,
8470CASE_GROUND_STATE,
8471CASE_GROUND_STATE,
8472CASE_GROUND_STATE,
8473/*      Eth             Ntilde          Ograve          Oacute          */
8474CASE_GROUND_STATE,
8475CASE_GROUND_STATE,
8476CASE_GROUND_STATE,
8477CASE_GROUND_STATE,
8478/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
8479CASE_GROUND_STATE,
8480CASE_GROUND_STATE,
8481CASE_GROUND_STATE,
8482CASE_GROUND_STATE,
8483/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
8484CASE_GROUND_STATE,
8485CASE_GROUND_STATE,
8486CASE_GROUND_STATE,
8487CASE_GROUND_STATE,
8488/*      Udiaeresis      Yacute          Thorn           ssharp          */
8489CASE_GROUND_STATE,
8490CASE_GROUND_STATE,
8491CASE_GROUND_STATE,
8492CASE_GROUND_STATE,
8493/*      agrave          aacute          acircumflex     atilde          */
8494CASE_GROUND_STATE,
8495CASE_GROUND_STATE,
8496CASE_GROUND_STATE,
8497CASE_GROUND_STATE,
8498/*      adiaeresis      aring           ae              ccedilla        */
8499CASE_GROUND_STATE,
8500CASE_GROUND_STATE,
8501CASE_GROUND_STATE,
8502CASE_GROUND_STATE,
8503/*      egrave          eacute          ecircumflex     ediaeresis      */
8504CASE_GROUND_STATE,
8505CASE_GROUND_STATE,
8506CASE_GROUND_STATE,
8507CASE_GROUND_STATE,
8508/*      igrave          iacute          icircumflex     idiaeresis      */
8509CASE_GROUND_STATE,
8510CASE_GROUND_STATE,
8511CASE_GROUND_STATE,
8512CASE_GROUND_STATE,
8513/*      eth             ntilde          ograve          oacute          */
8514CASE_GROUND_STATE,
8515CASE_GROUND_STATE,
8516CASE_GROUND_STATE,
8517CASE_GROUND_STATE,
8518/*      ocircumflex     otilde          odiaeresis      division        */
8519CASE_GROUND_STATE,
8520CASE_GROUND_STATE,
8521CASE_GROUND_STATE,
8522CASE_GROUND_STATE,
8523/*      oslash          ugrave          uacute          ucircumflex     */
8524CASE_GROUND_STATE,
8525CASE_GROUND_STATE,
8526CASE_GROUND_STATE,
8527CASE_GROUND_STATE,
8528/*      udiaeresis      yacute          thorn           ydiaeresis      */
8529CASE_GROUND_STATE,
8530CASE_GROUND_STATE,
8531CASE_GROUND_STATE,
8532CASE_IGNORE,
8533};
8534
8535Const PARSE_T scs_amp_table[] =		/* SCS & */
8536{
8537/*	NUL		SOH		STX		ETX	*/
8538CASE_IGNORE,
8539CASE_IGNORE,
8540CASE_IGNORE,
8541CASE_IGNORE,
8542/*	EOT		ENQ		ACK		BEL	*/
8543CASE_IGNORE,
8544CASE_ENQ,
8545CASE_IGNORE,
8546CASE_BELL,
8547/*	BS		HT		NL		VT	*/
8548CASE_BS,
8549CASE_TAB,
8550CASE_VMOT,
8551CASE_VMOT,
8552/*	FF		CR		SO		SI	*/
8553CASE_VMOT,
8554CASE_CR,
8555CASE_SO,
8556CASE_SI,
8557/*	DLE		DC1		DC2		DC3	*/
8558CASE_IGNORE,
8559CASE_IGNORE,
8560CASE_IGNORE,
8561CASE_IGNORE,
8562/*	DC4		NAK		SYN		ETB	*/
8563CASE_IGNORE,
8564CASE_IGNORE,
8565CASE_IGNORE,
8566CASE_IGNORE,
8567/*	CAN		EM		SUB		ESC	*/
8568CASE_GROUND_STATE,
8569CASE_IGNORE,
8570CASE_GROUND_STATE,
8571CASE_ESC,
8572/*	FS		GS		RS		US	*/
8573CASE_IGNORE,
8574CASE_IGNORE,
8575CASE_IGNORE,
8576CASE_IGNORE,
8577/*	SP		!		"		#	*/
8578CASE_ESC_IGNORE,
8579CASE_ESC_IGNORE,
8580CASE_ESC_IGNORE,
8581CASE_ESC_IGNORE,
8582/*	$		%		&		'	*/
8583CASE_ESC_IGNORE,
8584CASE_ESC_IGNORE,
8585CASE_ESC_IGNORE,
8586CASE_ESC_IGNORE,
8587/*	(		)		*		+	*/
8588CASE_ESC_IGNORE,
8589CASE_ESC_IGNORE,
8590CASE_ESC_IGNORE,
8591CASE_ESC_IGNORE,
8592/*	,		-		.		/	*/
8593CASE_ESC_IGNORE,
8594CASE_ESC_IGNORE,
8595CASE_ESC_IGNORE,
8596CASE_ESC_IGNORE,
8597/*	0		1		2		3	*/
8598CASE_GROUND_STATE,
8599CASE_GROUND_STATE,
8600CASE_GROUND_STATE,
8601CASE_GROUND_STATE,
8602/*	4		5		6		7	*/
8603CASE_GSETS_AMPRSND,
8604CASE_GROUND_STATE,
8605CASE_GROUND_STATE,
8606CASE_GROUND_STATE,
8607/*	8		9		:		;	*/
8608CASE_GROUND_STATE,
8609CASE_GROUND_STATE,
8610CASE_GROUND_STATE,
8611CASE_GROUND_STATE,
8612/*	<		=		>		?	*/
8613CASE_GROUND_STATE,
8614CASE_GROUND_STATE,
8615CASE_GROUND_STATE,
8616CASE_GROUND_STATE,
8617/*	@		A		B		C	*/
8618CASE_GROUND_STATE,
8619CASE_GROUND_STATE,
8620CASE_GROUND_STATE,
8621CASE_GROUND_STATE,
8622/*	D		E		F		G	*/
8623CASE_GROUND_STATE,
8624CASE_GROUND_STATE,
8625CASE_GROUND_STATE,
8626CASE_GROUND_STATE,
8627/*	H		I		J		K	*/
8628CASE_GROUND_STATE,
8629CASE_GROUND_STATE,
8630CASE_GROUND_STATE,
8631CASE_GROUND_STATE,
8632/*	L		M		N		O	*/
8633CASE_GROUND_STATE,
8634CASE_GROUND_STATE,
8635CASE_GROUND_STATE,
8636CASE_GROUND_STATE,
8637/*	P		Q		R		S	*/
8638CASE_GROUND_STATE,
8639CASE_GROUND_STATE,
8640CASE_GROUND_STATE,
8641CASE_GROUND_STATE,
8642/*	T		U		V		W	*/
8643CASE_GROUND_STATE,
8644CASE_GROUND_STATE,
8645CASE_GROUND_STATE,
8646CASE_GROUND_STATE,
8647/*	X		Y		Z		[	*/
8648CASE_GROUND_STATE,
8649CASE_GROUND_STATE,
8650CASE_GROUND_STATE,
8651CASE_GROUND_STATE,
8652/*	\		]		^		_	*/
8653CASE_GROUND_STATE,
8654CASE_GROUND_STATE,
8655CASE_GROUND_STATE,
8656CASE_GROUND_STATE,
8657/*	`		a		b		c	*/
8658CASE_GROUND_STATE,
8659CASE_GROUND_STATE,
8660CASE_GROUND_STATE,
8661CASE_GROUND_STATE,
8662/*	d		e		f		g	*/
8663CASE_GROUND_STATE,
8664CASE_GROUND_STATE,
8665CASE_GROUND_STATE,
8666CASE_GROUND_STATE,
8667/*	h		i		j		k	*/
8668CASE_GROUND_STATE,
8669CASE_GROUND_STATE,
8670CASE_GROUND_STATE,
8671CASE_GROUND_STATE,
8672/*	l		m		n		o	*/
8673CASE_GROUND_STATE,
8674CASE_GROUND_STATE,
8675CASE_GROUND_STATE,
8676CASE_GROUND_STATE,
8677/*	p		q		r		s	*/
8678CASE_GROUND_STATE,
8679CASE_GROUND_STATE,
8680CASE_GROUND_STATE,
8681CASE_GROUND_STATE,
8682/*	t		u		v		w	*/
8683CASE_GROUND_STATE,
8684CASE_GROUND_STATE,
8685CASE_GROUND_STATE,
8686CASE_GROUND_STATE,
8687/*	x		y		z		{	*/
8688CASE_GROUND_STATE,
8689CASE_GROUND_STATE,
8690CASE_GROUND_STATE,
8691CASE_GROUND_STATE,
8692/*	|		}		~		DEL	*/
8693CASE_GROUND_STATE,
8694CASE_GROUND_STATE,
8695CASE_GROUND_STATE,
8696CASE_IGNORE,
8697/*      0x80            0x81            0x82            0x83    */
8698CASE_GROUND_STATE,
8699CASE_GROUND_STATE,
8700CASE_GROUND_STATE,
8701CASE_GROUND_STATE,
8702/*      0x84            0x85            0x86            0x87    */
8703CASE_IND,
8704CASE_NEL,
8705CASE_GROUND_STATE,
8706CASE_GROUND_STATE,
8707/*      0x88            0x89            0x8a            0x8b    */
8708CASE_HTS,
8709CASE_GROUND_STATE,
8710CASE_GROUND_STATE,
8711CASE_GROUND_STATE,
8712/*      0x8c            0x8d            0x8e            0x8f    */
8713CASE_GROUND_STATE,
8714CASE_RI,
8715CASE_SS2,
8716CASE_SS3,
8717/*      0x90            0x91            0x92            0x93    */
8718CASE_DCS,
8719CASE_GROUND_STATE,
8720CASE_GROUND_STATE,
8721CASE_GROUND_STATE,
8722/*      0x94            0x95            0x96            0x97    */
8723CASE_GROUND_STATE,
8724CASE_GROUND_STATE,
8725CASE_SPA,
8726CASE_EPA,
8727/*      0x98            0x99            0x9a            0x9b    */
8728CASE_SOS,
8729CASE_GROUND_STATE,
8730CASE_DECID,
8731CASE_CSI_STATE,
8732/*      0x9c            0x9d            0x9e            0x9f    */
8733CASE_ST,
8734CASE_OSC,
8735CASE_PM,
8736CASE_APC,
8737/*      nobreakspace    exclamdown      cent            sterling        */
8738CASE_ESC_IGNORE,
8739CASE_ESC_IGNORE,
8740CASE_ESC_IGNORE,
8741CASE_ESC_IGNORE,
8742/*      currency        yen             brokenbar       section         */
8743CASE_ESC_IGNORE,
8744CASE_ESC_IGNORE,
8745CASE_ESC_IGNORE,
8746CASE_ESC_IGNORE,
8747/*      diaeresis       copyright       ordfeminine     guillemotleft   */
8748CASE_ESC_IGNORE,
8749CASE_ESC_IGNORE,
8750CASE_ESC_IGNORE,
8751CASE_ESC_IGNORE,
8752/*      notsign         hyphen          registered      macron          */
8753CASE_ESC_IGNORE,
8754CASE_ESC_IGNORE,
8755CASE_ESC_IGNORE,
8756CASE_ESC_IGNORE,
8757/*      degree          plusminus       twosuperior     threesuperior   */
8758CASE_GROUND_STATE,
8759CASE_GROUND_STATE,
8760CASE_GROUND_STATE,
8761CASE_GROUND_STATE,
8762/*      acute           mu              paragraph       periodcentered  */
8763CASE_GSETS_AMPRSND,
8764CASE_GROUND_STATE,
8765CASE_GROUND_STATE,
8766CASE_GROUND_STATE,
8767/*      cedilla         onesuperior     masculine       guillemotright  */
8768CASE_GROUND_STATE,
8769CASE_GROUND_STATE,
8770CASE_GROUND_STATE,
8771CASE_GROUND_STATE,
8772/*      onequarter      onehalf         threequarters   questiondown    */
8773CASE_GROUND_STATE,
8774CASE_GROUND_STATE,
8775CASE_GROUND_STATE,
8776CASE_GROUND_STATE,
8777/*      Agrave          Aacute          Acircumflex     Atilde          */
8778CASE_GROUND_STATE,
8779CASE_GROUND_STATE,
8780CASE_GROUND_STATE,
8781CASE_GROUND_STATE,
8782/*      Adiaeresis      Aring           AE              Ccedilla        */
8783CASE_GROUND_STATE,
8784CASE_GROUND_STATE,
8785CASE_GROUND_STATE,
8786CASE_GROUND_STATE,
8787/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
8788CASE_GROUND_STATE,
8789CASE_GROUND_STATE,
8790CASE_GROUND_STATE,
8791CASE_GROUND_STATE,
8792/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
8793CASE_GROUND_STATE,
8794CASE_GROUND_STATE,
8795CASE_GROUND_STATE,
8796CASE_GROUND_STATE,
8797/*      Eth             Ntilde          Ograve          Oacute          */
8798CASE_GROUND_STATE,
8799CASE_GROUND_STATE,
8800CASE_GROUND_STATE,
8801CASE_GROUND_STATE,
8802/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
8803CASE_GROUND_STATE,
8804CASE_GROUND_STATE,
8805CASE_GROUND_STATE,
8806CASE_GROUND_STATE,
8807/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
8808CASE_GROUND_STATE,
8809CASE_GROUND_STATE,
8810CASE_GROUND_STATE,
8811CASE_GROUND_STATE,
8812/*      Udiaeresis      Yacute          Thorn           ssharp          */
8813CASE_GROUND_STATE,
8814CASE_GROUND_STATE,
8815CASE_GROUND_STATE,
8816CASE_GROUND_STATE,
8817/*      agrave          aacute          acircumflex     atilde          */
8818CASE_GROUND_STATE,
8819CASE_GROUND_STATE,
8820CASE_GROUND_STATE,
8821CASE_GROUND_STATE,
8822/*      adiaeresis      aring           ae              ccedilla        */
8823CASE_GROUND_STATE,
8824CASE_GROUND_STATE,
8825CASE_GROUND_STATE,
8826CASE_GROUND_STATE,
8827/*      egrave          eacute          ecircumflex     ediaeresis      */
8828CASE_GROUND_STATE,
8829CASE_GROUND_STATE,
8830CASE_GROUND_STATE,
8831CASE_GROUND_STATE,
8832/*      igrave          iacute          icircumflex     idiaeresis      */
8833CASE_GROUND_STATE,
8834CASE_GROUND_STATE,
8835CASE_GROUND_STATE,
8836CASE_GROUND_STATE,
8837/*      eth             ntilde          ograve          oacute          */
8838CASE_GROUND_STATE,
8839CASE_GROUND_STATE,
8840CASE_GROUND_STATE,
8841CASE_GROUND_STATE,
8842/*      ocircumflex     otilde          odiaeresis      division        */
8843CASE_GROUND_STATE,
8844CASE_GROUND_STATE,
8845CASE_GROUND_STATE,
8846CASE_GROUND_STATE,
8847/*      oslash          ugrave          uacute          ucircumflex     */
8848CASE_GROUND_STATE,
8849CASE_GROUND_STATE,
8850CASE_GROUND_STATE,
8851CASE_GROUND_STATE,
8852/*      udiaeresis      yacute          thorn           ydiaeresis      */
8853CASE_GROUND_STATE,
8854CASE_GROUND_STATE,
8855CASE_GROUND_STATE,
8856CASE_IGNORE,
8857};
8858
8859Const PARSE_T scs_pct_table[] =		/* SCS % */
8860{
8861/*	NUL		SOH		STX		ETX	*/
8862CASE_IGNORE,
8863CASE_IGNORE,
8864CASE_IGNORE,
8865CASE_IGNORE,
8866/*	EOT		ENQ		ACK		BEL	*/
8867CASE_IGNORE,
8868CASE_ENQ,
8869CASE_IGNORE,
8870CASE_BELL,
8871/*	BS		HT		NL		VT	*/
8872CASE_BS,
8873CASE_TAB,
8874CASE_VMOT,
8875CASE_VMOT,
8876/*	FF		CR		SO		SI	*/
8877CASE_VMOT,
8878CASE_CR,
8879CASE_SO,
8880CASE_SI,
8881/*	DLE		DC1		DC2		DC3	*/
8882CASE_IGNORE,
8883CASE_IGNORE,
8884CASE_IGNORE,
8885CASE_IGNORE,
8886/*	DC4		NAK		SYN		ETB	*/
8887CASE_IGNORE,
8888CASE_IGNORE,
8889CASE_IGNORE,
8890CASE_IGNORE,
8891/*	CAN		EM		SUB		ESC	*/
8892CASE_GROUND_STATE,
8893CASE_IGNORE,
8894CASE_GROUND_STATE,
8895CASE_ESC,
8896/*	FS		GS		RS		US	*/
8897CASE_IGNORE,
8898CASE_IGNORE,
8899CASE_IGNORE,
8900CASE_IGNORE,
8901/*	SP		!		"		#	*/
8902CASE_ESC_IGNORE,
8903CASE_ESC_IGNORE,
8904CASE_ESC_IGNORE,
8905CASE_ESC_IGNORE,
8906/*	$		%		&		'	*/
8907CASE_ESC_IGNORE,
8908CASE_ESC_IGNORE,
8909CASE_ESC_IGNORE,
8910CASE_ESC_IGNORE,
8911/*	(		)		*		+	*/
8912CASE_ESC_IGNORE,
8913CASE_ESC_IGNORE,
8914CASE_ESC_IGNORE,
8915CASE_ESC_IGNORE,
8916/*	,		-		.		/	*/
8917CASE_ESC_IGNORE,
8918CASE_ESC_IGNORE,
8919CASE_ESC_IGNORE,
8920CASE_ESC_IGNORE,
8921/*	0		1		2		3	*/
8922CASE_GSETS_PERCENT,
8923CASE_GROUND_STATE,
8924CASE_GSETS_PERCENT,
8925CASE_GSETS_PERCENT,
8926/*	4		5		6		7	*/
8927CASE_GROUND_STATE,
8928CASE_GSETS_PERCENT,
8929CASE_GSETS_PERCENT,
8930CASE_GROUND_STATE,
8931/*	8		9		:		;	*/
8932CASE_GROUND_STATE,
8933CASE_GROUND_STATE,
8934CASE_GROUND_STATE,
8935CASE_GROUND_STATE,
8936/*	<		=		>		?	*/
8937CASE_GROUND_STATE,
8938CASE_GSETS_PERCENT,
8939CASE_GROUND_STATE,
8940CASE_GROUND_STATE,
8941/*	@		A		B		C	*/
8942CASE_GROUND_STATE,
8943CASE_GROUND_STATE,
8944CASE_GROUND_STATE,
8945CASE_GROUND_STATE,
8946/*	D		E		F		G	*/
8947CASE_GROUND_STATE,
8948CASE_GROUND_STATE,
8949CASE_GROUND_STATE,
8950CASE_GROUND_STATE,
8951/*	H		I		J		K	*/
8952CASE_GROUND_STATE,
8953CASE_GROUND_STATE,
8954CASE_GROUND_STATE,
8955CASE_GROUND_STATE,
8956/*	L		M		N		O	*/
8957CASE_GROUND_STATE,
8958CASE_GROUND_STATE,
8959CASE_GROUND_STATE,
8960CASE_GROUND_STATE,
8961/*	P		Q		R		S	*/
8962CASE_GROUND_STATE,
8963CASE_GROUND_STATE,
8964CASE_GROUND_STATE,
8965CASE_GROUND_STATE,
8966/*	T		U		V		W	*/
8967CASE_GROUND_STATE,
8968CASE_GROUND_STATE,
8969CASE_GROUND_STATE,
8970CASE_GROUND_STATE,
8971/*	X		Y		Z		[	*/
8972CASE_GROUND_STATE,
8973CASE_GROUND_STATE,
8974CASE_GROUND_STATE,
8975CASE_GROUND_STATE,
8976/*	\		]		^		_	*/
8977CASE_GROUND_STATE,
8978CASE_GROUND_STATE,
8979CASE_GROUND_STATE,
8980CASE_GROUND_STATE,
8981/*	`		a		b		c	*/
8982CASE_GROUND_STATE,
8983CASE_GROUND_STATE,
8984CASE_GROUND_STATE,
8985CASE_GROUND_STATE,
8986/*	d		e		f		g	*/
8987CASE_GROUND_STATE,
8988CASE_GROUND_STATE,
8989CASE_GROUND_STATE,
8990CASE_GROUND_STATE,
8991/*	h		i		j		k	*/
8992CASE_GROUND_STATE,
8993CASE_GROUND_STATE,
8994CASE_GROUND_STATE,
8995CASE_GROUND_STATE,
8996/*	l		m		n		o	*/
8997CASE_GROUND_STATE,
8998CASE_GROUND_STATE,
8999CASE_GROUND_STATE,
9000CASE_GROUND_STATE,
9001/*	p		q		r		s	*/
9002CASE_GROUND_STATE,
9003CASE_GROUND_STATE,
9004CASE_GROUND_STATE,
9005CASE_GROUND_STATE,
9006/*	t		u		v		w	*/
9007CASE_GROUND_STATE,
9008CASE_GROUND_STATE,
9009CASE_GROUND_STATE,
9010CASE_GROUND_STATE,
9011/*	x		y		z		{	*/
9012CASE_GROUND_STATE,
9013CASE_GROUND_STATE,
9014CASE_GROUND_STATE,
9015CASE_GROUND_STATE,
9016/*	|		}		~		DEL	*/
9017CASE_GROUND_STATE,
9018CASE_GROUND_STATE,
9019CASE_GROUND_STATE,
9020CASE_IGNORE,
9021/*      0x80            0x81            0x82            0x83    */
9022CASE_GROUND_STATE,
9023CASE_GROUND_STATE,
9024CASE_GROUND_STATE,
9025CASE_GROUND_STATE,
9026/*      0x84            0x85            0x86            0x87    */
9027CASE_IND,
9028CASE_NEL,
9029CASE_GROUND_STATE,
9030CASE_GROUND_STATE,
9031/*      0x88            0x89            0x8a            0x8b    */
9032CASE_HTS,
9033CASE_GROUND_STATE,
9034CASE_GROUND_STATE,
9035CASE_GROUND_STATE,
9036/*      0x8c            0x8d            0x8e            0x8f    */
9037CASE_GROUND_STATE,
9038CASE_RI,
9039CASE_SS2,
9040CASE_SS3,
9041/*      0x90            0x91            0x92            0x93    */
9042CASE_DCS,
9043CASE_GROUND_STATE,
9044CASE_GROUND_STATE,
9045CASE_GROUND_STATE,
9046/*      0x94            0x95            0x96            0x97    */
9047CASE_GROUND_STATE,
9048CASE_GROUND_STATE,
9049CASE_SPA,
9050CASE_EPA,
9051/*      0x98            0x99            0x9a            0x9b    */
9052CASE_SOS,
9053CASE_GROUND_STATE,
9054CASE_DECID,
9055CASE_CSI_STATE,
9056/*      0x9c            0x9d            0x9e            0x9f    */
9057CASE_ST,
9058CASE_OSC,
9059CASE_PM,
9060CASE_APC,
9061/*      nobreakspace    exclamdown      cent            sterling        */
9062CASE_ESC_IGNORE,
9063CASE_ESC_IGNORE,
9064CASE_ESC_IGNORE,
9065CASE_ESC_IGNORE,
9066/*      currency        yen             brokenbar       section         */
9067CASE_ESC_IGNORE,
9068CASE_ESC_IGNORE,
9069CASE_ESC_IGNORE,
9070CASE_ESC_IGNORE,
9071/*      diaeresis       copyright       ordfeminine     guillemotleft   */
9072CASE_ESC_IGNORE,
9073CASE_ESC_IGNORE,
9074CASE_ESC_IGNORE,
9075CASE_ESC_IGNORE,
9076/*      notsign         hyphen          registered      macron          */
9077CASE_ESC_IGNORE,
9078CASE_ESC_IGNORE,
9079CASE_ESC_IGNORE,
9080CASE_ESC_IGNORE,
9081/*      degree          plusminus       twosuperior     threesuperior   */
9082CASE_GSETS_PERCENT,
9083CASE_GROUND_STATE,
9084CASE_GSETS_PERCENT,
9085CASE_GSETS_PERCENT,
9086/*      acute           mu              paragraph       periodcentered  */
9087CASE_GROUND_STATE,
9088CASE_GSETS_PERCENT,
9089CASE_GSETS_PERCENT,
9090CASE_GROUND_STATE,
9091/*      cedilla         onesuperior     masculine       guillemotright  */
9092CASE_GROUND_STATE,
9093CASE_GROUND_STATE,
9094CASE_GROUND_STATE,
9095CASE_GROUND_STATE,
9096/*      onequarter      onehalf         threequarters   questiondown    */
9097CASE_GROUND_STATE,
9098CASE_GSETS_PERCENT,
9099CASE_GROUND_STATE,
9100CASE_GROUND_STATE,
9101/*      Agrave          Aacute          Acircumflex     Atilde          */
9102CASE_GROUND_STATE,
9103CASE_GROUND_STATE,
9104CASE_GROUND_STATE,
9105CASE_GROUND_STATE,
9106/*      Adiaeresis      Aring           AE              Ccedilla        */
9107CASE_GROUND_STATE,
9108CASE_GROUND_STATE,
9109CASE_GROUND_STATE,
9110CASE_GROUND_STATE,
9111/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
9112CASE_GROUND_STATE,
9113CASE_GROUND_STATE,
9114CASE_GROUND_STATE,
9115CASE_GROUND_STATE,
9116/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
9117CASE_GROUND_STATE,
9118CASE_GROUND_STATE,
9119CASE_GROUND_STATE,
9120CASE_GROUND_STATE,
9121/*      Eth             Ntilde          Ograve          Oacute          */
9122CASE_GROUND_STATE,
9123CASE_GROUND_STATE,
9124CASE_GROUND_STATE,
9125CASE_GROUND_STATE,
9126/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
9127CASE_GROUND_STATE,
9128CASE_GROUND_STATE,
9129CASE_GROUND_STATE,
9130CASE_GROUND_STATE,
9131/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
9132CASE_GROUND_STATE,
9133CASE_GROUND_STATE,
9134CASE_GROUND_STATE,
9135CASE_GROUND_STATE,
9136/*      Udiaeresis      Yacute          Thorn           ssharp          */
9137CASE_GROUND_STATE,
9138CASE_GROUND_STATE,
9139CASE_GROUND_STATE,
9140CASE_GROUND_STATE,
9141/*      agrave          aacute          acircumflex     atilde          */
9142CASE_GROUND_STATE,
9143CASE_GROUND_STATE,
9144CASE_GROUND_STATE,
9145CASE_GROUND_STATE,
9146/*      adiaeresis      aring           ae              ccedilla        */
9147CASE_GROUND_STATE,
9148CASE_GROUND_STATE,
9149CASE_GROUND_STATE,
9150CASE_GROUND_STATE,
9151/*      egrave          eacute          ecircumflex     ediaeresis      */
9152CASE_GROUND_STATE,
9153CASE_GROUND_STATE,
9154CASE_GROUND_STATE,
9155CASE_GROUND_STATE,
9156/*      igrave          iacute          icircumflex     idiaeresis      */
9157CASE_GROUND_STATE,
9158CASE_GROUND_STATE,
9159CASE_GROUND_STATE,
9160CASE_GROUND_STATE,
9161/*      eth             ntilde          ograve          oacute          */
9162CASE_GROUND_STATE,
9163CASE_GROUND_STATE,
9164CASE_GROUND_STATE,
9165CASE_GROUND_STATE,
9166/*      ocircumflex     otilde          odiaeresis      division        */
9167CASE_GROUND_STATE,
9168CASE_GROUND_STATE,
9169CASE_GROUND_STATE,
9170CASE_GROUND_STATE,
9171/*      oslash          ugrave          uacute          ucircumflex     */
9172CASE_GROUND_STATE,
9173CASE_GROUND_STATE,
9174CASE_GROUND_STATE,
9175CASE_GROUND_STATE,
9176/*      udiaeresis      yacute          thorn           ydiaeresis      */
9177CASE_GROUND_STATE,
9178CASE_GROUND_STATE,
9179CASE_GROUND_STATE,
9180CASE_IGNORE,
9181};
9182#endif /* OPT_WIDE_CHARS */
9183
9184#if OPT_VT52_MODE
9185Const PARSE_T vt52_table[] =
9186{
9187/*	NUL		SOH		STX		ETX	*/
9188CASE_IGNORE,
9189CASE_IGNORE,
9190CASE_IGNORE,
9191CASE_IGNORE,
9192/*	EOT		ENQ		ACK		BEL	*/
9193CASE_IGNORE,
9194CASE_ENQ,
9195CASE_IGNORE,
9196CASE_BELL,
9197/*	BS		HT		NL		VT	*/
9198CASE_BS,
9199CASE_TAB,
9200CASE_VMOT,
9201CASE_VMOT,
9202/*	FF		CR		SO		SI	*/
9203CASE_VMOT,
9204CASE_CR,
9205CASE_IGNORE,
9206CASE_IGNORE,
9207/*	DLE		DC1		DC2		DC3	*/
9208CASE_IGNORE,
9209CASE_IGNORE,
9210CASE_IGNORE,
9211CASE_IGNORE,
9212/*	DC4		NAK		SYN		ETB	*/
9213CASE_IGNORE,
9214CASE_IGNORE,
9215CASE_IGNORE,
9216CASE_IGNORE,
9217/*	CAN		EM		SUB		ESC	*/
9218CASE_GROUND_STATE,
9219CASE_IGNORE,
9220CASE_GROUND_STATE,
9221CASE_ESC,
9222/*	FS		GS		RS		US	*/
9223CASE_IGNORE,
9224CASE_IGNORE,
9225CASE_IGNORE,
9226CASE_IGNORE,
9227/*	SP		!		"		#	*/
9228CASE_PRINT,
9229CASE_PRINT,
9230CASE_PRINT,
9231CASE_PRINT,
9232/*	$		%		&		'	*/
9233CASE_PRINT,
9234CASE_PRINT,
9235CASE_PRINT,
9236CASE_PRINT,
9237/*	(		)		*		+	*/
9238CASE_PRINT,
9239CASE_PRINT,
9240CASE_PRINT,
9241CASE_PRINT,
9242/*	,		-		.		/	*/
9243CASE_PRINT,
9244CASE_PRINT,
9245CASE_PRINT,
9246CASE_PRINT,
9247/*	0		1		2		3	*/
9248CASE_PRINT,
9249CASE_PRINT,
9250CASE_PRINT,
9251CASE_PRINT,
9252/*	4		5		6		7	*/
9253CASE_PRINT,
9254CASE_PRINT,
9255CASE_PRINT,
9256CASE_PRINT,
9257/*	8		9		:		;	*/
9258CASE_PRINT,
9259CASE_PRINT,
9260CASE_PRINT,
9261CASE_PRINT,
9262/*	<		=		>		?	*/
9263CASE_PRINT,
9264CASE_PRINT,
9265CASE_PRINT,
9266CASE_PRINT,
9267/*	@		A		B		C	*/
9268CASE_PRINT,
9269CASE_PRINT,
9270CASE_PRINT,
9271CASE_PRINT,
9272/*	D		E		F		G	*/
9273CASE_PRINT,
9274CASE_PRINT,
9275CASE_PRINT,
9276CASE_PRINT,
9277/*	H		I		J		K	*/
9278CASE_PRINT,
9279CASE_PRINT,
9280CASE_PRINT,
9281CASE_PRINT,
9282/*	L		M		N		O	*/
9283CASE_PRINT,
9284CASE_PRINT,
9285CASE_PRINT,
9286CASE_PRINT,
9287/*	P		Q		R		S	*/
9288CASE_PRINT,
9289CASE_PRINT,
9290CASE_PRINT,
9291CASE_PRINT,
9292/*	T		U		V		W	*/
9293CASE_PRINT,
9294CASE_PRINT,
9295CASE_PRINT,
9296CASE_PRINT,
9297/*	X		Y		Z		[	*/
9298CASE_PRINT,
9299CASE_PRINT,
9300CASE_PRINT,
9301CASE_PRINT,
9302/*	\		]		^		_	*/
9303CASE_PRINT,
9304CASE_PRINT,
9305CASE_PRINT,
9306CASE_PRINT,
9307/*	`		a		b		c	*/
9308CASE_PRINT,
9309CASE_PRINT,
9310CASE_PRINT,
9311CASE_PRINT,
9312/*	d		e		f		g	*/
9313CASE_PRINT,
9314CASE_PRINT,
9315CASE_PRINT,
9316CASE_PRINT,
9317/*	h		i		j		k	*/
9318CASE_PRINT,
9319CASE_PRINT,
9320CASE_PRINT,
9321CASE_PRINT,
9322/*	l		m		n		o	*/
9323CASE_PRINT,
9324CASE_PRINT,
9325CASE_PRINT,
9326CASE_PRINT,
9327/*	p		q		r		s	*/
9328CASE_PRINT,
9329CASE_PRINT,
9330CASE_PRINT,
9331CASE_PRINT,
9332/*	t		u		v		w	*/
9333CASE_PRINT,
9334CASE_PRINT,
9335CASE_PRINT,
9336CASE_PRINT,
9337/*	x		y		z		{	*/
9338CASE_PRINT,
9339CASE_PRINT,
9340CASE_PRINT,
9341CASE_PRINT,
9342/*	|		}		~		DEL	*/
9343CASE_PRINT,
9344CASE_PRINT,
9345CASE_PRINT,
9346CASE_IGNORE,
9347/*      0x80            0x81            0x82            0x83    */
9348CASE_IGNORE,
9349CASE_IGNORE,
9350CASE_IGNORE,
9351CASE_IGNORE,
9352/*      0x84            0x85            0x86            0x87    */
9353CASE_IGNORE,
9354CASE_IGNORE,
9355CASE_IGNORE,
9356CASE_IGNORE,
9357/*      0x88            0x89            0x8a            0x8b    */
9358CASE_IGNORE,
9359CASE_IGNORE,
9360CASE_IGNORE,
9361CASE_IGNORE,
9362/*      0x8c            0x8d            0x8e            0x8f    */
9363CASE_IGNORE,
9364CASE_IGNORE,
9365CASE_IGNORE,
9366CASE_IGNORE,
9367/*      0x90            0x91            0x92            0x93    */
9368CASE_IGNORE,
9369CASE_IGNORE,
9370CASE_IGNORE,
9371CASE_IGNORE,
9372/*      0x94            0x95            0x96            0x97    */
9373CASE_IGNORE,
9374CASE_IGNORE,
9375CASE_IGNORE,
9376CASE_IGNORE,
9377/*      0x98            0x99            0x9a            0x9b    */
9378CASE_IGNORE,
9379CASE_IGNORE,
9380CASE_IGNORE,
9381CASE_IGNORE,
9382/*      0x9c            0x9d            0x9e            0x9f    */
9383CASE_IGNORE,
9384CASE_IGNORE,
9385CASE_IGNORE,
9386CASE_IGNORE,
9387/*      nobreakspace    exclamdown      cent            sterling        */
9388CASE_IGNORE,
9389CASE_IGNORE,
9390CASE_IGNORE,
9391CASE_IGNORE,
9392/*      currency        yen             brokenbar       section         */
9393CASE_IGNORE,
9394CASE_IGNORE,
9395CASE_IGNORE,
9396CASE_IGNORE,
9397/*      diaeresis       copyright       ordfeminine     guillemotleft   */
9398CASE_IGNORE,
9399CASE_IGNORE,
9400CASE_IGNORE,
9401CASE_IGNORE,
9402/*      notsign         hyphen          registered      macron          */
9403CASE_IGNORE,
9404CASE_IGNORE,
9405CASE_IGNORE,
9406CASE_IGNORE,
9407/*      degree          plusminus       twosuperior     threesuperior   */
9408CASE_IGNORE,
9409CASE_IGNORE,
9410CASE_IGNORE,
9411CASE_IGNORE,
9412/*      acute           mu              paragraph       periodcentered  */
9413CASE_IGNORE,
9414CASE_IGNORE,
9415CASE_IGNORE,
9416CASE_IGNORE,
9417/*      cedilla         onesuperior     masculine       guillemotright  */
9418CASE_IGNORE,
9419CASE_IGNORE,
9420CASE_IGNORE,
9421CASE_IGNORE,
9422/*      onequarter      onehalf         threequarters   questiondown    */
9423CASE_IGNORE,
9424CASE_IGNORE,
9425CASE_IGNORE,
9426CASE_IGNORE,
9427/*      Agrave          Aacute          Acircumflex     Atilde          */
9428CASE_IGNORE,
9429CASE_IGNORE,
9430CASE_IGNORE,
9431CASE_IGNORE,
9432/*      Adiaeresis      Aring           AE              Ccedilla        */
9433CASE_IGNORE,
9434CASE_IGNORE,
9435CASE_IGNORE,
9436CASE_IGNORE,
9437/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
9438CASE_IGNORE,
9439CASE_IGNORE,
9440CASE_IGNORE,
9441CASE_IGNORE,
9442/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
9443CASE_IGNORE,
9444CASE_IGNORE,
9445CASE_IGNORE,
9446CASE_IGNORE,
9447/*      Eth             Ntilde          Ograve          Oacute          */
9448CASE_IGNORE,
9449CASE_IGNORE,
9450CASE_IGNORE,
9451CASE_IGNORE,
9452/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
9453CASE_IGNORE,
9454CASE_IGNORE,
9455CASE_IGNORE,
9456CASE_IGNORE,
9457/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
9458CASE_IGNORE,
9459CASE_IGNORE,
9460CASE_IGNORE,
9461CASE_IGNORE,
9462/*      Udiaeresis      Yacute          Thorn           ssharp          */
9463CASE_IGNORE,
9464CASE_IGNORE,
9465CASE_IGNORE,
9466CASE_IGNORE,
9467/*      agrave          aacute          acircumflex     atilde          */
9468CASE_IGNORE,
9469CASE_IGNORE,
9470CASE_IGNORE,
9471CASE_IGNORE,
9472/*      adiaeresis      aring           ae              ccedilla        */
9473CASE_IGNORE,
9474CASE_IGNORE,
9475CASE_IGNORE,
9476CASE_IGNORE,
9477/*      egrave          eacute          ecircumflex     ediaeresis      */
9478CASE_IGNORE,
9479CASE_IGNORE,
9480CASE_IGNORE,
9481CASE_IGNORE,
9482/*      igrave          iacute          icircumflex     idiaeresis      */
9483CASE_IGNORE,
9484CASE_IGNORE,
9485CASE_IGNORE,
9486CASE_IGNORE,
9487/*      eth             ntilde          ograve          oacute          */
9488CASE_IGNORE,
9489CASE_IGNORE,
9490CASE_IGNORE,
9491CASE_IGNORE,
9492/*      ocircumflex     otilde          odiaeresis      division        */
9493CASE_IGNORE,
9494CASE_IGNORE,
9495CASE_IGNORE,
9496CASE_IGNORE,
9497/*      oslash          ugrave          uacute          ucircumflex     */
9498CASE_IGNORE,
9499CASE_IGNORE,
9500CASE_IGNORE,
9501CASE_IGNORE,
9502/*      udiaeresis      yacute          thorn           ydiaeresis      */
9503CASE_IGNORE,
9504CASE_IGNORE,
9505CASE_IGNORE,
9506CASE_IGNORE,
9507};
9508
9509Const PARSE_T vt52_esc_table[] =
9510{
9511/*	NUL		SOH		STX		ETX	*/
9512CASE_IGNORE,
9513CASE_IGNORE,
9514CASE_IGNORE,
9515CASE_IGNORE,
9516/*	EOT		ENQ		ACK		BEL	*/
9517CASE_IGNORE,
9518CASE_ENQ,
9519CASE_IGNORE,
9520CASE_BELL,
9521/*	BS		HT		NL		VT	*/
9522CASE_BS,
9523CASE_TAB,
9524CASE_VMOT,
9525CASE_VMOT,
9526/*	FF		CR		SO		SI	*/
9527CASE_VMOT,
9528CASE_CR,
9529CASE_IGNORE,
9530CASE_IGNORE,
9531/*	DLE		DC1		DC2		DC3	*/
9532CASE_IGNORE,
9533CASE_IGNORE,
9534CASE_IGNORE,
9535CASE_IGNORE,
9536/*	DC4		NAK		SYN		ETB	*/
9537CASE_IGNORE,
9538CASE_IGNORE,
9539CASE_IGNORE,
9540CASE_IGNORE,
9541/*	CAN		EM		SUB		ESC	*/
9542CASE_GROUND_STATE,
9543CASE_IGNORE,
9544CASE_GROUND_STATE,
9545CASE_ESC,
9546/*	FS		GS		RS		US	*/
9547CASE_IGNORE,
9548CASE_IGNORE,
9549CASE_IGNORE,
9550CASE_IGNORE,
9551/*	SP		!		"		#	*/
9552CASE_VT52_IGNORE,
9553CASE_VT52_IGNORE,
9554CASE_VT52_IGNORE,
9555CASE_VT52_IGNORE,
9556/*	$		%		&		'	*/
9557CASE_VT52_IGNORE,
9558CASE_VT52_IGNORE,
9559CASE_VT52_IGNORE,
9560CASE_VT52_IGNORE,
9561/*	(		)		*		+	*/
9562CASE_VT52_IGNORE,
9563CASE_VT52_IGNORE,
9564CASE_VT52_IGNORE,
9565CASE_VT52_IGNORE,
9566/*	,		-		.		/	*/
9567CASE_VT52_IGNORE,
9568CASE_VT52_IGNORE,
9569CASE_VT52_IGNORE,
9570CASE_VT52_IGNORE,
9571/*	0		1		2		3	*/
9572CASE_GROUND_STATE,
9573CASE_GROUND_STATE,
9574CASE_GROUND_STATE,
9575CASE_GROUND_STATE,
9576/*	4		5		6		7	*/
9577CASE_GROUND_STATE,
9578CASE_GROUND_STATE,
9579CASE_GROUND_STATE,
9580CASE_GROUND_STATE,
9581/*	8		9		:		;	*/
9582CASE_GROUND_STATE,
9583CASE_GROUND_STATE,
9584CASE_GROUND_STATE,
9585CASE_GROUND_STATE,
9586/*	<		=		>		?	*/
9587CASE_VT52_FINISH,
9588CASE_DECKPAM,
9589CASE_DECKPNM,
9590CASE_GROUND_STATE,
9591/*	@		A		B		C	*/
9592CASE_GROUND_STATE,
9593CASE_CUU,
9594CASE_CUD,
9595CASE_CUF,
9596/*	D		E		F		G	*/
9597CASE_CUB,
9598CASE_GROUND_STATE,
9599CASE_SO,
9600CASE_SI,
9601/*	H		I		J		K	*/
9602CASE_CUP,
9603CASE_RI,
9604CASE_ED,
9605CASE_EL,
9606/*	L		M		N		O	*/
9607CASE_GROUND_STATE,
9608CASE_GROUND_STATE,
9609CASE_GROUND_STATE,
9610CASE_GROUND_STATE,
9611/*	P		Q		R		S	*/
9612CASE_GROUND_STATE,
9613CASE_GROUND_STATE,
9614CASE_GROUND_STATE,
9615CASE_GROUND_STATE,
9616/*	T		U		V		W	*/
9617CASE_GROUND_STATE,
9618CASE_GROUND_STATE,
9619CASE_GROUND_STATE,
9620CASE_GROUND_STATE,
9621/*	X		Y		Z		[	*/
9622CASE_GROUND_STATE,
9623CASE_VT52_CUP,
9624CASE_DECID,
9625CASE_GROUND_STATE,
9626/*	\		]		^		_	*/
9627CASE_GROUND_STATE,
9628CASE_GROUND_STATE,
9629CASE_GROUND_STATE,
9630CASE_GROUND_STATE,
9631/*	`		a		b		c	*/
9632CASE_GROUND_STATE,
9633CASE_GROUND_STATE,
9634CASE_GROUND_STATE,
9635CASE_GROUND_STATE,
9636/*	d		e		f		g	*/
9637CASE_GROUND_STATE,
9638CASE_GROUND_STATE,
9639CASE_GROUND_STATE,
9640CASE_GROUND_STATE,
9641/*	h		i		j		k	*/
9642CASE_GROUND_STATE,
9643CASE_GROUND_STATE,
9644CASE_GROUND_STATE,
9645CASE_GROUND_STATE,
9646/*	l		m		n		o	*/
9647CASE_GROUND_STATE,
9648CASE_GROUND_STATE,
9649CASE_GROUND_STATE,
9650CASE_GROUND_STATE,
9651/*	p		q		r		s	*/
9652CASE_GROUND_STATE,
9653CASE_GROUND_STATE,
9654CASE_GROUND_STATE,
9655CASE_GROUND_STATE,
9656/*	t		u		v		w	*/
9657CASE_GROUND_STATE,
9658CASE_GROUND_STATE,
9659CASE_GROUND_STATE,
9660CASE_GROUND_STATE,
9661/*	x		y		z		{	*/
9662CASE_GROUND_STATE,
9663CASE_GROUND_STATE,
9664CASE_GROUND_STATE,
9665CASE_GROUND_STATE,
9666/*	|		}		~		DEL	*/
9667CASE_GROUND_STATE,
9668CASE_GROUND_STATE,
9669CASE_GROUND_STATE,
9670CASE_IGNORE,
9671/*      0x80            0x81            0x82            0x83    */
9672CASE_IGNORE,
9673CASE_IGNORE,
9674CASE_IGNORE,
9675CASE_IGNORE,
9676/*      0x84            0x85            0x86            0x87    */
9677CASE_IGNORE,
9678CASE_IGNORE,
9679CASE_IGNORE,
9680CASE_IGNORE,
9681/*      0x88            0x89            0x8a            0x8b    */
9682CASE_IGNORE,
9683CASE_IGNORE,
9684CASE_IGNORE,
9685CASE_IGNORE,
9686/*      0x8c            0x8d            0x8e            0x8f    */
9687CASE_IGNORE,
9688CASE_IGNORE,
9689CASE_IGNORE,
9690CASE_IGNORE,
9691/*      0x90            0x91            0x92            0x93    */
9692CASE_IGNORE,
9693CASE_IGNORE,
9694CASE_IGNORE,
9695CASE_IGNORE,
9696/*      0x94            0x95            0x96            0x97    */
9697CASE_IGNORE,
9698CASE_IGNORE,
9699CASE_IGNORE,
9700CASE_IGNORE,
9701/*      0x98            0x99            0x9a            0x9b    */
9702CASE_IGNORE,
9703CASE_IGNORE,
9704CASE_IGNORE,
9705CASE_IGNORE,
9706/*      0x9c            0x9d            0x9e            0x9f    */
9707CASE_IGNORE,
9708CASE_IGNORE,
9709CASE_IGNORE,
9710CASE_IGNORE,
9711/*      nobreakspace    exclamdown      cent            sterling        */
9712CASE_IGNORE,
9713CASE_IGNORE,
9714CASE_IGNORE,
9715CASE_IGNORE,
9716/*      currency        yen             brokenbar       section         */
9717CASE_IGNORE,
9718CASE_IGNORE,
9719CASE_IGNORE,
9720CASE_IGNORE,
9721/*      diaeresis       copyright       ordfeminine     guillemotleft   */
9722CASE_IGNORE,
9723CASE_IGNORE,
9724CASE_IGNORE,
9725CASE_IGNORE,
9726/*      notsign         hyphen          registered      macron          */
9727CASE_IGNORE,
9728CASE_IGNORE,
9729CASE_IGNORE,
9730CASE_IGNORE,
9731/*      degree          plusminus       twosuperior     threesuperior   */
9732CASE_IGNORE,
9733CASE_IGNORE,
9734CASE_IGNORE,
9735CASE_IGNORE,
9736/*      acute           mu              paragraph       periodcentered  */
9737CASE_IGNORE,
9738CASE_IGNORE,
9739CASE_IGNORE,
9740CASE_IGNORE,
9741/*      cedilla         onesuperior     masculine       guillemotright  */
9742CASE_IGNORE,
9743CASE_IGNORE,
9744CASE_IGNORE,
9745CASE_IGNORE,
9746/*      onequarter      onehalf         threequarters   questiondown    */
9747CASE_IGNORE,
9748CASE_IGNORE,
9749CASE_IGNORE,
9750CASE_IGNORE,
9751/*      Agrave          Aacute          Acircumflex     Atilde          */
9752CASE_IGNORE,
9753CASE_IGNORE,
9754CASE_IGNORE,
9755CASE_IGNORE,
9756/*      Adiaeresis      Aring           AE              Ccedilla        */
9757CASE_IGNORE,
9758CASE_IGNORE,
9759CASE_IGNORE,
9760CASE_IGNORE,
9761/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
9762CASE_IGNORE,
9763CASE_IGNORE,
9764CASE_IGNORE,
9765CASE_IGNORE,
9766/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
9767CASE_IGNORE,
9768CASE_IGNORE,
9769CASE_IGNORE,
9770CASE_IGNORE,
9771/*      Eth             Ntilde          Ograve          Oacute          */
9772CASE_IGNORE,
9773CASE_IGNORE,
9774CASE_IGNORE,
9775CASE_IGNORE,
9776/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
9777CASE_IGNORE,
9778CASE_IGNORE,
9779CASE_IGNORE,
9780CASE_IGNORE,
9781/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
9782CASE_IGNORE,
9783CASE_IGNORE,
9784CASE_IGNORE,
9785CASE_IGNORE,
9786/*      Udiaeresis      Yacute          Thorn           ssharp          */
9787CASE_IGNORE,
9788CASE_IGNORE,
9789CASE_IGNORE,
9790CASE_IGNORE,
9791/*      agrave          aacute          acircumflex     atilde          */
9792CASE_IGNORE,
9793CASE_IGNORE,
9794CASE_IGNORE,
9795CASE_IGNORE,
9796/*      adiaeresis      aring           ae              ccedilla        */
9797CASE_IGNORE,
9798CASE_IGNORE,
9799CASE_IGNORE,
9800CASE_IGNORE,
9801/*      egrave          eacute          ecircumflex     ediaeresis      */
9802CASE_IGNORE,
9803CASE_IGNORE,
9804CASE_IGNORE,
9805CASE_IGNORE,
9806/*      igrave          iacute          icircumflex     idiaeresis      */
9807CASE_IGNORE,
9808CASE_IGNORE,
9809CASE_IGNORE,
9810CASE_IGNORE,
9811/*      eth             ntilde          ograve          oacute          */
9812CASE_IGNORE,
9813CASE_IGNORE,
9814CASE_IGNORE,
9815CASE_IGNORE,
9816/*      ocircumflex     otilde          odiaeresis      division        */
9817CASE_IGNORE,
9818CASE_IGNORE,
9819CASE_IGNORE,
9820CASE_IGNORE,
9821/*      oslash          ugrave          uacute          ucircumflex     */
9822CASE_IGNORE,
9823CASE_IGNORE,
9824CASE_IGNORE,
9825CASE_IGNORE,
9826/*      udiaeresis      yacute          thorn           ydiaeresis      */
9827CASE_IGNORE,
9828CASE_IGNORE,
9829CASE_IGNORE,
9830CASE_IGNORE,
9831};
9832
9833Const PARSE_T vt52_ignore_table[] =
9834{
9835/*	NUL		SOH		STX		ETX	*/
9836CASE_IGNORE,
9837CASE_IGNORE,
9838CASE_IGNORE,
9839CASE_IGNORE,
9840/*	EOT		ENQ		ACK		BEL	*/
9841CASE_IGNORE,
9842CASE_ENQ,
9843CASE_IGNORE,
9844CASE_BELL,
9845/*	BS		HT		NL		VT	*/
9846CASE_BS,
9847CASE_TAB,
9848CASE_VMOT,
9849CASE_VMOT,
9850/*	FF		CR		SO		SI	*/
9851CASE_VMOT,
9852CASE_CR,
9853CASE_IGNORE,
9854CASE_IGNORE,
9855/*	DLE		DC1		DC2		DC3	*/
9856CASE_IGNORE,
9857CASE_IGNORE,
9858CASE_IGNORE,
9859CASE_IGNORE,
9860/*	DC4		NAK		SYN		ETB	*/
9861CASE_IGNORE,
9862CASE_IGNORE,
9863CASE_IGNORE,
9864CASE_IGNORE,
9865/*	CAN		EM		SUB		ESC	*/
9866CASE_GROUND_STATE,
9867CASE_IGNORE,
9868CASE_GROUND_STATE,
9869CASE_ESC,
9870/*	FS		GS		RS		US	*/
9871CASE_IGNORE,
9872CASE_IGNORE,
9873CASE_IGNORE,
9874CASE_IGNORE,
9875/*	SP		!		"		#	*/
9876CASE_IGNORE,
9877CASE_IGNORE,
9878CASE_IGNORE,
9879CASE_IGNORE,
9880/*	$		%		&		'	*/
9881CASE_IGNORE,
9882CASE_IGNORE,
9883CASE_IGNORE,
9884CASE_IGNORE,
9885/*	(		)		*		+	*/
9886CASE_IGNORE,
9887CASE_IGNORE,
9888CASE_IGNORE,
9889CASE_IGNORE,
9890/*	,		-		.		/	*/
9891CASE_IGNORE,
9892CASE_IGNORE,
9893CASE_IGNORE,
9894CASE_IGNORE,
9895/*	0		1		2		3	*/
9896CASE_GROUND_STATE,
9897CASE_GROUND_STATE,
9898CASE_GROUND_STATE,
9899CASE_GROUND_STATE,
9900/*	4		5		6		7	*/
9901CASE_GROUND_STATE,
9902CASE_GROUND_STATE,
9903CASE_GROUND_STATE,
9904CASE_GROUND_STATE,
9905/*	8		9		:		;	*/
9906CASE_GROUND_STATE,
9907CASE_GROUND_STATE,
9908CASE_GROUND_STATE,
9909CASE_GROUND_STATE,
9910/*	<		=		>		?	*/
9911CASE_GROUND_STATE,
9912CASE_GROUND_STATE,
9913CASE_GROUND_STATE,
9914CASE_GROUND_STATE,
9915/*	@		A		B		C	*/
9916CASE_GROUND_STATE,
9917CASE_GROUND_STATE,
9918CASE_GROUND_STATE,
9919CASE_GROUND_STATE,
9920/*	D		E		F		G	*/
9921CASE_GROUND_STATE,
9922CASE_GROUND_STATE,
9923CASE_GROUND_STATE,
9924CASE_GROUND_STATE,
9925/*	H		I		J		K	*/
9926CASE_GROUND_STATE,
9927CASE_GROUND_STATE,
9928CASE_GROUND_STATE,
9929CASE_GROUND_STATE,
9930/*	L		M		N		O	*/
9931CASE_GROUND_STATE,
9932CASE_GROUND_STATE,
9933CASE_GROUND_STATE,
9934CASE_GROUND_STATE,
9935/*	P		Q		R		S	*/
9936CASE_GROUND_STATE,
9937CASE_GROUND_STATE,
9938CASE_GROUND_STATE,
9939CASE_GROUND_STATE,
9940/*	T		U		V		W	*/
9941CASE_GROUND_STATE,
9942CASE_GROUND_STATE,
9943CASE_GROUND_STATE,
9944CASE_GROUND_STATE,
9945/*	X		Y		Z		[	*/
9946CASE_GROUND_STATE,
9947CASE_GROUND_STATE,
9948CASE_GROUND_STATE,
9949CASE_GROUND_STATE,
9950/*	\		]		^		_	*/
9951CASE_GROUND_STATE,
9952CASE_GROUND_STATE,
9953CASE_GROUND_STATE,
9954CASE_GROUND_STATE,
9955/*	`		a		b		c	*/
9956CASE_GROUND_STATE,
9957CASE_GROUND_STATE,
9958CASE_GROUND_STATE,
9959CASE_GROUND_STATE,
9960/*	d		e		f		g	*/
9961CASE_GROUND_STATE,
9962CASE_GROUND_STATE,
9963CASE_GROUND_STATE,
9964CASE_GROUND_STATE,
9965/*	h		i		j		k	*/
9966CASE_GROUND_STATE,
9967CASE_GROUND_STATE,
9968CASE_GROUND_STATE,
9969CASE_GROUND_STATE,
9970/*	l		m		n		o	*/
9971CASE_GROUND_STATE,
9972CASE_GROUND_STATE,
9973CASE_GROUND_STATE,
9974CASE_GROUND_STATE,
9975/*	p		q		r		s	*/
9976CASE_GROUND_STATE,
9977CASE_GROUND_STATE,
9978CASE_GROUND_STATE,
9979CASE_GROUND_STATE,
9980/*	t		u		v		w	*/
9981CASE_GROUND_STATE,
9982CASE_GROUND_STATE,
9983CASE_GROUND_STATE,
9984CASE_GROUND_STATE,
9985/*	x		y		z		{	*/
9986CASE_GROUND_STATE,
9987CASE_GROUND_STATE,
9988CASE_GROUND_STATE,
9989CASE_GROUND_STATE,
9990/*	|		}		~		DEL	*/
9991CASE_GROUND_STATE,
9992CASE_GROUND_STATE,
9993CASE_GROUND_STATE,
9994CASE_IGNORE,
9995/*      0x80            0x81            0x82            0x83    */
9996CASE_IGNORE,
9997CASE_IGNORE,
9998CASE_IGNORE,
9999CASE_IGNORE,
10000/*      0x84            0x85            0x86            0x87    */
10001CASE_IGNORE,
10002CASE_IGNORE,
10003CASE_IGNORE,
10004CASE_IGNORE,
10005/*      0x88            0x89            0x8a            0x8b    */
10006CASE_IGNORE,
10007CASE_IGNORE,
10008CASE_IGNORE,
10009CASE_IGNORE,
10010/*      0x8c            0x8d            0x8e            0x8f    */
10011CASE_IGNORE,
10012CASE_IGNORE,
10013CASE_IGNORE,
10014CASE_IGNORE,
10015/*      0x90            0x91            0x92            0x93    */
10016CASE_IGNORE,
10017CASE_IGNORE,
10018CASE_IGNORE,
10019CASE_IGNORE,
10020/*      0x94            0x95            0x96            0x97    */
10021CASE_IGNORE,
10022CASE_IGNORE,
10023CASE_IGNORE,
10024CASE_IGNORE,
10025/*      0x98            0x99            0x9a            0x9b    */
10026CASE_IGNORE,
10027CASE_IGNORE,
10028CASE_IGNORE,
10029CASE_IGNORE,
10030/*      0x9c            0x9d            0x9e            0x9f    */
10031CASE_IGNORE,
10032CASE_IGNORE,
10033CASE_IGNORE,
10034CASE_IGNORE,
10035/*      nobreakspace    exclamdown      cent            sterling        */
10036CASE_IGNORE,
10037CASE_IGNORE,
10038CASE_IGNORE,
10039CASE_IGNORE,
10040/*      currency        yen             brokenbar       section         */
10041CASE_IGNORE,
10042CASE_IGNORE,
10043CASE_IGNORE,
10044CASE_IGNORE,
10045/*      diaeresis       copyright       ordfeminine     guillemotleft   */
10046CASE_IGNORE,
10047CASE_IGNORE,
10048CASE_IGNORE,
10049CASE_IGNORE,
10050/*      notsign         hyphen          registered      macron          */
10051CASE_IGNORE,
10052CASE_IGNORE,
10053CASE_IGNORE,
10054CASE_IGNORE,
10055/*      degree          plusminus       twosuperior     threesuperior   */
10056CASE_IGNORE,
10057CASE_IGNORE,
10058CASE_IGNORE,
10059CASE_IGNORE,
10060/*      acute           mu              paragraph       periodcentered  */
10061CASE_IGNORE,
10062CASE_IGNORE,
10063CASE_IGNORE,
10064CASE_IGNORE,
10065/*      cedilla         onesuperior     masculine       guillemotright  */
10066CASE_IGNORE,
10067CASE_IGNORE,
10068CASE_IGNORE,
10069CASE_IGNORE,
10070/*      onequarter      onehalf         threequarters   questiondown    */
10071CASE_IGNORE,
10072CASE_IGNORE,
10073CASE_IGNORE,
10074CASE_IGNORE,
10075/*      Agrave          Aacute          Acircumflex     Atilde          */
10076CASE_IGNORE,
10077CASE_IGNORE,
10078CASE_IGNORE,
10079CASE_IGNORE,
10080/*      Adiaeresis      Aring           AE              Ccedilla        */
10081CASE_IGNORE,
10082CASE_IGNORE,
10083CASE_IGNORE,
10084CASE_IGNORE,
10085/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
10086CASE_IGNORE,
10087CASE_IGNORE,
10088CASE_IGNORE,
10089CASE_IGNORE,
10090/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
10091CASE_IGNORE,
10092CASE_IGNORE,
10093CASE_IGNORE,
10094CASE_IGNORE,
10095/*      Eth             Ntilde          Ograve          Oacute          */
10096CASE_IGNORE,
10097CASE_IGNORE,
10098CASE_IGNORE,
10099CASE_IGNORE,
10100/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
10101CASE_IGNORE,
10102CASE_IGNORE,
10103CASE_IGNORE,
10104CASE_IGNORE,
10105/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
10106CASE_IGNORE,
10107CASE_IGNORE,
10108CASE_IGNORE,
10109CASE_IGNORE,
10110/*      Udiaeresis      Yacute          Thorn           ssharp          */
10111CASE_IGNORE,
10112CASE_IGNORE,
10113CASE_IGNORE,
10114CASE_IGNORE,
10115/*      agrave          aacute          acircumflex     atilde          */
10116CASE_IGNORE,
10117CASE_IGNORE,
10118CASE_IGNORE,
10119CASE_IGNORE,
10120/*      adiaeresis      aring           ae              ccedilla        */
10121CASE_IGNORE,
10122CASE_IGNORE,
10123CASE_IGNORE,
10124CASE_IGNORE,
10125/*      egrave          eacute          ecircumflex     ediaeresis      */
10126CASE_IGNORE,
10127CASE_IGNORE,
10128CASE_IGNORE,
10129CASE_IGNORE,
10130/*      igrave          iacute          icircumflex     idiaeresis      */
10131CASE_IGNORE,
10132CASE_IGNORE,
10133CASE_IGNORE,
10134CASE_IGNORE,
10135/*      eth             ntilde          ograve          oacute          */
10136CASE_IGNORE,
10137CASE_IGNORE,
10138CASE_IGNORE,
10139CASE_IGNORE,
10140/*      ocircumflex     otilde          odiaeresis      division        */
10141CASE_IGNORE,
10142CASE_IGNORE,
10143CASE_IGNORE,
10144CASE_IGNORE,
10145/*      oslash          ugrave          uacute          ucircumflex     */
10146CASE_IGNORE,
10147CASE_IGNORE,
10148CASE_IGNORE,
10149CASE_IGNORE,
10150/*      udiaeresis      yacute          thorn           ydiaeresis      */
10151CASE_IGNORE,
10152CASE_IGNORE,
10153CASE_IGNORE,
10154CASE_IGNORE,
10155};
10156#endif /* OPT_VT52_MODE */
10157/* *INDENT-ON* */
10158