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