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