VTPrsTbl.c revision 894e0ac8
1/* $XTermId: VTPrsTbl.c,v 1.79 2014/05/02 23:32:27 tom Exp $ */
2
3/*
4 * Copyright 1999-2013,2014 by Thomas E. Dickey
5 *
6 *                         All Rights Reserved
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 *
27 * Except as contained in this notice, the name(s) of the above copyright
28 * holders shall not be used in advertising or otherwise to promote the
29 * sale, use or other dealings in this Software without prior written
30 * authorization.
31 *
32 *
33 * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
34 *
35 *                         All Rights Reserved
36 *
37 * Permission to use, copy, modify, and distribute this software and its
38 * documentation for any purpose and without fee is hereby granted,
39 * provided that the above copyright notice appear in all copies and that
40 * both that copyright notice and this permission notice appear in
41 * supporting documentation, and that the name of Digital Equipment
42 * Corporation not be used in advertising or publicity pertaining to
43 * distribution of the software without specific, written prior permission.
44 *
45 *
46 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
47 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
48 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
49 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
50 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
51 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
52 * SOFTWARE.
53 */
54
55#include <VTparse.h>
56/* *INDENT-OFF* */
57
58#if !OPT_BLINK_CURS
59#undef  CASE_CSI_SPACE_STATE
60#define CASE_CSI_SPACE_STATE CASE_CSI_IGNORE
61#endif
62
63#if !OPT_DEC_LOCATOR
64#undef  CASE_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/*	FF		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/*	FF		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_ESC_COLON,
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_HPR,
534CASE_REP,
535CASE_DA1,
536/*	d		e		f		g	*/
537CASE_VPA,
538CASE_VPR,
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_ANSI_SC,
556/*	t		u		v		w	*/
557CASE_XTERM_WINOPS,
558CASE_ANSI_RC,
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_ESC_COLON,
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_HPR,
694CASE_REP,
695CASE_DA1,
696/*      adiaeresis      aring           ae              ccedilla        */
697CASE_VPA,
698CASE_VPR,
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_ANSI_SC,
716/*      ocircumflex     otilde          odiaeresis      division        */
717CASE_XTERM_WINOPS,
718CASE_ANSI_RC,
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/*	FF		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_ESC_COLON,
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_HPR,
858CASE_REP,
859CASE_DA1,
860/*	d		e		f		g	*/
861CASE_VPA,
862CASE_VPR,
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_ANSI_SC,
880/*	t		u		v		w	*/
881CASE_XTERM_WINOPS,
882CASE_ANSI_RC,
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_DOLLAR_STATE,
942CASE_CSI_IGNORE,
943CASE_CSI_IGNORE,
944CASE_CSI_TICK_STATE,
945/*      diaeresis       copyright       ordfeminine     guillemotleft   */
946CASE_CSI_IGNORE,
947CASE_CSI_IGNORE,
948CASE_CSI_STAR_STATE,
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_ESC_COLON,
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_HPR,
1018CASE_REP,
1019CASE_DA1,
1020/*      adiaeresis      aring           ae              ccedilla        */
1021CASE_VPA,
1022CASE_VPR,
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_ANSI_SC,
1040/*      ocircumflex     otilde          odiaeresis      division        */
1041CASE_XTERM_WINOPS,
1042CASE_ANSI_RC,
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/*	FF		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/*	FF		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/*	FF		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_SL,
1790CASE_SR,
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_SL,
1950CASE_SR,
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/*	FF		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_DECIC,
2192CASE_DECDC,
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_DECIC,
2352CASE_DECDC,
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/*	FF		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_RQM,
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_RQM,
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/*	FF		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_DECRQCRA,
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_DECRQCRA,
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/*	FF		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_DEC_DOLLAR_STATE,
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_ESC_COLON,
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_GRAPHICS_ATTRIBUTES,
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_DEC_DOLLAR_STATE,
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_ESC_COLON,
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_GRAPHICS_ATTRIBUTES,
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
3331#if OPT_DEC_RECTOPS
3332Const PARSE_T csi_dec_dollar_table[] =	/* CSI ?... $ */
3333{
3334/*	NUL		SOH		STX		ETX	*/
3335CASE_IGNORE,
3336CASE_IGNORE,
3337CASE_IGNORE,
3338CASE_IGNORE,
3339/*	EOT		ENQ		ACK		BEL	*/
3340CASE_IGNORE,
3341CASE_ENQ,
3342CASE_IGNORE,
3343CASE_BELL,
3344/*	BS		HT		NL		VT	*/
3345CASE_BS,
3346CASE_TAB,
3347CASE_VMOT,
3348CASE_VMOT,
3349/*	FF		CR		SO		SI	*/
3350CASE_VMOT,
3351CASE_CR,
3352CASE_SO,
3353CASE_SI,
3354/*	DLE		DC1		DC2		DC3	*/
3355CASE_IGNORE,
3356CASE_IGNORE,
3357CASE_IGNORE,
3358CASE_IGNORE,
3359/*	DC4		NAK		SYN		ETB	*/
3360CASE_IGNORE,
3361CASE_IGNORE,
3362CASE_IGNORE,
3363CASE_IGNORE,
3364/*	CAN		EM		SUB		ESC	*/
3365CASE_GROUND_STATE,
3366CASE_IGNORE,
3367CASE_GROUND_STATE,
3368CASE_ESC,
3369/*	FS		GS		RS		US	*/
3370CASE_IGNORE,
3371CASE_IGNORE,
3372CASE_IGNORE,
3373CASE_IGNORE,
3374/*	SP		!		"		#	*/
3375CASE_CSI_IGNORE,
3376CASE_CSI_IGNORE,
3377CASE_CSI_IGNORE,
3378CASE_CSI_IGNORE,
3379/*	$		%		&		'	*/
3380CASE_CSI_IGNORE,
3381CASE_CSI_IGNORE,
3382CASE_CSI_IGNORE,
3383CASE_CSI_IGNORE,
3384/*	(		)		*		+	*/
3385CASE_CSI_IGNORE,
3386CASE_CSI_IGNORE,
3387CASE_CSI_IGNORE,
3388CASE_CSI_IGNORE,
3389/*	,		-		.		/	*/
3390CASE_CSI_IGNORE,
3391CASE_CSI_IGNORE,
3392CASE_CSI_IGNORE,
3393CASE_CSI_IGNORE,
3394/*	0		1		2		3	*/
3395CASE_CSI_IGNORE,
3396CASE_CSI_IGNORE,
3397CASE_CSI_IGNORE,
3398CASE_CSI_IGNORE,
3399/*	4		5		6		7	*/
3400CASE_CSI_IGNORE,
3401CASE_CSI_IGNORE,
3402CASE_CSI_IGNORE,
3403CASE_CSI_IGNORE,
3404/*	8		9		:		;	*/
3405CASE_CSI_IGNORE,
3406CASE_CSI_IGNORE,
3407CASE_CSI_IGNORE,
3408CASE_CSI_IGNORE,
3409/*	<		=		>		?	*/
3410CASE_CSI_IGNORE,
3411CASE_CSI_IGNORE,
3412CASE_CSI_IGNORE,
3413CASE_CSI_IGNORE,
3414/*	@		A		B		C	*/
3415CASE_GROUND_STATE,
3416CASE_GROUND_STATE,
3417CASE_GROUND_STATE,
3418CASE_GROUND_STATE,
3419/*	D		E		F		G	*/
3420CASE_GROUND_STATE,
3421CASE_GROUND_STATE,
3422CASE_GROUND_STATE,
3423CASE_GROUND_STATE,
3424/*	H		I		J		K	*/
3425CASE_GROUND_STATE,
3426CASE_GROUND_STATE,
3427CASE_GROUND_STATE,
3428CASE_GROUND_STATE,
3429/*	L		M		N		O	*/
3430CASE_GROUND_STATE,
3431CASE_GROUND_STATE,
3432CASE_GROUND_STATE,
3433CASE_GROUND_STATE,
3434/*	P		Q		R		S	*/
3435CASE_GROUND_STATE,
3436CASE_GROUND_STATE,
3437CASE_GROUND_STATE,
3438CASE_GROUND_STATE,
3439/*	T		U		V		W	*/
3440CASE_GROUND_STATE,
3441CASE_GROUND_STATE,
3442CASE_GROUND_STATE,
3443CASE_GROUND_STATE,
3444/*	X		Y		Z		[	*/
3445CASE_GROUND_STATE,
3446CASE_GROUND_STATE,
3447CASE_GROUND_STATE,
3448CASE_GROUND_STATE,
3449/*	\		]		^		_	*/
3450CASE_GROUND_STATE,
3451CASE_GROUND_STATE,
3452CASE_GROUND_STATE,
3453CASE_GROUND_STATE,
3454/*	`		a		b		c	*/
3455CASE_GROUND_STATE,
3456CASE_GROUND_STATE,
3457CASE_GROUND_STATE,
3458CASE_GROUND_STATE,
3459/*	d		e		f		g	*/
3460CASE_GROUND_STATE,
3461CASE_GROUND_STATE,
3462CASE_GROUND_STATE,
3463CASE_GROUND_STATE,
3464/*	h		i		j		k	*/
3465CASE_GROUND_STATE,
3466CASE_GROUND_STATE,
3467CASE_GROUND_STATE,
3468CASE_GROUND_STATE,
3469/*	l		m		n		o	*/
3470CASE_GROUND_STATE,
3471CASE_GROUND_STATE,
3472CASE_GROUND_STATE,
3473CASE_GROUND_STATE,
3474/*	p		q		r		s	*/
3475CASE_DECRQM,
3476CASE_GROUND_STATE,
3477CASE_GROUND_STATE,
3478CASE_GROUND_STATE,
3479/*	t		u		v		w	*/
3480CASE_GROUND_STATE,
3481CASE_GROUND_STATE,
3482CASE_GROUND_STATE,
3483CASE_GROUND_STATE,
3484/*	x		y		z		{	*/
3485CASE_GROUND_STATE,
3486CASE_GROUND_STATE,
3487CASE_GROUND_STATE,
3488CASE_GROUND_STATE,
3489/*	|		}		~		DEL	*/
3490CASE_GROUND_STATE,
3491CASE_GROUND_STATE,
3492CASE_GROUND_STATE,
3493CASE_IGNORE,
3494/*      0x80            0x81            0x82            0x83    */
3495CASE_GROUND_STATE,
3496CASE_GROUND_STATE,
3497CASE_GROUND_STATE,
3498CASE_GROUND_STATE,
3499/*      0x84            0x85            0x86            0x87    */
3500CASE_IND,
3501CASE_NEL,
3502CASE_GROUND_STATE,
3503CASE_GROUND_STATE,
3504/*      0x88            0x89            0x8a            0x8b    */
3505CASE_HTS,
3506CASE_GROUND_STATE,
3507CASE_GROUND_STATE,
3508CASE_GROUND_STATE,
3509/*      0x8c            0x8d            0x8e            0x8f    */
3510CASE_GROUND_STATE,
3511CASE_RI,
3512CASE_SS2,
3513CASE_SS3,
3514/*      0x90            0x91            0x92            0x93    */
3515CASE_DCS,
3516CASE_GROUND_STATE,
3517CASE_GROUND_STATE,
3518CASE_GROUND_STATE,
3519/*      0x94            0x95            0x96            0x97    */
3520CASE_GROUND_STATE,
3521CASE_GROUND_STATE,
3522CASE_SPA,
3523CASE_EPA,
3524/*      0x98            0x99            0x9a            0x9b    */
3525CASE_SOS,
3526CASE_GROUND_STATE,
3527CASE_DECID,
3528CASE_CSI_STATE,
3529/*      0x9c            0x9d            0x9e            0x9f    */
3530CASE_ST,
3531CASE_OSC,
3532CASE_PM,
3533CASE_APC,
3534/*	nobreakspace	exclamdown	cent		sterling	*/
3535CASE_CSI_IGNORE,
3536CASE_CSI_IGNORE,
3537CASE_CSI_IGNORE,
3538CASE_CSI_IGNORE,
3539/*	currency	yen		brokenbar	section		*/
3540CASE_CSI_IGNORE,
3541CASE_CSI_IGNORE,
3542CASE_CSI_IGNORE,
3543CASE_CSI_IGNORE,
3544/*	diaeresis	copyright	ordfeminine	guillemotleft	*/
3545CASE_CSI_IGNORE,
3546CASE_CSI_IGNORE,
3547CASE_CSI_IGNORE,
3548CASE_CSI_IGNORE,
3549/*	notsign		hyphen		registered	macron		*/
3550CASE_CSI_IGNORE,
3551CASE_CSI_IGNORE,
3552CASE_CSI_IGNORE,
3553CASE_CSI_IGNORE,
3554/*	degree		plusminus	twosuperior	threesuperior	*/
3555CASE_CSI_IGNORE,
3556CASE_CSI_IGNORE,
3557CASE_CSI_IGNORE,
3558CASE_CSI_IGNORE,
3559/*	acute		mu		paragraph	periodcentered	*/
3560CASE_CSI_IGNORE,
3561CASE_CSI_IGNORE,
3562CASE_CSI_IGNORE,
3563CASE_CSI_IGNORE,
3564/*	cedilla		onesuperior	masculine	guillemotright	*/
3565CASE_CSI_IGNORE,
3566CASE_CSI_IGNORE,
3567CASE_CSI_IGNORE,
3568CASE_CSI_IGNORE,
3569/*	onequarter	onehalf		threequarters	questiondown	*/
3570CASE_CSI_IGNORE,
3571CASE_CSI_IGNORE,
3572CASE_CSI_IGNORE,
3573CASE_CSI_IGNORE,
3574/*	Agrave		Aacute		Acircumflex	Atilde		*/
3575CASE_GROUND_STATE,
3576CASE_GROUND_STATE,
3577CASE_GROUND_STATE,
3578CASE_GROUND_STATE,
3579/*	Adiaeresis	Aring		AE		Ccedilla	*/
3580CASE_GROUND_STATE,
3581CASE_GROUND_STATE,
3582CASE_GROUND_STATE,
3583CASE_GROUND_STATE,
3584/*	Egrave		Eacute		Ecircumflex	Ediaeresis	*/
3585CASE_GROUND_STATE,
3586CASE_GROUND_STATE,
3587CASE_GROUND_STATE,
3588CASE_GROUND_STATE,
3589/*	Igrave		Iacute		Icircumflex	Idiaeresis	*/
3590CASE_GROUND_STATE,
3591CASE_GROUND_STATE,
3592CASE_GROUND_STATE,
3593CASE_GROUND_STATE,
3594/*	Eth		Ntilde		Ograve		Oacute		*/
3595CASE_GROUND_STATE,
3596CASE_GROUND_STATE,
3597CASE_GROUND_STATE,
3598CASE_GROUND_STATE,
3599/*	Ocircumflex	Otilde		Odiaeresis	multiply	*/
3600CASE_GROUND_STATE,
3601CASE_GROUND_STATE,
3602CASE_GROUND_STATE,
3603CASE_GROUND_STATE,
3604/*	Ooblique	Ugrave		Uacute		Ucircumflex	*/
3605CASE_GROUND_STATE,
3606CASE_GROUND_STATE,
3607CASE_GROUND_STATE,
3608CASE_GROUND_STATE,
3609/*	Udiaeresis	Yacute		Thorn		ssharp		*/
3610CASE_GROUND_STATE,
3611CASE_GROUND_STATE,
3612CASE_GROUND_STATE,
3613CASE_GROUND_STATE,
3614/*	agrave		aacute		acircumflex	atilde		*/
3615CASE_GROUND_STATE,
3616CASE_GROUND_STATE,
3617CASE_GROUND_STATE,
3618CASE_GROUND_STATE,
3619/*	adiaeresis	aring		ae		ccedilla	*/
3620CASE_GROUND_STATE,
3621CASE_GROUND_STATE,
3622CASE_GROUND_STATE,
3623CASE_GROUND_STATE,
3624/*	egrave		eacute		ecircumflex	ediaeresis	*/
3625CASE_GROUND_STATE,
3626CASE_GROUND_STATE,
3627CASE_GROUND_STATE,
3628CASE_GROUND_STATE,
3629/*	igrave		iacute		icircumflex	idiaeresis	*/
3630CASE_GROUND_STATE,
3631CASE_GROUND_STATE,
3632CASE_GROUND_STATE,
3633CASE_GROUND_STATE,
3634/*	eth		ntilde		ograve		oacute		*/
3635CASE_DECRQM,
3636CASE_GROUND_STATE,
3637CASE_GROUND_STATE,
3638CASE_GROUND_STATE,
3639/*	ocircumflex	otilde		odiaeresis	division	*/
3640CASE_GROUND_STATE,
3641CASE_GROUND_STATE,
3642CASE_GROUND_STATE,
3643CASE_GROUND_STATE,
3644/*	oslash		ugrave		uacute		ucircumflex	*/
3645CASE_GROUND_STATE,
3646CASE_GROUND_STATE,
3647CASE_GROUND_STATE,
3648CASE_GROUND_STATE,
3649/*	udiaeresis	yacute		thorn		ydiaeresis	*/
3650CASE_GROUND_STATE,
3651CASE_GROUND_STATE,
3652CASE_GROUND_STATE,
3653CASE_GROUND_STATE,
3654};
3655#endif /* OPT_DEC_RECTOPS */
3656
3657Const PARSE_T dec2_table[] =		/* CSI > */
3658{
3659/*	NUL		SOH		STX		ETX	*/
3660CASE_IGNORE,
3661CASE_IGNORE,
3662CASE_IGNORE,
3663CASE_IGNORE,
3664/*	EOT		ENQ		ACK		BEL	*/
3665CASE_IGNORE,
3666CASE_ENQ,
3667CASE_IGNORE,
3668CASE_BELL,
3669/*	BS		HT		NL		VT	*/
3670CASE_BS,
3671CASE_TAB,
3672CASE_VMOT,
3673CASE_VMOT,
3674/*	FF		CR		SO		SI	*/
3675CASE_VMOT,
3676CASE_CR,
3677CASE_SO,
3678CASE_SI,
3679/*	DLE		DC1		DC2		DC3	*/
3680CASE_IGNORE,
3681CASE_IGNORE,
3682CASE_IGNORE,
3683CASE_IGNORE,
3684/*	DC4		NAK		SYN		ETB	*/
3685CASE_IGNORE,
3686CASE_IGNORE,
3687CASE_IGNORE,
3688CASE_IGNORE,
3689/*	CAN		EM		SUB		ESC	*/
3690CASE_GROUND_STATE,
3691CASE_IGNORE,
3692CASE_GROUND_STATE,
3693CASE_ESC,
3694/*	FS		GS		RS		US	*/
3695CASE_IGNORE,
3696CASE_IGNORE,
3697CASE_IGNORE,
3698CASE_IGNORE,
3699/*	SP		!		"		#	*/
3700CASE_CSI_IGNORE,
3701CASE_CSI_IGNORE,
3702CASE_CSI_IGNORE,
3703CASE_CSI_IGNORE,
3704/*	$		%		&		'	*/
3705CASE_CSI_IGNORE,
3706CASE_CSI_IGNORE,
3707CASE_CSI_IGNORE,
3708CASE_CSI_IGNORE,
3709/*	(		)		*		+	*/
3710CASE_CSI_IGNORE,
3711CASE_CSI_IGNORE,
3712CASE_CSI_IGNORE,
3713CASE_CSI_IGNORE,
3714/*	,		-		.		/	*/
3715CASE_CSI_IGNORE,
3716CASE_CSI_IGNORE,
3717CASE_CSI_IGNORE,
3718CASE_CSI_IGNORE,
3719/*	0		1		2		3	*/
3720CASE_ESC_DIGIT,
3721CASE_ESC_DIGIT,
3722CASE_ESC_DIGIT,
3723CASE_ESC_DIGIT,
3724/*	4		5		6		7	*/
3725CASE_ESC_DIGIT,
3726CASE_ESC_DIGIT,
3727CASE_ESC_DIGIT,
3728CASE_ESC_DIGIT,
3729/*	8		9		:		;	*/
3730CASE_ESC_DIGIT,
3731CASE_ESC_DIGIT,
3732CASE_ESC_COLON,
3733CASE_ESC_SEMI,
3734/*	<		=		>		?	*/
3735CASE_CSI_IGNORE,
3736CASE_CSI_IGNORE,
3737CASE_CSI_IGNORE,
3738CASE_CSI_IGNORE,
3739/*	@		A		B		C	*/
3740CASE_GROUND_STATE,
3741CASE_GROUND_STATE,
3742CASE_GROUND_STATE,
3743CASE_GROUND_STATE,
3744/*	D		E		F		G	*/
3745CASE_GROUND_STATE,
3746CASE_GROUND_STATE,
3747CASE_GROUND_STATE,
3748CASE_GROUND_STATE,
3749/*	H		I		J		K	*/
3750CASE_GROUND_STATE,
3751CASE_GROUND_STATE,
3752CASE_GROUND_STATE,
3753CASE_GROUND_STATE,
3754/*	L		M		N		O	*/
3755CASE_GROUND_STATE,
3756CASE_GROUND_STATE,
3757CASE_GROUND_STATE,
3758CASE_GROUND_STATE,
3759/*	P		Q		R		S	*/
3760CASE_GROUND_STATE,
3761CASE_GROUND_STATE,
3762CASE_GROUND_STATE,
3763CASE_GROUND_STATE,
3764/*	T		U		V		W	*/
3765CASE_RM_TITLE,
3766CASE_GROUND_STATE,
3767CASE_GROUND_STATE,
3768CASE_GROUND_STATE,
3769/*	X		Y		Z		[	*/
3770CASE_GROUND_STATE,
3771CASE_GROUND_STATE,
3772CASE_GROUND_STATE,
3773CASE_GROUND_STATE,
3774/*	\		]		^		_	*/
3775CASE_GROUND_STATE,
3776CASE_GROUND_STATE,
3777CASE_GROUND_STATE,
3778CASE_GROUND_STATE,
3779/*	`		a		b		c	*/
3780CASE_GROUND_STATE,
3781CASE_GROUND_STATE,
3782CASE_GROUND_STATE,
3783CASE_DA2,
3784/*	d		e		f		g	*/
3785CASE_GROUND_STATE,
3786CASE_GROUND_STATE,
3787CASE_GROUND_STATE,
3788CASE_GROUND_STATE,
3789/*	h		i		j		k	*/
3790CASE_GROUND_STATE,
3791CASE_GROUND_STATE,
3792CASE_GROUND_STATE,
3793CASE_GROUND_STATE,
3794/*	l		m		n		o	*/
3795CASE_GROUND_STATE,
3796CASE_SET_MOD_FKEYS,
3797CASE_SET_MOD_FKEYS0,
3798CASE_GROUND_STATE,
3799/*	p		q		r		s	*/
3800CASE_HIDE_POINTER,
3801CASE_GROUND_STATE,
3802CASE_GROUND_STATE,
3803CASE_GROUND_STATE,
3804/*	t		u		v		w	*/
3805CASE_SM_TITLE,
3806CASE_GROUND_STATE,
3807CASE_GROUND_STATE,
3808CASE_GROUND_STATE,
3809/*	x		y		z		{	*/
3810CASE_GROUND_STATE,
3811CASE_GROUND_STATE,
3812CASE_GROUND_STATE,
3813CASE_GROUND_STATE,
3814/*	|		}		~		DEL	*/
3815CASE_GROUND_STATE,
3816CASE_GROUND_STATE,
3817CASE_GROUND_STATE,
3818CASE_IGNORE,
3819/*      0x80            0x81            0x82            0x83    */
3820CASE_GROUND_STATE,
3821CASE_GROUND_STATE,
3822CASE_GROUND_STATE,
3823CASE_GROUND_STATE,
3824/*      0x84            0x85            0x86            0x87    */
3825CASE_IND,
3826CASE_NEL,
3827CASE_GROUND_STATE,
3828CASE_GROUND_STATE,
3829/*      0x88            0x89            0x8a            0x8b    */
3830CASE_HTS,
3831CASE_GROUND_STATE,
3832CASE_GROUND_STATE,
3833CASE_GROUND_STATE,
3834/*      0x8c            0x8d            0x8e            0x8f    */
3835CASE_GROUND_STATE,
3836CASE_RI,
3837CASE_SS2,
3838CASE_SS3,
3839/*      0x90            0x91            0x92            0x93    */
3840CASE_DCS,
3841CASE_GROUND_STATE,
3842CASE_GROUND_STATE,
3843CASE_GROUND_STATE,
3844/*      0x94            0x95            0x96            0x97    */
3845CASE_GROUND_STATE,
3846CASE_GROUND_STATE,
3847CASE_SPA,
3848CASE_EPA,
3849/*      0x98            0x99            0x9a            0x9b    */
3850CASE_SOS,
3851CASE_GROUND_STATE,
3852CASE_DECID,
3853CASE_CSI_STATE,
3854/*      0x9c            0x9d            0x9e            0x9f    */
3855CASE_ST,
3856CASE_OSC,
3857CASE_PM,
3858CASE_APC,
3859/*      nobreakspace    exclamdown      cent            sterling        */
3860CASE_CSI_IGNORE,
3861CASE_CSI_IGNORE,
3862CASE_CSI_IGNORE,
3863CASE_CSI_IGNORE,
3864/*      currency        yen             brokenbar       section         */
3865CASE_CSI_IGNORE,
3866CASE_CSI_IGNORE,
3867CASE_CSI_IGNORE,
3868CASE_CSI_IGNORE,
3869/*      diaeresis       copyright       ordfeminine     guillemotleft   */
3870CASE_CSI_IGNORE,
3871CASE_CSI_IGNORE,
3872CASE_CSI_IGNORE,
3873CASE_CSI_IGNORE,
3874/*      notsign         hyphen          registered      macron          */
3875CASE_CSI_IGNORE,
3876CASE_CSI_IGNORE,
3877CASE_CSI_IGNORE,
3878CASE_CSI_IGNORE,
3879/*      degree          plusminus       twosuperior     threesuperior   */
3880CASE_ESC_DIGIT,
3881CASE_ESC_DIGIT,
3882CASE_ESC_DIGIT,
3883CASE_ESC_DIGIT,
3884/*      acute           mu              paragraph       periodcentered  */
3885CASE_ESC_DIGIT,
3886CASE_ESC_DIGIT,
3887CASE_ESC_DIGIT,
3888CASE_ESC_DIGIT,
3889/*      cedilla         onesuperior     masculine       guillemotright  */
3890CASE_ESC_DIGIT,
3891CASE_ESC_DIGIT,
3892CASE_ESC_COLON,
3893CASE_ESC_SEMI,
3894/*      onequarter      onehalf         threequarters   questiondown    */
3895CASE_CSI_IGNORE,
3896CASE_CSI_IGNORE,
3897CASE_CSI_IGNORE,
3898CASE_CSI_IGNORE,
3899/*      Agrave          Aacute          Acircumflex     Atilde          */
3900CASE_GROUND_STATE,
3901CASE_GROUND_STATE,
3902CASE_GROUND_STATE,
3903CASE_GROUND_STATE,
3904/*      Adiaeresis      Aring           AE              Ccedilla        */
3905CASE_GROUND_STATE,
3906CASE_GROUND_STATE,
3907CASE_GROUND_STATE,
3908CASE_GROUND_STATE,
3909/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
3910CASE_GROUND_STATE,
3911CASE_GROUND_STATE,
3912CASE_GROUND_STATE,
3913CASE_GROUND_STATE,
3914/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
3915CASE_GROUND_STATE,
3916CASE_GROUND_STATE,
3917CASE_GROUND_STATE,
3918CASE_GROUND_STATE,
3919/*      Eth             Ntilde          Ograve          Oacute          */
3920CASE_GROUND_STATE,
3921CASE_GROUND_STATE,
3922CASE_GROUND_STATE,
3923CASE_GROUND_STATE,
3924/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
3925CASE_RM_TITLE,
3926CASE_GROUND_STATE,
3927CASE_GROUND_STATE,
3928CASE_GROUND_STATE,
3929/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
3930CASE_GROUND_STATE,
3931CASE_GROUND_STATE,
3932CASE_GROUND_STATE,
3933CASE_GROUND_STATE,
3934/*      Udiaeresis      Yacute          Thorn           ssharp          */
3935CASE_GROUND_STATE,
3936CASE_GROUND_STATE,
3937CASE_GROUND_STATE,
3938CASE_GROUND_STATE,
3939/*      agrave          aacute          acircumflex     atilde          */
3940CASE_GROUND_STATE,
3941CASE_GROUND_STATE,
3942CASE_GROUND_STATE,
3943CASE_DA2,
3944/*      adiaeresis      aring           ae              ccedilla        */
3945CASE_GROUND_STATE,
3946CASE_GROUND_STATE,
3947CASE_GROUND_STATE,
3948CASE_GROUND_STATE,
3949/*      egrave          eacute          ecircumflex     ediaeresis      */
3950CASE_GROUND_STATE,
3951CASE_GROUND_STATE,
3952CASE_GROUND_STATE,
3953CASE_GROUND_STATE,
3954/*      igrave          iacute          icircumflex     idiaeresis      */
3955CASE_GROUND_STATE,
3956CASE_SET_MOD_FKEYS,
3957CASE_SET_MOD_FKEYS0,
3958CASE_GROUND_STATE,
3959/*      eth             ntilde          ograve          oacute          */
3960CASE_HIDE_POINTER,
3961CASE_GROUND_STATE,
3962CASE_GROUND_STATE,
3963CASE_GROUND_STATE,
3964/*      ocircumflex     otilde          odiaeresis      division        */
3965CASE_SM_TITLE,
3966CASE_GROUND_STATE,
3967CASE_GROUND_STATE,
3968CASE_GROUND_STATE,
3969/*      oslash          ugrave          uacute          ucircumflex     */
3970CASE_GROUND_STATE,
3971CASE_GROUND_STATE,
3972CASE_GROUND_STATE,
3973CASE_GROUND_STATE,
3974/*      udiaeresis      yacute          thorn           ydiaeresis      */
3975CASE_GROUND_STATE,
3976CASE_GROUND_STATE,
3977CASE_GROUND_STATE,
3978CASE_IGNORE,
3979};
3980
3981Const PARSE_T dec3_table[] =		/* CSI = */
3982{
3983/*	NUL		SOH		STX		ETX	*/
3984CASE_IGNORE,
3985CASE_IGNORE,
3986CASE_IGNORE,
3987CASE_IGNORE,
3988/*	EOT		ENQ		ACK		BEL	*/
3989CASE_IGNORE,
3990CASE_ENQ,
3991CASE_IGNORE,
3992CASE_BELL,
3993/*	BS		HT		NL		VT	*/
3994CASE_BS,
3995CASE_TAB,
3996CASE_VMOT,
3997CASE_VMOT,
3998/*	FF		CR		SO		SI	*/
3999CASE_VMOT,
4000CASE_CR,
4001CASE_SO,
4002CASE_SI,
4003/*	DLE		DC1		DC2		DC3	*/
4004CASE_IGNORE,
4005CASE_IGNORE,
4006CASE_IGNORE,
4007CASE_IGNORE,
4008/*	DC4		NAK		SYN		ETB	*/
4009CASE_IGNORE,
4010CASE_IGNORE,
4011CASE_IGNORE,
4012CASE_IGNORE,
4013/*	CAN		EM		SUB		ESC	*/
4014CASE_GROUND_STATE,
4015CASE_IGNORE,
4016CASE_GROUND_STATE,
4017CASE_ESC,
4018/*	FS		GS		RS		US	*/
4019CASE_IGNORE,
4020CASE_IGNORE,
4021CASE_IGNORE,
4022CASE_IGNORE,
4023/*	SP		!		"		#	*/
4024CASE_CSI_IGNORE,
4025CASE_CSI_IGNORE,
4026CASE_CSI_IGNORE,
4027CASE_CSI_IGNORE,
4028/*	$		%		&		'	*/
4029CASE_CSI_IGNORE,
4030CASE_CSI_IGNORE,
4031CASE_CSI_IGNORE,
4032CASE_CSI_IGNORE,
4033/*	(		)		*		+	*/
4034CASE_CSI_IGNORE,
4035CASE_CSI_IGNORE,
4036CASE_CSI_IGNORE,
4037CASE_CSI_IGNORE,
4038/*	,		-		.		/	*/
4039CASE_CSI_IGNORE,
4040CASE_CSI_IGNORE,
4041CASE_CSI_IGNORE,
4042CASE_CSI_IGNORE,
4043/*	0		1		2		3	*/
4044CASE_ESC_DIGIT,
4045CASE_ESC_DIGIT,
4046CASE_ESC_DIGIT,
4047CASE_ESC_DIGIT,
4048/*	4		5		6		7	*/
4049CASE_ESC_DIGIT,
4050CASE_ESC_DIGIT,
4051CASE_ESC_DIGIT,
4052CASE_ESC_DIGIT,
4053/*	8		9		:		;	*/
4054CASE_ESC_DIGIT,
4055CASE_ESC_DIGIT,
4056CASE_ESC_COLON,
4057CASE_ESC_SEMI,
4058/*	<		=		>		?	*/
4059CASE_CSI_IGNORE,
4060CASE_CSI_IGNORE,
4061CASE_CSI_IGNORE,
4062CASE_CSI_IGNORE,
4063/*	@		A		B		C	*/
4064CASE_GROUND_STATE,
4065CASE_GROUND_STATE,
4066CASE_GROUND_STATE,
4067CASE_GROUND_STATE,
4068/*	D		E		F		G	*/
4069CASE_GROUND_STATE,
4070CASE_GROUND_STATE,
4071CASE_GROUND_STATE,
4072CASE_GROUND_STATE,
4073/*	H		I		J		K	*/
4074CASE_GROUND_STATE,
4075CASE_GROUND_STATE,
4076CASE_GROUND_STATE,
4077CASE_GROUND_STATE,
4078/*	L		M		N		O	*/
4079CASE_GROUND_STATE,
4080CASE_GROUND_STATE,
4081CASE_GROUND_STATE,
4082CASE_GROUND_STATE,
4083/*	P		Q		R		S	*/
4084CASE_GROUND_STATE,
4085CASE_GROUND_STATE,
4086CASE_GROUND_STATE,
4087CASE_GROUND_STATE,
4088/*	T		U		V		W	*/
4089CASE_GROUND_STATE,
4090CASE_GROUND_STATE,
4091CASE_GROUND_STATE,
4092CASE_GROUND_STATE,
4093/*	X		Y		Z		[	*/
4094CASE_GROUND_STATE,
4095CASE_GROUND_STATE,
4096CASE_GROUND_STATE,
4097CASE_GROUND_STATE,
4098/*	\		]		^		_	*/
4099CASE_GROUND_STATE,
4100CASE_GROUND_STATE,
4101CASE_GROUND_STATE,
4102CASE_GROUND_STATE,
4103/*	`		a		b		c	*/
4104CASE_GROUND_STATE,
4105CASE_GROUND_STATE,
4106CASE_GROUND_STATE,
4107CASE_DECRPTUI,
4108/*	d		e		f		g	*/
4109CASE_GROUND_STATE,
4110CASE_GROUND_STATE,
4111CASE_GROUND_STATE,
4112CASE_GROUND_STATE,
4113/*	h		i		j		k	*/
4114CASE_GROUND_STATE,
4115CASE_GROUND_STATE,
4116CASE_GROUND_STATE,
4117CASE_GROUND_STATE,
4118/*	l		m		n		o	*/
4119CASE_GROUND_STATE,
4120CASE_GROUND_STATE,
4121CASE_GROUND_STATE,
4122CASE_GROUND_STATE,
4123/*	p		q		r		s	*/
4124CASE_GROUND_STATE,
4125CASE_GROUND_STATE,
4126CASE_GROUND_STATE,
4127CASE_GROUND_STATE,
4128/*	t		u		v		w	*/
4129CASE_GROUND_STATE,
4130CASE_GROUND_STATE,
4131CASE_GROUND_STATE,
4132CASE_GROUND_STATE,
4133/*	x		y		z		{	*/
4134CASE_GROUND_STATE,
4135CASE_GROUND_STATE,
4136CASE_GROUND_STATE,
4137CASE_GROUND_STATE,
4138/*	|		}		~		DEL	*/
4139CASE_GROUND_STATE,
4140CASE_GROUND_STATE,
4141CASE_GROUND_STATE,
4142CASE_IGNORE,
4143/*      0x80            0x81            0x82            0x83    */
4144CASE_GROUND_STATE,
4145CASE_GROUND_STATE,
4146CASE_GROUND_STATE,
4147CASE_GROUND_STATE,
4148/*      0x84            0x85            0x86            0x87    */
4149CASE_IND,
4150CASE_NEL,
4151CASE_GROUND_STATE,
4152CASE_GROUND_STATE,
4153/*      0x88            0x89            0x8a            0x8b    */
4154CASE_HTS,
4155CASE_GROUND_STATE,
4156CASE_GROUND_STATE,
4157CASE_GROUND_STATE,
4158/*      0x8c            0x8d            0x8e            0x8f    */
4159CASE_GROUND_STATE,
4160CASE_RI,
4161CASE_SS2,
4162CASE_SS3,
4163/*      0x90            0x91            0x92            0x93    */
4164CASE_DCS,
4165CASE_GROUND_STATE,
4166CASE_GROUND_STATE,
4167CASE_GROUND_STATE,
4168/*      0x94            0x95            0x96            0x97    */
4169CASE_GROUND_STATE,
4170CASE_GROUND_STATE,
4171CASE_SPA,
4172CASE_EPA,
4173/*      0x98            0x99            0x9a            0x9b    */
4174CASE_SOS,
4175CASE_GROUND_STATE,
4176CASE_DECID,
4177CASE_CSI_STATE,
4178/*      0x9c            0x9d            0x9e            0x9f    */
4179CASE_ST,
4180CASE_OSC,
4181CASE_PM,
4182CASE_APC,
4183/*      nobreakspace    exclamdown      cent            sterling        */
4184CASE_CSI_IGNORE,
4185CASE_CSI_IGNORE,
4186CASE_CSI_IGNORE,
4187CASE_CSI_IGNORE,
4188/*      currency        yen             brokenbar       section         */
4189CASE_CSI_IGNORE,
4190CASE_CSI_IGNORE,
4191CASE_CSI_IGNORE,
4192CASE_CSI_IGNORE,
4193/*      diaeresis       copyright       ordfeminine     guillemotleft   */
4194CASE_CSI_IGNORE,
4195CASE_CSI_IGNORE,
4196CASE_CSI_IGNORE,
4197CASE_CSI_IGNORE,
4198/*      notsign         hyphen          registered      macron          */
4199CASE_CSI_IGNORE,
4200CASE_CSI_IGNORE,
4201CASE_CSI_IGNORE,
4202CASE_CSI_IGNORE,
4203/*      degree          plusminus       twosuperior     threesuperior   */
4204CASE_ESC_DIGIT,
4205CASE_ESC_DIGIT,
4206CASE_ESC_DIGIT,
4207CASE_ESC_DIGIT,
4208/*      acute           mu              paragraph       periodcentered  */
4209CASE_ESC_DIGIT,
4210CASE_ESC_DIGIT,
4211CASE_ESC_DIGIT,
4212CASE_ESC_DIGIT,
4213/*      cedilla         onesuperior     masculine       guillemotright  */
4214CASE_ESC_DIGIT,
4215CASE_ESC_DIGIT,
4216CASE_ESC_COLON,
4217CASE_ESC_SEMI,
4218/*      onequarter      onehalf         threequarters   questiondown    */
4219CASE_CSI_IGNORE,
4220CASE_CSI_IGNORE,
4221CASE_CSI_IGNORE,
4222CASE_CSI_IGNORE,
4223/*      Agrave          Aacute          Acircumflex     Atilde          */
4224CASE_GROUND_STATE,
4225CASE_GROUND_STATE,
4226CASE_GROUND_STATE,
4227CASE_GROUND_STATE,
4228/*      Adiaeresis      Aring           AE              Ccedilla        */
4229CASE_GROUND_STATE,
4230CASE_GROUND_STATE,
4231CASE_GROUND_STATE,
4232CASE_GROUND_STATE,
4233/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
4234CASE_GROUND_STATE,
4235CASE_GROUND_STATE,
4236CASE_GROUND_STATE,
4237CASE_GROUND_STATE,
4238/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
4239CASE_GROUND_STATE,
4240CASE_GROUND_STATE,
4241CASE_GROUND_STATE,
4242CASE_GROUND_STATE,
4243/*      Eth             Ntilde          Ograve          Oacute          */
4244CASE_GROUND_STATE,
4245CASE_GROUND_STATE,
4246CASE_GROUND_STATE,
4247CASE_GROUND_STATE,
4248/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
4249CASE_GROUND_STATE,
4250CASE_GROUND_STATE,
4251CASE_GROUND_STATE,
4252CASE_GROUND_STATE,
4253/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
4254CASE_GROUND_STATE,
4255CASE_GROUND_STATE,
4256CASE_GROUND_STATE,
4257CASE_GROUND_STATE,
4258/*      Udiaeresis      Yacute          Thorn           ssharp          */
4259CASE_GROUND_STATE,
4260CASE_GROUND_STATE,
4261CASE_GROUND_STATE,
4262CASE_GROUND_STATE,
4263/*      agrave          aacute          acircumflex     atilde          */
4264CASE_GROUND_STATE,
4265CASE_GROUND_STATE,
4266CASE_GROUND_STATE,
4267CASE_DECRPTUI,
4268/*      adiaeresis      aring           ae              ccedilla        */
4269CASE_GROUND_STATE,
4270CASE_GROUND_STATE,
4271CASE_GROUND_STATE,
4272CASE_GROUND_STATE,
4273/*      egrave          eacute          ecircumflex     ediaeresis      */
4274CASE_GROUND_STATE,
4275CASE_GROUND_STATE,
4276CASE_GROUND_STATE,
4277CASE_GROUND_STATE,
4278/*      igrave          iacute          icircumflex     idiaeresis      */
4279CASE_GROUND_STATE,
4280CASE_GROUND_STATE,
4281CASE_GROUND_STATE,
4282CASE_GROUND_STATE,
4283/*      eth             ntilde          ograve          oacute          */
4284CASE_GROUND_STATE,
4285CASE_GROUND_STATE,
4286CASE_GROUND_STATE,
4287CASE_GROUND_STATE,
4288/*      ocircumflex     otilde          odiaeresis      division        */
4289CASE_GROUND_STATE,
4290CASE_GROUND_STATE,
4291CASE_GROUND_STATE,
4292CASE_GROUND_STATE,
4293/*      oslash          ugrave          uacute          ucircumflex     */
4294CASE_GROUND_STATE,
4295CASE_GROUND_STATE,
4296CASE_GROUND_STATE,
4297CASE_GROUND_STATE,
4298/*      udiaeresis      yacute          thorn           ydiaeresis      */
4299CASE_GROUND_STATE,
4300CASE_GROUND_STATE,
4301CASE_GROUND_STATE,
4302CASE_IGNORE,
4303};
4304
4305Const PARSE_T cigtable[] =		/* CASE_CSI_IGNORE */
4306{
4307/*	NUL		SOH		STX		ETX	*/
4308CASE_IGNORE,
4309CASE_IGNORE,
4310CASE_IGNORE,
4311CASE_IGNORE,
4312/*	EOT		ENQ		ACK		BEL	*/
4313CASE_IGNORE,
4314CASE_ENQ,
4315CASE_IGNORE,
4316CASE_BELL,
4317/*	BS		HT		NL		VT	*/
4318CASE_BS,
4319CASE_TAB,
4320CASE_VMOT,
4321CASE_VMOT,
4322/*	FF		CR		SO		SI	*/
4323CASE_VMOT,
4324CASE_CR,
4325CASE_SO,
4326CASE_SI,
4327/*	DLE		DC1		DC2		DC3	*/
4328CASE_IGNORE,
4329CASE_IGNORE,
4330CASE_IGNORE,
4331CASE_IGNORE,
4332/*	DC4		NAK		SYN		ETB	*/
4333CASE_IGNORE,
4334CASE_IGNORE,
4335CASE_IGNORE,
4336CASE_IGNORE,
4337/*	CAN		EM		SUB		ESC	*/
4338CASE_GROUND_STATE,
4339CASE_IGNORE,
4340CASE_GROUND_STATE,
4341CASE_ESC,
4342/*	FS		GS		RS		US	*/
4343CASE_IGNORE,
4344CASE_IGNORE,
4345CASE_IGNORE,
4346CASE_IGNORE,
4347/*	SP		!		"		#	*/
4348CASE_IGNORE,
4349CASE_IGNORE,
4350CASE_IGNORE,
4351CASE_IGNORE,
4352/*	$		%		&		'	*/
4353CASE_IGNORE,
4354CASE_IGNORE,
4355CASE_IGNORE,
4356CASE_IGNORE,
4357/*	(		)		*		+	*/
4358CASE_IGNORE,
4359CASE_IGNORE,
4360CASE_IGNORE,
4361CASE_IGNORE,
4362/*	,		-		.		/	*/
4363CASE_IGNORE,
4364CASE_IGNORE,
4365CASE_IGNORE,
4366CASE_IGNORE,
4367/*	0		1		2		3	*/
4368CASE_IGNORE,
4369CASE_IGNORE,
4370CASE_IGNORE,
4371CASE_IGNORE,
4372/*	4		5		6		7	*/
4373CASE_IGNORE,
4374CASE_IGNORE,
4375CASE_IGNORE,
4376CASE_IGNORE,
4377/*	8		9		:		;	*/
4378CASE_IGNORE,
4379CASE_IGNORE,
4380CASE_IGNORE,
4381CASE_IGNORE,
4382/*	<		=		>		?	*/
4383CASE_IGNORE,
4384CASE_IGNORE,
4385CASE_IGNORE,
4386CASE_IGNORE,
4387/*	@		A		B		C	*/
4388CASE_GROUND_STATE,
4389CASE_GROUND_STATE,
4390CASE_GROUND_STATE,
4391CASE_GROUND_STATE,
4392/*	D		E		F		G	*/
4393CASE_GROUND_STATE,
4394CASE_GROUND_STATE,
4395CASE_GROUND_STATE,
4396CASE_GROUND_STATE,
4397/*	H		I		J		K	*/
4398CASE_GROUND_STATE,
4399CASE_GROUND_STATE,
4400CASE_GROUND_STATE,
4401CASE_GROUND_STATE,
4402/*	L		M		N		O	*/
4403CASE_GROUND_STATE,
4404CASE_GROUND_STATE,
4405CASE_GROUND_STATE,
4406CASE_GROUND_STATE,
4407/*	P		Q		R		S	*/
4408CASE_GROUND_STATE,
4409CASE_GROUND_STATE,
4410CASE_GROUND_STATE,
4411CASE_GROUND_STATE,
4412/*	T		U		V		W	*/
4413CASE_GROUND_STATE,
4414CASE_GROUND_STATE,
4415CASE_GROUND_STATE,
4416CASE_GROUND_STATE,
4417/*	X		Y		Z		[	*/
4418CASE_GROUND_STATE,
4419CASE_GROUND_STATE,
4420CASE_GROUND_STATE,
4421CASE_GROUND_STATE,
4422/*	\		]		^		_	*/
4423CASE_GROUND_STATE,
4424CASE_GROUND_STATE,
4425CASE_GROUND_STATE,
4426CASE_GROUND_STATE,
4427/*	`		a		b		c	*/
4428CASE_GROUND_STATE,
4429CASE_GROUND_STATE,
4430CASE_GROUND_STATE,
4431CASE_GROUND_STATE,
4432/*	d		e		f		g	*/
4433CASE_GROUND_STATE,
4434CASE_GROUND_STATE,
4435CASE_GROUND_STATE,
4436CASE_GROUND_STATE,
4437/*	h		i		j		k	*/
4438CASE_GROUND_STATE,
4439CASE_GROUND_STATE,
4440CASE_GROUND_STATE,
4441CASE_GROUND_STATE,
4442/*	l		m		n		o	*/
4443CASE_GROUND_STATE,
4444CASE_GROUND_STATE,
4445CASE_GROUND_STATE,
4446CASE_GROUND_STATE,
4447/*	p		q		r		s	*/
4448CASE_GROUND_STATE,
4449CASE_GROUND_STATE,
4450CASE_GROUND_STATE,
4451CASE_GROUND_STATE,
4452/*	t		u		v		w	*/
4453CASE_GROUND_STATE,
4454CASE_GROUND_STATE,
4455CASE_GROUND_STATE,
4456CASE_GROUND_STATE,
4457/*	x		y		z		{	*/
4458CASE_GROUND_STATE,
4459CASE_GROUND_STATE,
4460CASE_GROUND_STATE,
4461CASE_GROUND_STATE,
4462/*	|		}		~		DEL	*/
4463CASE_GROUND_STATE,
4464CASE_GROUND_STATE,
4465CASE_GROUND_STATE,
4466CASE_IGNORE,
4467/*      0x80            0x81            0x82            0x83    */
4468CASE_GROUND_STATE,
4469CASE_GROUND_STATE,
4470CASE_GROUND_STATE,
4471CASE_GROUND_STATE,
4472/*      0x84            0x85            0x86            0x87    */
4473CASE_IND,
4474CASE_NEL,
4475CASE_GROUND_STATE,
4476CASE_GROUND_STATE,
4477/*      0x88            0x89            0x8a            0x8b    */
4478CASE_HTS,
4479CASE_GROUND_STATE,
4480CASE_GROUND_STATE,
4481CASE_GROUND_STATE,
4482/*      0x8c            0x8d            0x8e            0x8f    */
4483CASE_GROUND_STATE,
4484CASE_RI,
4485CASE_SS2,
4486CASE_SS3,
4487/*      0x90            0x91            0x92            0x93    */
4488CASE_DCS,
4489CASE_GROUND_STATE,
4490CASE_GROUND_STATE,
4491CASE_GROUND_STATE,
4492/*      0x94            0x95            0x96            0x97    */
4493CASE_GROUND_STATE,
4494CASE_GROUND_STATE,
4495CASE_SPA,
4496CASE_EPA,
4497/*      0x98            0x99            0x9a            0x9b    */
4498CASE_SOS,
4499CASE_GROUND_STATE,
4500CASE_DECID,
4501CASE_CSI_STATE,
4502/*      0x9c            0x9d            0x9e            0x9f    */
4503CASE_ST,
4504CASE_OSC,
4505CASE_PM,
4506CASE_APC,
4507/*      nobreakspace    exclamdown      cent            sterling        */
4508CASE_IGNORE,
4509CASE_IGNORE,
4510CASE_IGNORE,
4511CASE_IGNORE,
4512/*      currency        yen             brokenbar       section         */
4513CASE_IGNORE,
4514CASE_IGNORE,
4515CASE_IGNORE,
4516CASE_IGNORE,
4517/*      diaeresis       copyright       ordfeminine     guillemotleft   */
4518CASE_IGNORE,
4519CASE_IGNORE,
4520CASE_IGNORE,
4521CASE_IGNORE,
4522/*      notsign         hyphen          registered      macron          */
4523CASE_IGNORE,
4524CASE_IGNORE,
4525CASE_IGNORE,
4526CASE_IGNORE,
4527/*      degree          plusminus       twosuperior     threesuperior   */
4528CASE_IGNORE,
4529CASE_IGNORE,
4530CASE_IGNORE,
4531CASE_IGNORE,
4532/*      acute           mu              paragraph       periodcentered  */
4533CASE_IGNORE,
4534CASE_IGNORE,
4535CASE_IGNORE,
4536CASE_IGNORE,
4537/*      cedilla         onesuperior     masculine       guillemotright  */
4538CASE_IGNORE,
4539CASE_IGNORE,
4540CASE_IGNORE,
4541CASE_IGNORE,
4542/*      onequarter      onehalf         threequarters   questiondown    */
4543CASE_IGNORE,
4544CASE_IGNORE,
4545CASE_IGNORE,
4546CASE_IGNORE,
4547/*      Agrave          Aacute          Acircumflex     Atilde          */
4548CASE_GROUND_STATE,
4549CASE_GROUND_STATE,
4550CASE_GROUND_STATE,
4551CASE_GROUND_STATE,
4552/*      Adiaeresis      Aring           AE              Ccedilla        */
4553CASE_GROUND_STATE,
4554CASE_GROUND_STATE,
4555CASE_GROUND_STATE,
4556CASE_GROUND_STATE,
4557/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
4558CASE_GROUND_STATE,
4559CASE_GROUND_STATE,
4560CASE_GROUND_STATE,
4561CASE_GROUND_STATE,
4562/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
4563CASE_GROUND_STATE,
4564CASE_GROUND_STATE,
4565CASE_GROUND_STATE,
4566CASE_GROUND_STATE,
4567/*      Eth             Ntilde          Ograve          Oacute          */
4568CASE_GROUND_STATE,
4569CASE_GROUND_STATE,
4570CASE_GROUND_STATE,
4571CASE_GROUND_STATE,
4572/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
4573CASE_GROUND_STATE,
4574CASE_GROUND_STATE,
4575CASE_GROUND_STATE,
4576CASE_GROUND_STATE,
4577/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
4578CASE_GROUND_STATE,
4579CASE_GROUND_STATE,
4580CASE_GROUND_STATE,
4581CASE_GROUND_STATE,
4582/*      Udiaeresis      Yacute          Thorn           ssharp          */
4583CASE_GROUND_STATE,
4584CASE_GROUND_STATE,
4585CASE_GROUND_STATE,
4586CASE_GROUND_STATE,
4587/*      agrave          aacute          acircumflex     atilde          */
4588CASE_GROUND_STATE,
4589CASE_GROUND_STATE,
4590CASE_GROUND_STATE,
4591CASE_GROUND_STATE,
4592/*      adiaeresis      aring           ae              ccedilla        */
4593CASE_GROUND_STATE,
4594CASE_GROUND_STATE,
4595CASE_GROUND_STATE,
4596CASE_GROUND_STATE,
4597/*      egrave          eacute          ecircumflex     ediaeresis      */
4598CASE_GROUND_STATE,
4599CASE_GROUND_STATE,
4600CASE_GROUND_STATE,
4601CASE_GROUND_STATE,
4602/*      igrave          iacute          icircumflex     idiaeresis      */
4603CASE_GROUND_STATE,
4604CASE_GROUND_STATE,
4605CASE_GROUND_STATE,
4606CASE_GROUND_STATE,
4607/*      eth             ntilde          ograve          oacute          */
4608CASE_GROUND_STATE,
4609CASE_GROUND_STATE,
4610CASE_GROUND_STATE,
4611CASE_GROUND_STATE,
4612/*      ocircumflex     otilde          odiaeresis      division        */
4613CASE_GROUND_STATE,
4614CASE_GROUND_STATE,
4615CASE_GROUND_STATE,
4616CASE_GROUND_STATE,
4617/*      oslash          ugrave          uacute          ucircumflex     */
4618CASE_GROUND_STATE,
4619CASE_GROUND_STATE,
4620CASE_GROUND_STATE,
4621CASE_GROUND_STATE,
4622/*      udiaeresis      yacute          thorn           ydiaeresis      */
4623CASE_GROUND_STATE,
4624CASE_GROUND_STATE,
4625CASE_GROUND_STATE,
4626CASE_IGNORE,
4627};
4628
4629Const PARSE_T eigtable[] =		/* CASE_ESC_IGNORE */
4630{
4631/*	NUL		SOH		STX		ETX	*/
4632CASE_IGNORE,
4633CASE_IGNORE,
4634CASE_IGNORE,
4635CASE_IGNORE,
4636/*	EOT		ENQ		ACK		BEL	*/
4637CASE_IGNORE,
4638CASE_ENQ,
4639CASE_IGNORE,
4640CASE_BELL,
4641/*	BS		HT		NL		VT	*/
4642CASE_BS,
4643CASE_TAB,
4644CASE_VMOT,
4645CASE_VMOT,
4646/*	FF		CR		SO		SI	*/
4647CASE_VMOT,
4648CASE_CR,
4649CASE_SO,
4650CASE_SI,
4651/*	DLE		DC1		DC2		DC3	*/
4652CASE_IGNORE,
4653CASE_IGNORE,
4654CASE_IGNORE,
4655CASE_IGNORE,
4656/*	DC4		NAK		SYN		ETB	*/
4657CASE_IGNORE,
4658CASE_IGNORE,
4659CASE_IGNORE,
4660CASE_IGNORE,
4661/*	CAN		EM		SUB		ESC	*/
4662CASE_GROUND_STATE,
4663CASE_IGNORE,
4664CASE_GROUND_STATE,
4665CASE_ESC,
4666/*	FS		GS		RS		US	*/
4667CASE_IGNORE,
4668CASE_IGNORE,
4669CASE_IGNORE,
4670CASE_IGNORE,
4671/*	SP		!		"		#	*/
4672CASE_IGNORE,
4673CASE_IGNORE,
4674CASE_IGNORE,
4675CASE_IGNORE,
4676/*	$		%		&		'	*/
4677CASE_IGNORE,
4678CASE_IGNORE,
4679CASE_IGNORE,
4680CASE_IGNORE,
4681/*	(		)		*		+	*/
4682CASE_IGNORE,
4683CASE_IGNORE,
4684CASE_IGNORE,
4685CASE_IGNORE,
4686/*	,		-		.		/	*/
4687CASE_IGNORE,
4688CASE_IGNORE,
4689CASE_IGNORE,
4690CASE_IGNORE,
4691/*	0		1		2		3	*/
4692CASE_GROUND_STATE,
4693CASE_GROUND_STATE,
4694CASE_GROUND_STATE,
4695CASE_GROUND_STATE,
4696/*	4		5		6		7	*/
4697CASE_GROUND_STATE,
4698CASE_GROUND_STATE,
4699CASE_GROUND_STATE,
4700CASE_GROUND_STATE,
4701/*	8		9		:		;	*/
4702CASE_GROUND_STATE,
4703CASE_GROUND_STATE,
4704CASE_GROUND_STATE,
4705CASE_GROUND_STATE,
4706/*	<		=		>		?	*/
4707CASE_GROUND_STATE,
4708CASE_GROUND_STATE,
4709CASE_GROUND_STATE,
4710CASE_GROUND_STATE,
4711/*	@		A		B		C	*/
4712CASE_GROUND_STATE,
4713CASE_GROUND_STATE,
4714CASE_GROUND_STATE,
4715CASE_GROUND_STATE,
4716/*	D		E		F		G	*/
4717CASE_GROUND_STATE,
4718CASE_GROUND_STATE,
4719CASE_GROUND_STATE,
4720CASE_GROUND_STATE,
4721/*	H		I		J		K	*/
4722CASE_GROUND_STATE,
4723CASE_GROUND_STATE,
4724CASE_GROUND_STATE,
4725CASE_GROUND_STATE,
4726/*	L		M		N		O	*/
4727CASE_GROUND_STATE,
4728CASE_GROUND_STATE,
4729CASE_GROUND_STATE,
4730CASE_GROUND_STATE,
4731/*	P		Q		R		S	*/
4732CASE_GROUND_STATE,
4733CASE_GROUND_STATE,
4734CASE_GROUND_STATE,
4735CASE_GROUND_STATE,
4736/*	T		U		V		W	*/
4737CASE_GROUND_STATE,
4738CASE_GROUND_STATE,
4739CASE_GROUND_STATE,
4740CASE_GROUND_STATE,
4741/*	X		Y		Z		[	*/
4742CASE_GROUND_STATE,
4743CASE_GROUND_STATE,
4744CASE_GROUND_STATE,
4745CASE_GROUND_STATE,
4746/*	\		]		^		_	*/
4747CASE_GROUND_STATE,
4748CASE_GROUND_STATE,
4749CASE_GROUND_STATE,
4750CASE_GROUND_STATE,
4751/*	`		a		b		c	*/
4752CASE_GROUND_STATE,
4753CASE_GROUND_STATE,
4754CASE_GROUND_STATE,
4755CASE_GROUND_STATE,
4756/*	d		e		f		g	*/
4757CASE_GROUND_STATE,
4758CASE_GROUND_STATE,
4759CASE_GROUND_STATE,
4760CASE_GROUND_STATE,
4761/*	h		i		j		k	*/
4762CASE_GROUND_STATE,
4763CASE_GROUND_STATE,
4764CASE_GROUND_STATE,
4765CASE_GROUND_STATE,
4766/*	l		m		n		o	*/
4767CASE_GROUND_STATE,
4768CASE_GROUND_STATE,
4769CASE_GROUND_STATE,
4770CASE_GROUND_STATE,
4771/*	p		q		r		s	*/
4772CASE_GROUND_STATE,
4773CASE_GROUND_STATE,
4774CASE_GROUND_STATE,
4775CASE_GROUND_STATE,
4776/*	t		u		v		w	*/
4777CASE_GROUND_STATE,
4778CASE_GROUND_STATE,
4779CASE_GROUND_STATE,
4780CASE_GROUND_STATE,
4781/*	x		y		z		{	*/
4782CASE_GROUND_STATE,
4783CASE_GROUND_STATE,
4784CASE_GROUND_STATE,
4785CASE_GROUND_STATE,
4786/*	|		}		~		DEL	*/
4787CASE_GROUND_STATE,
4788CASE_GROUND_STATE,
4789CASE_GROUND_STATE,
4790CASE_IGNORE,
4791/*      0x80            0x81            0x82            0x83    */
4792CASE_GROUND_STATE,
4793CASE_GROUND_STATE,
4794CASE_GROUND_STATE,
4795CASE_GROUND_STATE,
4796/*      0x84            0x85            0x86            0x87    */
4797CASE_IND,
4798CASE_NEL,
4799CASE_GROUND_STATE,
4800CASE_GROUND_STATE,
4801/*      0x88            0x89            0x8a            0x8b    */
4802CASE_HTS,
4803CASE_GROUND_STATE,
4804CASE_GROUND_STATE,
4805CASE_GROUND_STATE,
4806/*      0x8c            0x8d            0x8e            0x8f    */
4807CASE_GROUND_STATE,
4808CASE_RI,
4809CASE_SS2,
4810CASE_SS3,
4811/*      0x90            0x91            0x92            0x93    */
4812CASE_DCS,
4813CASE_GROUND_STATE,
4814CASE_GROUND_STATE,
4815CASE_GROUND_STATE,
4816/*      0x94            0x95            0x96            0x97    */
4817CASE_GROUND_STATE,
4818CASE_GROUND_STATE,
4819CASE_SPA,
4820CASE_EPA,
4821/*      0x98            0x99            0x9a            0x9b    */
4822CASE_SOS,
4823CASE_GROUND_STATE,
4824CASE_DECID,
4825CASE_CSI_STATE,
4826/*      0x9c            0x9d            0x9e            0x9f    */
4827CASE_ST,
4828CASE_OSC,
4829CASE_PM,
4830CASE_APC,
4831/*      nobreakspace    exclamdown      cent            sterling        */
4832CASE_IGNORE,
4833CASE_IGNORE,
4834CASE_IGNORE,
4835CASE_IGNORE,
4836/*      currency        yen             brokenbar       section         */
4837CASE_IGNORE,
4838CASE_IGNORE,
4839CASE_IGNORE,
4840CASE_IGNORE,
4841/*      diaeresis       copyright       ordfeminine     guillemotleft   */
4842CASE_IGNORE,
4843CASE_IGNORE,
4844CASE_IGNORE,
4845CASE_IGNORE,
4846/*      notsign         hyphen          registered      macron          */
4847CASE_IGNORE,
4848CASE_IGNORE,
4849CASE_IGNORE,
4850CASE_IGNORE,
4851/*      degree          plusminus       twosuperior     threesuperior   */
4852CASE_GROUND_STATE,
4853CASE_GROUND_STATE,
4854CASE_GROUND_STATE,
4855CASE_GROUND_STATE,
4856/*      acute           mu              paragraph       periodcentered  */
4857CASE_GROUND_STATE,
4858CASE_GROUND_STATE,
4859CASE_GROUND_STATE,
4860CASE_GROUND_STATE,
4861/*      cedilla         onesuperior     masculine       guillemotright  */
4862CASE_GROUND_STATE,
4863CASE_GROUND_STATE,
4864CASE_GROUND_STATE,
4865CASE_GROUND_STATE,
4866/*      onequarter      onehalf         threequarters   questiondown    */
4867CASE_GROUND_STATE,
4868CASE_GROUND_STATE,
4869CASE_GROUND_STATE,
4870CASE_GROUND_STATE,
4871/*      Agrave          Aacute          Acircumflex     Atilde          */
4872CASE_GROUND_STATE,
4873CASE_GROUND_STATE,
4874CASE_GROUND_STATE,
4875CASE_GROUND_STATE,
4876/*      Adiaeresis      Aring           AE              Ccedilla        */
4877CASE_GROUND_STATE,
4878CASE_GROUND_STATE,
4879CASE_GROUND_STATE,
4880CASE_GROUND_STATE,
4881/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
4882CASE_GROUND_STATE,
4883CASE_GROUND_STATE,
4884CASE_GROUND_STATE,
4885CASE_GROUND_STATE,
4886/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
4887CASE_GROUND_STATE,
4888CASE_GROUND_STATE,
4889CASE_GROUND_STATE,
4890CASE_GROUND_STATE,
4891/*      Eth             Ntilde          Ograve          Oacute          */
4892CASE_GROUND_STATE,
4893CASE_GROUND_STATE,
4894CASE_GROUND_STATE,
4895CASE_GROUND_STATE,
4896/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
4897CASE_GROUND_STATE,
4898CASE_GROUND_STATE,
4899CASE_GROUND_STATE,
4900CASE_GROUND_STATE,
4901/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
4902CASE_GROUND_STATE,
4903CASE_GROUND_STATE,
4904CASE_GROUND_STATE,
4905CASE_GROUND_STATE,
4906/*      Udiaeresis      Yacute          Thorn           ssharp          */
4907CASE_GROUND_STATE,
4908CASE_GROUND_STATE,
4909CASE_GROUND_STATE,
4910CASE_GROUND_STATE,
4911/*      agrave          aacute          acircumflex     atilde          */
4912CASE_GROUND_STATE,
4913CASE_GROUND_STATE,
4914CASE_GROUND_STATE,
4915CASE_GROUND_STATE,
4916/*      adiaeresis      aring           ae              ccedilla        */
4917CASE_GROUND_STATE,
4918CASE_GROUND_STATE,
4919CASE_GROUND_STATE,
4920CASE_GROUND_STATE,
4921/*      egrave          eacute          ecircumflex     ediaeresis      */
4922CASE_GROUND_STATE,
4923CASE_GROUND_STATE,
4924CASE_GROUND_STATE,
4925CASE_GROUND_STATE,
4926/*      igrave          iacute          icircumflex     idiaeresis      */
4927CASE_GROUND_STATE,
4928CASE_GROUND_STATE,
4929CASE_GROUND_STATE,
4930CASE_GROUND_STATE,
4931/*      eth             ntilde          ograve          oacute          */
4932CASE_GROUND_STATE,
4933CASE_GROUND_STATE,
4934CASE_GROUND_STATE,
4935CASE_GROUND_STATE,
4936/*      ocircumflex     otilde          odiaeresis      division        */
4937CASE_GROUND_STATE,
4938CASE_GROUND_STATE,
4939CASE_GROUND_STATE,
4940CASE_GROUND_STATE,
4941/*      oslash          ugrave          uacute          ucircumflex     */
4942CASE_GROUND_STATE,
4943CASE_GROUND_STATE,
4944CASE_GROUND_STATE,
4945CASE_GROUND_STATE,
4946/*      udiaeresis      yacute          thorn           ydiaeresis      */
4947CASE_GROUND_STATE,
4948CASE_GROUND_STATE,
4949CASE_GROUND_STATE,
4950CASE_IGNORE,
4951};
4952
4953Const PARSE_T esc_table[] =		/* ESC */
4954{
4955/*	NUL		SOH		STX		ETX	*/
4956CASE_IGNORE,
4957CASE_IGNORE,
4958CASE_IGNORE,
4959CASE_IGNORE,
4960/*	EOT		ENQ		ACK		BEL	*/
4961CASE_IGNORE,
4962CASE_ENQ,
4963CASE_IGNORE,
4964CASE_BELL,
4965/*	BS		HT		NL		VT	*/
4966CASE_BS,
4967CASE_TAB,
4968CASE_VMOT,
4969CASE_VMOT,
4970/*	FF		CR		SO		SI	*/
4971CASE_VMOT,
4972CASE_CR,
4973CASE_SO,
4974CASE_SI,
4975/*	DLE		DC1		DC2		DC3	*/
4976CASE_IGNORE,
4977CASE_IGNORE,
4978CASE_IGNORE,
4979CASE_IGNORE,
4980/*	DC4		NAK		SYN		ETB	*/
4981CASE_IGNORE,
4982CASE_IGNORE,
4983CASE_IGNORE,
4984CASE_IGNORE,
4985/*	CAN		EM		SUB		ESC	*/
4986CASE_GROUND_STATE,
4987CASE_IGNORE,
4988CASE_GROUND_STATE,
4989CASE_ESC,
4990/*	FS		GS		RS		US	*/
4991CASE_IGNORE,
4992CASE_IGNORE,
4993CASE_IGNORE,
4994CASE_IGNORE,
4995/*	SP		!		"		#	*/
4996CASE_ESC_SP_STATE,
4997CASE_ESC_IGNORE,
4998CASE_ESC_IGNORE,
4999CASE_SCR_STATE,
5000/*	$		%		&		'	*/
5001CASE_ESC_IGNORE,
5002CASE_ESC_PERCENT,
5003CASE_ESC_IGNORE,
5004CASE_ESC_IGNORE,
5005/*	(		)		*		+	*/
5006CASE_SCS0_STATE,
5007CASE_SCS1_STATE,
5008CASE_SCS2_STATE,
5009CASE_SCS3_STATE,
5010/*	,		-		.		/	*/
5011CASE_ESC_IGNORE,
5012CASE_SCS1A_STATE,
5013CASE_SCS2A_STATE,
5014CASE_SCS3A_STATE,
5015/*	0		1		2		3	*/
5016CASE_GROUND_STATE,
5017CASE_GROUND_STATE,
5018CASE_GROUND_STATE,
5019CASE_GROUND_STATE,
5020/*	4		5		6		7	*/
5021CASE_GROUND_STATE,
5022CASE_GROUND_STATE,
5023CASE_DECBI,
5024CASE_DECSC,
5025/*	8		9		:		;	*/
5026CASE_DECRC,
5027CASE_DECFI,
5028CASE_GROUND_STATE,
5029CASE_GROUND_STATE,
5030/*	<		=		>		?	*/
5031CASE_GROUND_STATE,
5032CASE_DECKPAM,
5033CASE_DECKPNM,
5034CASE_GROUND_STATE,
5035/*	@		A		B		C	*/
5036CASE_GROUND_STATE,
5037CASE_GROUND_STATE,
5038CASE_GROUND_STATE,
5039CASE_GROUND_STATE,
5040/*	D		E		F		G	*/
5041CASE_IND,
5042CASE_NEL,
5043CASE_HP_BUGGY_LL,
5044CASE_GROUND_STATE,
5045/*	H		I		J		K	*/
5046CASE_HTS,
5047CASE_GROUND_STATE,
5048CASE_GROUND_STATE,
5049CASE_GROUND_STATE,
5050/*	L		M		N		O	*/
5051CASE_GROUND_STATE,
5052CASE_RI,
5053CASE_SS2,
5054CASE_SS3,
5055/*	P		Q		R		S	*/
5056CASE_DCS,
5057CASE_GROUND_STATE,
5058CASE_GROUND_STATE,
5059CASE_GROUND_STATE,
5060/*	T		U		V		W	*/
5061CASE_XTERM_TITLE,
5062CASE_GROUND_STATE,
5063CASE_SPA,
5064CASE_EPA,
5065/*	X		Y		Z		[	*/
5066CASE_SOS,
5067CASE_GROUND_STATE,
5068CASE_DECID,
5069CASE_CSI_STATE,
5070/*	\		]		^		_	*/
5071CASE_ST,
5072CASE_OSC,
5073CASE_PM,
5074CASE_APC,
5075/*	`		a		b		c	*/
5076CASE_GROUND_STATE,
5077CASE_GROUND_STATE,
5078CASE_GROUND_STATE,
5079CASE_RIS,
5080/*	d		e		f		g	*/
5081CASE_GROUND_STATE,
5082CASE_GROUND_STATE,
5083CASE_GROUND_STATE,
5084CASE_GROUND_STATE,
5085/*	h		i		j		k	*/
5086CASE_GROUND_STATE,
5087CASE_GROUND_STATE,
5088CASE_GROUND_STATE,
5089CASE_GROUND_STATE,
5090/*	l		m		n		o	*/
5091CASE_HP_MEM_LOCK,
5092CASE_HP_MEM_UNLOCK,
5093CASE_LS2,
5094CASE_LS3,
5095/*	p		q		r		s	*/
5096CASE_GROUND_STATE,
5097CASE_GROUND_STATE,
5098CASE_GROUND_STATE,
5099CASE_GROUND_STATE,
5100/*	t		u		v		w	*/
5101CASE_GROUND_STATE,
5102CASE_GROUND_STATE,
5103CASE_GROUND_STATE,
5104CASE_GROUND_STATE,
5105/*	x		y		z		{	*/
5106CASE_GROUND_STATE,
5107CASE_GROUND_STATE,
5108CASE_GROUND_STATE,
5109CASE_GROUND_STATE,
5110/*	|		}		~		DEL	*/
5111CASE_LS3R,
5112CASE_LS2R,
5113CASE_LS1R,
5114CASE_IGNORE,
5115/*      0x80            0x81            0x82            0x83    */
5116CASE_GROUND_STATE,
5117CASE_GROUND_STATE,
5118CASE_GROUND_STATE,
5119CASE_GROUND_STATE,
5120/*      0x84            0x85            0x86            0x87    */
5121CASE_IND,
5122CASE_NEL,
5123CASE_GROUND_STATE,
5124CASE_GROUND_STATE,
5125/*      0x88            0x89            0x8a            0x8b    */
5126CASE_HTS,
5127CASE_GROUND_STATE,
5128CASE_GROUND_STATE,
5129CASE_GROUND_STATE,
5130/*      0x8c            0x8d            0x8e            0x8f    */
5131CASE_GROUND_STATE,
5132CASE_RI,
5133CASE_SS2,
5134CASE_SS3,
5135/*      0x90            0x91            0x92            0x93    */
5136CASE_DCS,
5137CASE_GROUND_STATE,
5138CASE_GROUND_STATE,
5139CASE_GROUND_STATE,
5140/*      0x94            0x95            0x96            0x97    */
5141CASE_GROUND_STATE,
5142CASE_GROUND_STATE,
5143CASE_SPA,
5144CASE_EPA,
5145/*      0x98            0x99            0x9a            0x9b    */
5146CASE_SOS,
5147CASE_GROUND_STATE,
5148CASE_DECID,
5149CASE_CSI_STATE,
5150/*      0x9c            0x9d            0x9e            0x9f    */
5151CASE_ST,
5152CASE_OSC,
5153CASE_PM,
5154CASE_APC,
5155/*      nobreakspace    exclamdown      cent            sterling        */
5156CASE_ESC_SP_STATE,
5157CASE_ESC_IGNORE,
5158CASE_ESC_IGNORE,
5159CASE_SCR_STATE,
5160/*      currency        yen             brokenbar       section         */
5161CASE_ESC_IGNORE,
5162CASE_ESC_PERCENT,
5163CASE_ESC_IGNORE,
5164CASE_ESC_IGNORE,
5165/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5166CASE_SCS0_STATE,
5167CASE_SCS1_STATE,
5168CASE_SCS2_STATE,
5169CASE_SCS3_STATE,
5170/*      notsign         hyphen          registered      macron          */
5171CASE_ESC_IGNORE,
5172CASE_SCS1A_STATE,
5173CASE_SCS2A_STATE,
5174CASE_SCS3A_STATE,
5175/*      degree          plusminus       twosuperior     threesuperior   */
5176CASE_GROUND_STATE,
5177CASE_GROUND_STATE,
5178CASE_GROUND_STATE,
5179CASE_GROUND_STATE,
5180/*      acute           mu              paragraph       periodcentered  */
5181CASE_GROUND_STATE,
5182CASE_GROUND_STATE,
5183CASE_DECBI,
5184CASE_DECSC,
5185/*      cedilla         onesuperior     masculine       guillemotright  */
5186CASE_DECRC,
5187CASE_DECFI,
5188CASE_GROUND_STATE,
5189CASE_GROUND_STATE,
5190/*      onequarter      onehalf         threequarters   questiondown    */
5191CASE_GROUND_STATE,
5192CASE_DECKPAM,
5193CASE_DECKPNM,
5194CASE_GROUND_STATE,
5195/*      Agrave          Aacute          Acircumflex     Atilde          */
5196CASE_GROUND_STATE,
5197CASE_GROUND_STATE,
5198CASE_GROUND_STATE,
5199CASE_GROUND_STATE,
5200/*      Adiaeresis      Aring           AE              Ccedilla        */
5201CASE_IND,
5202CASE_NEL,
5203CASE_HP_BUGGY_LL,
5204CASE_GROUND_STATE,
5205/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5206CASE_HTS,
5207CASE_GROUND_STATE,
5208CASE_GROUND_STATE,
5209CASE_GROUND_STATE,
5210/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5211CASE_GROUND_STATE,
5212CASE_RI,
5213CASE_SS2,
5214CASE_SS3,
5215/*      Eth             Ntilde          Ograve          Oacute          */
5216CASE_DCS,
5217CASE_GROUND_STATE,
5218CASE_GROUND_STATE,
5219CASE_GROUND_STATE,
5220/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5221CASE_XTERM_TITLE,
5222CASE_GROUND_STATE,
5223CASE_SPA,
5224CASE_EPA,
5225/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5226CASE_SOS,
5227CASE_GROUND_STATE,
5228CASE_DECID,
5229CASE_CSI_STATE,
5230/*      Udiaeresis      Yacute          Thorn           ssharp          */
5231CASE_ST,
5232CASE_OSC,
5233CASE_PM,
5234CASE_APC,
5235/*      agrave          aacute          acircumflex     atilde          */
5236CASE_GROUND_STATE,
5237CASE_GROUND_STATE,
5238CASE_GROUND_STATE,
5239CASE_RIS,
5240/*      adiaeresis      aring           ae              ccedilla        */
5241CASE_GROUND_STATE,
5242CASE_GROUND_STATE,
5243CASE_GROUND_STATE,
5244CASE_GROUND_STATE,
5245/*      egrave          eacute          ecircumflex     ediaeresis      */
5246CASE_GROUND_STATE,
5247CASE_GROUND_STATE,
5248CASE_GROUND_STATE,
5249CASE_GROUND_STATE,
5250/*      igrave          iacute          icircumflex     idiaeresis      */
5251CASE_HP_MEM_LOCK,
5252CASE_HP_MEM_UNLOCK,
5253CASE_LS2,
5254CASE_LS3,
5255/*      eth             ntilde          ograve          oacute          */
5256CASE_GROUND_STATE,
5257CASE_GROUND_STATE,
5258CASE_GROUND_STATE,
5259CASE_GROUND_STATE,
5260/*      ocircumflex     otilde          odiaeresis      division        */
5261CASE_GROUND_STATE,
5262CASE_GROUND_STATE,
5263CASE_GROUND_STATE,
5264CASE_GROUND_STATE,
5265/*      oslash          ugrave          uacute          ucircumflex     */
5266CASE_GROUND_STATE,
5267CASE_GROUND_STATE,
5268CASE_GROUND_STATE,
5269CASE_GROUND_STATE,
5270/*      udiaeresis      yacute          thorn           ydiaeresis      */
5271CASE_LS3R,
5272CASE_LS2R,
5273CASE_LS1R,
5274CASE_IGNORE,
5275};
5276
5277Const PARSE_T esc_sp_table[] =		/* ESC SP */
5278{
5279/*	NUL		SOH		STX		ETX	*/
5280CASE_IGNORE,
5281CASE_IGNORE,
5282CASE_IGNORE,
5283CASE_IGNORE,
5284/*	EOT		ENQ		ACK		BEL	*/
5285CASE_IGNORE,
5286CASE_ENQ,
5287CASE_IGNORE,
5288CASE_BELL,
5289/*	BS		HT		NL		VT	*/
5290CASE_BS,
5291CASE_TAB,
5292CASE_VMOT,
5293CASE_VMOT,
5294/*	FF		CR		SO		SI	*/
5295CASE_VMOT,
5296CASE_CR,
5297CASE_SO,
5298CASE_SI,
5299/*	DLE		DC1		DC2		DC3	*/
5300CASE_IGNORE,
5301CASE_IGNORE,
5302CASE_IGNORE,
5303CASE_IGNORE,
5304/*	DC4		NAK		SYN		ETB	*/
5305CASE_IGNORE,
5306CASE_IGNORE,
5307CASE_IGNORE,
5308CASE_IGNORE,
5309/*	CAN		EM		SUB		ESC	*/
5310CASE_GROUND_STATE,
5311CASE_IGNORE,
5312CASE_GROUND_STATE,
5313CASE_ESC,
5314/*	FS		GS		RS		US	*/
5315CASE_IGNORE,
5316CASE_IGNORE,
5317CASE_IGNORE,
5318CASE_IGNORE,
5319/*	SP		!		"		#	*/
5320CASE_ESC_IGNORE,
5321CASE_ESC_IGNORE,
5322CASE_ESC_IGNORE,
5323CASE_ESC_IGNORE,
5324/*	$		%		&		'	*/
5325CASE_ESC_IGNORE,
5326CASE_ESC_IGNORE,
5327CASE_ESC_IGNORE,
5328CASE_ESC_IGNORE,
5329/*	(		)		*		+	*/
5330CASE_ESC_IGNORE,
5331CASE_ESC_IGNORE,
5332CASE_ESC_IGNORE,
5333CASE_ESC_IGNORE,
5334/*	,		-		.		/	*/
5335CASE_ESC_IGNORE,
5336CASE_ESC_IGNORE,
5337CASE_ESC_IGNORE,
5338CASE_ESC_IGNORE,
5339/*	0		1		2		3	*/
5340CASE_GROUND_STATE,
5341CASE_GROUND_STATE,
5342CASE_GROUND_STATE,
5343CASE_GROUND_STATE,
5344/*	4		5		6		7	*/
5345CASE_GROUND_STATE,
5346CASE_GROUND_STATE,
5347CASE_GROUND_STATE,
5348CASE_GROUND_STATE,
5349/*	8		9		:		;	*/
5350CASE_GROUND_STATE,
5351CASE_GROUND_STATE,
5352CASE_GROUND_STATE,
5353CASE_GROUND_STATE,
5354/*	<		=		>		?	*/
5355CASE_GROUND_STATE,
5356CASE_GROUND_STATE,
5357CASE_GROUND_STATE,
5358CASE_GROUND_STATE,
5359/*	@		A		B		C	*/
5360CASE_GROUND_STATE,
5361CASE_GROUND_STATE,
5362CASE_GROUND_STATE,
5363CASE_GROUND_STATE,
5364/*	D		E		F		G	*/
5365CASE_GROUND_STATE,
5366CASE_GROUND_STATE,
5367CASE_S7C1T,
5368CASE_S8C1T,
5369/*	H		I		J		K	*/
5370CASE_GROUND_STATE,
5371CASE_GROUND_STATE,
5372CASE_GROUND_STATE,
5373CASE_GROUND_STATE,
5374/*	L		M		N		O	*/
5375CASE_ANSI_LEVEL_1,
5376CASE_ANSI_LEVEL_2,
5377CASE_ANSI_LEVEL_3,
5378CASE_GROUND_STATE,
5379/*	P		Q		R		S	*/
5380CASE_GROUND_STATE,
5381CASE_GROUND_STATE,
5382CASE_GROUND_STATE,
5383CASE_GROUND_STATE,
5384/*	T		U		V		W	*/
5385CASE_GROUND_STATE,
5386CASE_GROUND_STATE,
5387CASE_GROUND_STATE,
5388CASE_GROUND_STATE,
5389/*	X		Y		Z		[	*/
5390CASE_GROUND_STATE,
5391CASE_GROUND_STATE,
5392CASE_GROUND_STATE,
5393CASE_GROUND_STATE,
5394/*	\		]		^		_	*/
5395CASE_GROUND_STATE,
5396CASE_GROUND_STATE,
5397CASE_GROUND_STATE,
5398CASE_GROUND_STATE,
5399/*	`		a		b		c	*/
5400CASE_GROUND_STATE,
5401CASE_GROUND_STATE,
5402CASE_GROUND_STATE,
5403CASE_GROUND_STATE,
5404/*	d		e		f		g	*/
5405CASE_GROUND_STATE,
5406CASE_GROUND_STATE,
5407CASE_GROUND_STATE,
5408CASE_GROUND_STATE,
5409/*	h		i		j		k	*/
5410CASE_GROUND_STATE,
5411CASE_GROUND_STATE,
5412CASE_GROUND_STATE,
5413CASE_GROUND_STATE,
5414/*	l		m		n		o	*/
5415CASE_GROUND_STATE,
5416CASE_GROUND_STATE,
5417CASE_GROUND_STATE,
5418CASE_GROUND_STATE,
5419/*	p		q		r		s	*/
5420CASE_GROUND_STATE,
5421CASE_GROUND_STATE,
5422CASE_GROUND_STATE,
5423CASE_GROUND_STATE,
5424/*	t		u		v		w	*/
5425CASE_GROUND_STATE,
5426CASE_GROUND_STATE,
5427CASE_GROUND_STATE,
5428CASE_GROUND_STATE,
5429/*	x		y		z		{	*/
5430CASE_GROUND_STATE,
5431CASE_GROUND_STATE,
5432CASE_GROUND_STATE,
5433CASE_GROUND_STATE,
5434/*	|		}		~		DEL	*/
5435CASE_GROUND_STATE,
5436CASE_GROUND_STATE,
5437CASE_GROUND_STATE,
5438CASE_IGNORE,
5439/*      0x80            0x81            0x82            0x83    */
5440CASE_GROUND_STATE,
5441CASE_GROUND_STATE,
5442CASE_GROUND_STATE,
5443CASE_GROUND_STATE,
5444/*      0x84            0x85            0x86            0x87    */
5445CASE_IND,
5446CASE_NEL,
5447CASE_GROUND_STATE,
5448CASE_GROUND_STATE,
5449/*      0x88            0x89            0x8a            0x8b    */
5450CASE_HTS,
5451CASE_GROUND_STATE,
5452CASE_GROUND_STATE,
5453CASE_GROUND_STATE,
5454/*      0x8c            0x8d            0x8e            0x8f    */
5455CASE_GROUND_STATE,
5456CASE_RI,
5457CASE_SS2,
5458CASE_SS3,
5459/*      0x90            0x91            0x92            0x93    */
5460CASE_DCS,
5461CASE_GROUND_STATE,
5462CASE_GROUND_STATE,
5463CASE_GROUND_STATE,
5464/*      0x94            0x95            0x96            0x97    */
5465CASE_GROUND_STATE,
5466CASE_GROUND_STATE,
5467CASE_SPA,
5468CASE_EPA,
5469/*      0x98            0x99            0x9a            0x9b    */
5470CASE_SOS,
5471CASE_GROUND_STATE,
5472CASE_DECID,
5473CASE_CSI_STATE,
5474/*      0x9c            0x9d            0x9e            0x9f    */
5475CASE_ST,
5476CASE_OSC,
5477CASE_PM,
5478CASE_APC,
5479/*      nobreakspace    exclamdown      cent            sterling        */
5480CASE_ESC_IGNORE,
5481CASE_ESC_IGNORE,
5482CASE_ESC_IGNORE,
5483CASE_ESC_IGNORE,
5484/*      currency        yen             brokenbar       section         */
5485CASE_ESC_IGNORE,
5486CASE_ESC_IGNORE,
5487CASE_ESC_IGNORE,
5488CASE_ESC_IGNORE,
5489/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5490CASE_ESC_IGNORE,
5491CASE_ESC_IGNORE,
5492CASE_ESC_IGNORE,
5493CASE_ESC_IGNORE,
5494/*      notsign         hyphen          registered      macron          */
5495CASE_ESC_IGNORE,
5496CASE_ESC_IGNORE,
5497CASE_ESC_IGNORE,
5498CASE_ESC_IGNORE,
5499/*      degree          plusminus       twosuperior     threesuperior   */
5500CASE_GROUND_STATE,
5501CASE_GROUND_STATE,
5502CASE_GROUND_STATE,
5503CASE_GROUND_STATE,
5504/*      acute           mu              paragraph       periodcentered  */
5505CASE_GROUND_STATE,
5506CASE_GROUND_STATE,
5507CASE_GROUND_STATE,
5508CASE_GROUND_STATE,
5509/*      cedilla         onesuperior     masculine       guillemotright  */
5510CASE_GROUND_STATE,
5511CASE_GROUND_STATE,
5512CASE_GROUND_STATE,
5513CASE_GROUND_STATE,
5514/*      onequarter      onehalf         threequarters   questiondown    */
5515CASE_GROUND_STATE,
5516CASE_GROUND_STATE,
5517CASE_GROUND_STATE,
5518CASE_GROUND_STATE,
5519/*      Agrave          Aacute          Acircumflex     Atilde          */
5520CASE_GROUND_STATE,
5521CASE_GROUND_STATE,
5522CASE_GROUND_STATE,
5523CASE_GROUND_STATE,
5524/*      Adiaeresis      Aring           AE              Ccedilla        */
5525CASE_GROUND_STATE,
5526CASE_GROUND_STATE,
5527CASE_S7C1T,
5528CASE_S8C1T,
5529/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5530CASE_GROUND_STATE,
5531CASE_GROUND_STATE,
5532CASE_GROUND_STATE,
5533CASE_GROUND_STATE,
5534/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5535CASE_ANSI_LEVEL_1,
5536CASE_ANSI_LEVEL_2,
5537CASE_ANSI_LEVEL_3,
5538CASE_GROUND_STATE,
5539/*      Eth             Ntilde          Ograve          Oacute          */
5540CASE_GROUND_STATE,
5541CASE_GROUND_STATE,
5542CASE_GROUND_STATE,
5543CASE_GROUND_STATE,
5544/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5545CASE_GROUND_STATE,
5546CASE_GROUND_STATE,
5547CASE_GROUND_STATE,
5548CASE_GROUND_STATE,
5549/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5550CASE_GROUND_STATE,
5551CASE_GROUND_STATE,
5552CASE_GROUND_STATE,
5553CASE_GROUND_STATE,
5554/*      Udiaeresis      Yacute          Thorn           ssharp          */
5555CASE_GROUND_STATE,
5556CASE_GROUND_STATE,
5557CASE_GROUND_STATE,
5558CASE_GROUND_STATE,
5559/*      agrave          aacute          acircumflex     atilde          */
5560CASE_GROUND_STATE,
5561CASE_GROUND_STATE,
5562CASE_GROUND_STATE,
5563CASE_GROUND_STATE,
5564/*      adiaeresis      aring           ae              ccedilla        */
5565CASE_GROUND_STATE,
5566CASE_GROUND_STATE,
5567CASE_GROUND_STATE,
5568CASE_GROUND_STATE,
5569/*      egrave          eacute          ecircumflex     ediaeresis      */
5570CASE_GROUND_STATE,
5571CASE_GROUND_STATE,
5572CASE_GROUND_STATE,
5573CASE_GROUND_STATE,
5574/*      igrave          iacute          icircumflex     idiaeresis      */
5575CASE_GROUND_STATE,
5576CASE_GROUND_STATE,
5577CASE_GROUND_STATE,
5578CASE_GROUND_STATE,
5579/*      eth             ntilde          ograve          oacute          */
5580CASE_GROUND_STATE,
5581CASE_GROUND_STATE,
5582CASE_GROUND_STATE,
5583CASE_GROUND_STATE,
5584/*      ocircumflex     otilde          odiaeresis      division        */
5585CASE_GROUND_STATE,
5586CASE_GROUND_STATE,
5587CASE_GROUND_STATE,
5588CASE_GROUND_STATE,
5589/*      oslash          ugrave          uacute          ucircumflex     */
5590CASE_GROUND_STATE,
5591CASE_GROUND_STATE,
5592CASE_GROUND_STATE,
5593CASE_GROUND_STATE,
5594/*      udiaeresis      yacute          thorn           ydiaeresis      */
5595CASE_GROUND_STATE,
5596CASE_GROUND_STATE,
5597CASE_GROUND_STATE,
5598CASE_IGNORE,
5599};
5600
5601Const PARSE_T scrtable[] =		/* ESC # */
5602{
5603/*	NUL		SOH		STX		ETX	*/
5604CASE_IGNORE,
5605CASE_IGNORE,
5606CASE_IGNORE,
5607CASE_IGNORE,
5608/*	EOT		ENQ		ACK		BEL	*/
5609CASE_IGNORE,
5610CASE_ENQ,
5611CASE_IGNORE,
5612CASE_BELL,
5613/*	BS		HT		NL		VT	*/
5614CASE_BS,
5615CASE_TAB,
5616CASE_VMOT,
5617CASE_VMOT,
5618/*	FF		CR		SO		SI	*/
5619CASE_VMOT,
5620CASE_CR,
5621CASE_SO,
5622CASE_SI,
5623/*	DLE		DC1		DC2		DC3	*/
5624CASE_IGNORE,
5625CASE_IGNORE,
5626CASE_IGNORE,
5627CASE_IGNORE,
5628/*	DC4		NAK		SYN		ETB	*/
5629CASE_IGNORE,
5630CASE_IGNORE,
5631CASE_IGNORE,
5632CASE_IGNORE,
5633/*	CAN		EM		SUB		ESC	*/
5634CASE_GROUND_STATE,
5635CASE_IGNORE,
5636CASE_GROUND_STATE,
5637CASE_ESC,
5638/*	FS		GS		RS		US	*/
5639CASE_IGNORE,
5640CASE_IGNORE,
5641CASE_IGNORE,
5642CASE_IGNORE,
5643/*	SP		!		"		#	*/
5644CASE_ESC_IGNORE,
5645CASE_ESC_IGNORE,
5646CASE_ESC_IGNORE,
5647CASE_ESC_IGNORE,
5648/*	$		%		&		'	*/
5649CASE_ESC_IGNORE,
5650CASE_ESC_IGNORE,
5651CASE_ESC_IGNORE,
5652CASE_ESC_IGNORE,
5653/*	(		)		*		+	*/
5654CASE_ESC_IGNORE,
5655CASE_ESC_IGNORE,
5656CASE_ESC_IGNORE,
5657CASE_ESC_IGNORE,
5658/*	,		-		.		/	*/
5659CASE_ESC_IGNORE,
5660CASE_ESC_IGNORE,
5661CASE_ESC_IGNORE,
5662CASE_ESC_IGNORE,
5663/*	0		1		2		3	*/
5664CASE_GROUND_STATE,
5665CASE_GROUND_STATE,
5666CASE_GROUND_STATE,
5667CASE_DECDHL,
5668/*	4		5		6		7	*/
5669CASE_DECDHL,
5670CASE_DECSWL,
5671CASE_DECDWL,
5672CASE_GROUND_STATE,
5673/*	8		9		:		;	*/
5674CASE_DECALN,
5675CASE_GROUND_STATE,
5676CASE_GROUND_STATE,
5677CASE_GROUND_STATE,
5678/*	<		=		>		?	*/
5679CASE_GROUND_STATE,
5680CASE_GROUND_STATE,
5681CASE_GROUND_STATE,
5682CASE_GROUND_STATE,
5683/*	@		A		B		C	*/
5684CASE_GROUND_STATE,
5685CASE_GROUND_STATE,
5686CASE_GROUND_STATE,
5687CASE_GROUND_STATE,
5688/*	D		E		F		G	*/
5689CASE_GROUND_STATE,
5690CASE_GROUND_STATE,
5691CASE_GROUND_STATE,
5692CASE_GROUND_STATE,
5693/*	H		I		J		K	*/
5694CASE_GROUND_STATE,
5695CASE_GROUND_STATE,
5696CASE_GROUND_STATE,
5697CASE_GROUND_STATE,
5698/*	L		M		N		O	*/
5699CASE_GROUND_STATE,
5700CASE_GROUND_STATE,
5701CASE_GROUND_STATE,
5702CASE_GROUND_STATE,
5703/*	P		Q		R		S	*/
5704CASE_GROUND_STATE,
5705CASE_GROUND_STATE,
5706CASE_GROUND_STATE,
5707CASE_GROUND_STATE,
5708/*	T		U		V		W	*/
5709CASE_GROUND_STATE,
5710CASE_GROUND_STATE,
5711CASE_GROUND_STATE,
5712CASE_GROUND_STATE,
5713/*	X		Y		Z		[	*/
5714CASE_GROUND_STATE,
5715CASE_GROUND_STATE,
5716CASE_GROUND_STATE,
5717CASE_GROUND_STATE,
5718/*	\		]		^		_	*/
5719CASE_GROUND_STATE,
5720CASE_GROUND_STATE,
5721CASE_GROUND_STATE,
5722CASE_GROUND_STATE,
5723/*	`		a		b		c	*/
5724CASE_GROUND_STATE,
5725CASE_GROUND_STATE,
5726CASE_GROUND_STATE,
5727CASE_GROUND_STATE,
5728/*	d		e		f		g	*/
5729CASE_GROUND_STATE,
5730CASE_GROUND_STATE,
5731CASE_GROUND_STATE,
5732CASE_GROUND_STATE,
5733/*	h		i		j		k	*/
5734CASE_GROUND_STATE,
5735CASE_GROUND_STATE,
5736CASE_GROUND_STATE,
5737CASE_GROUND_STATE,
5738/*	l		m		n		o	*/
5739CASE_GROUND_STATE,
5740CASE_GROUND_STATE,
5741CASE_GROUND_STATE,
5742CASE_GROUND_STATE,
5743/*	p		q		r		s	*/
5744CASE_GROUND_STATE,
5745CASE_GROUND_STATE,
5746CASE_GROUND_STATE,
5747CASE_GROUND_STATE,
5748/*	t		u		v		w	*/
5749CASE_GROUND_STATE,
5750CASE_GROUND_STATE,
5751CASE_GROUND_STATE,
5752CASE_GROUND_STATE,
5753/*	x		y		z		{	*/
5754CASE_GROUND_STATE,
5755CASE_GROUND_STATE,
5756CASE_GROUND_STATE,
5757CASE_GROUND_STATE,
5758/*	|		}		~		DEL	*/
5759CASE_GROUND_STATE,
5760CASE_GROUND_STATE,
5761CASE_GROUND_STATE,
5762CASE_IGNORE,
5763/*      0x80            0x81            0x82            0x83    */
5764CASE_GROUND_STATE,
5765CASE_GROUND_STATE,
5766CASE_GROUND_STATE,
5767CASE_GROUND_STATE,
5768/*      0x84            0x85            0x86            0x87    */
5769CASE_IND,
5770CASE_NEL,
5771CASE_GROUND_STATE,
5772CASE_GROUND_STATE,
5773/*      0x88            0x89            0x8a            0x8b    */
5774CASE_HTS,
5775CASE_GROUND_STATE,
5776CASE_GROUND_STATE,
5777CASE_GROUND_STATE,
5778/*      0x8c            0x8d            0x8e            0x8f    */
5779CASE_GROUND_STATE,
5780CASE_RI,
5781CASE_SS2,
5782CASE_SS3,
5783/*      0x90            0x91            0x92            0x93    */
5784CASE_DCS,
5785CASE_GROUND_STATE,
5786CASE_GROUND_STATE,
5787CASE_GROUND_STATE,
5788/*      0x94            0x95            0x96            0x97    */
5789CASE_GROUND_STATE,
5790CASE_GROUND_STATE,
5791CASE_SPA,
5792CASE_EPA,
5793/*      0x98            0x99            0x9a            0x9b    */
5794CASE_SOS,
5795CASE_GROUND_STATE,
5796CASE_DECID,
5797CASE_CSI_STATE,
5798/*      0x9c            0x9d            0x9e            0x9f    */
5799CASE_ST,
5800CASE_OSC,
5801CASE_PM,
5802CASE_APC,
5803/*      nobreakspace    exclamdown      cent            sterling        */
5804CASE_ESC_IGNORE,
5805CASE_ESC_IGNORE,
5806CASE_ESC_IGNORE,
5807CASE_ESC_IGNORE,
5808/*      currency        yen             brokenbar       section         */
5809CASE_ESC_IGNORE,
5810CASE_ESC_IGNORE,
5811CASE_ESC_IGNORE,
5812CASE_ESC_IGNORE,
5813/*      diaeresis       copyright       ordfeminine     guillemotleft   */
5814CASE_ESC_IGNORE,
5815CASE_ESC_IGNORE,
5816CASE_ESC_IGNORE,
5817CASE_ESC_IGNORE,
5818/*      notsign         hyphen          registered      macron          */
5819CASE_ESC_IGNORE,
5820CASE_ESC_IGNORE,
5821CASE_ESC_IGNORE,
5822CASE_ESC_IGNORE,
5823/*      degree          plusminus       twosuperior     threesuperior   */
5824CASE_GROUND_STATE,
5825CASE_GROUND_STATE,
5826CASE_GROUND_STATE,
5827CASE_DECDHL,
5828/*      acute           mu              paragraph       periodcentered  */
5829CASE_DECDHL,
5830CASE_DECSWL,
5831CASE_DECDWL,
5832CASE_GROUND_STATE,
5833/*      cedilla         onesuperior     masculine       guillemotright  */
5834CASE_DECALN,
5835CASE_GROUND_STATE,
5836CASE_GROUND_STATE,
5837CASE_GROUND_STATE,
5838/*      onequarter      onehalf         threequarters   questiondown    */
5839CASE_GROUND_STATE,
5840CASE_GROUND_STATE,
5841CASE_GROUND_STATE,
5842CASE_GROUND_STATE,
5843/*      Agrave          Aacute          Acircumflex     Atilde          */
5844CASE_GROUND_STATE,
5845CASE_GROUND_STATE,
5846CASE_GROUND_STATE,
5847CASE_GROUND_STATE,
5848/*      Adiaeresis      Aring           AE              Ccedilla        */
5849CASE_GROUND_STATE,
5850CASE_GROUND_STATE,
5851CASE_GROUND_STATE,
5852CASE_GROUND_STATE,
5853/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
5854CASE_GROUND_STATE,
5855CASE_GROUND_STATE,
5856CASE_GROUND_STATE,
5857CASE_GROUND_STATE,
5858/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
5859CASE_GROUND_STATE,
5860CASE_GROUND_STATE,
5861CASE_GROUND_STATE,
5862CASE_GROUND_STATE,
5863/*      Eth             Ntilde          Ograve          Oacute          */
5864CASE_GROUND_STATE,
5865CASE_GROUND_STATE,
5866CASE_GROUND_STATE,
5867CASE_GROUND_STATE,
5868/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
5869CASE_GROUND_STATE,
5870CASE_GROUND_STATE,
5871CASE_GROUND_STATE,
5872CASE_GROUND_STATE,
5873/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
5874CASE_GROUND_STATE,
5875CASE_GROUND_STATE,
5876CASE_GROUND_STATE,
5877CASE_GROUND_STATE,
5878/*      Udiaeresis      Yacute          Thorn           ssharp          */
5879CASE_GROUND_STATE,
5880CASE_GROUND_STATE,
5881CASE_GROUND_STATE,
5882CASE_GROUND_STATE,
5883/*      agrave          aacute          acircumflex     atilde          */
5884CASE_GROUND_STATE,
5885CASE_GROUND_STATE,
5886CASE_GROUND_STATE,
5887CASE_GROUND_STATE,
5888/*      adiaeresis      aring           ae              ccedilla        */
5889CASE_GROUND_STATE,
5890CASE_GROUND_STATE,
5891CASE_GROUND_STATE,
5892CASE_GROUND_STATE,
5893/*      egrave          eacute          ecircumflex     ediaeresis      */
5894CASE_GROUND_STATE,
5895CASE_GROUND_STATE,
5896CASE_GROUND_STATE,
5897CASE_GROUND_STATE,
5898/*      igrave          iacute          icircumflex     idiaeresis      */
5899CASE_GROUND_STATE,
5900CASE_GROUND_STATE,
5901CASE_GROUND_STATE,
5902CASE_GROUND_STATE,
5903/*      eth             ntilde          ograve          oacute          */
5904CASE_GROUND_STATE,
5905CASE_GROUND_STATE,
5906CASE_GROUND_STATE,
5907CASE_GROUND_STATE,
5908/*      ocircumflex     otilde          odiaeresis      division        */
5909CASE_GROUND_STATE,
5910CASE_GROUND_STATE,
5911CASE_GROUND_STATE,
5912CASE_GROUND_STATE,
5913/*      oslash          ugrave          uacute          ucircumflex     */
5914CASE_GROUND_STATE,
5915CASE_GROUND_STATE,
5916CASE_GROUND_STATE,
5917CASE_GROUND_STATE,
5918/*      udiaeresis      yacute          thorn           ydiaeresis      */
5919CASE_GROUND_STATE,
5920CASE_GROUND_STATE,
5921CASE_GROUND_STATE,
5922CASE_IGNORE,
5923};
5924
5925Const PARSE_T scstable[] =		/* ESC ( etc. */
5926{
5927/*	NUL		SOH		STX		ETX	*/
5928CASE_IGNORE,
5929CASE_IGNORE,
5930CASE_IGNORE,
5931CASE_IGNORE,
5932/*	EOT		ENQ		ACK		BEL	*/
5933CASE_IGNORE,
5934CASE_ENQ,
5935CASE_IGNORE,
5936CASE_BELL,
5937/*	BS		HT		NL		VT	*/
5938CASE_BS,
5939CASE_TAB,
5940CASE_VMOT,
5941CASE_VMOT,
5942/*	FF		CR		SO		SI	*/
5943CASE_VMOT,
5944CASE_CR,
5945CASE_SO,
5946CASE_SI,
5947/*	DLE		DC1		DC2		DC3	*/
5948CASE_IGNORE,
5949CASE_IGNORE,
5950CASE_IGNORE,
5951CASE_IGNORE,
5952/*	DC4		NAK		SYN		ETB	*/
5953CASE_IGNORE,
5954CASE_IGNORE,
5955CASE_IGNORE,
5956CASE_IGNORE,
5957/*	CAN		EM		SUB		ESC	*/
5958CASE_GROUND_STATE,
5959CASE_IGNORE,
5960CASE_GROUND_STATE,
5961CASE_ESC,
5962/*	FS		GS		RS		US	*/
5963CASE_IGNORE,
5964CASE_IGNORE,
5965CASE_IGNORE,
5966CASE_IGNORE,
5967/*	SP		!		"		#	*/
5968CASE_ESC_IGNORE,
5969CASE_ESC_IGNORE,
5970CASE_ESC_IGNORE,
5971CASE_ESC_IGNORE,
5972/*	$		%		&		'	*/
5973CASE_ESC_IGNORE,
5974CASE_SCS_PERCENT,
5975CASE_ESC_IGNORE,
5976CASE_ESC_IGNORE,
5977/*	(		)		*		+	*/
5978CASE_ESC_IGNORE,
5979CASE_ESC_IGNORE,
5980CASE_ESC_IGNORE,
5981CASE_ESC_IGNORE,
5982/*	,		-		.		/	*/
5983CASE_ESC_IGNORE,
5984CASE_ESC_IGNORE,
5985CASE_ESC_IGNORE,
5986CASE_ESC_IGNORE,
5987/*	0		1		2		3	*/
5988CASE_GSETS,
5989CASE_GSETS,
5990CASE_GSETS,
5991CASE_GROUND_STATE,
5992/*	4		5		6		7	*/
5993CASE_GSETS,
5994CASE_GSETS,
5995CASE_GSETS,
5996CASE_GSETS,
5997/*	8		9		:		;	*/
5998CASE_GROUND_STATE,
5999CASE_GROUND_STATE,
6000CASE_GROUND_STATE,
6001CASE_GROUND_STATE,
6002/*	<		=		>		?	*/
6003CASE_GSETS,
6004CASE_GSETS,
6005CASE_GSETS,
6006CASE_GROUND_STATE,
6007/*	@		A		B		C	*/
6008CASE_GROUND_STATE,
6009CASE_GSETS,
6010CASE_GSETS,
6011CASE_GSETS,
6012/*	D		E		F		G	*/
6013CASE_GROUND_STATE,
6014CASE_GSETS,
6015CASE_GROUND_STATE,
6016CASE_GROUND_STATE,
6017/*	H		I		J		K	*/
6018CASE_GSETS,
6019CASE_GROUND_STATE,
6020CASE_GROUND_STATE,
6021CASE_GSETS,
6022/*	L		M		N		O	*/
6023CASE_GROUND_STATE,
6024CASE_GROUND_STATE,
6025CASE_GROUND_STATE,
6026CASE_GROUND_STATE,
6027/*	P		Q		R		S	*/
6028CASE_GROUND_STATE,
6029CASE_GSETS,
6030CASE_GSETS,
6031CASE_GROUND_STATE,
6032/*	T		U		V		W	*/
6033CASE_GROUND_STATE,
6034CASE_GROUND_STATE,
6035CASE_GROUND_STATE,
6036CASE_GROUND_STATE,
6037/*	X		Y		Z		[	*/
6038CASE_GROUND_STATE,
6039CASE_GSETS,
6040CASE_GSETS,
6041CASE_GROUND_STATE,
6042/*	\		]		^		_	*/
6043CASE_GROUND_STATE,
6044CASE_GROUND_STATE,
6045CASE_GROUND_STATE,
6046CASE_GROUND_STATE,
6047/*	`		a		b		c	*/
6048CASE_GSETS,
6049CASE_GROUND_STATE,
6050CASE_GROUND_STATE,
6051CASE_GROUND_STATE,
6052/*	d		e		f		g	*/
6053CASE_GROUND_STATE,
6054CASE_GROUND_STATE,
6055CASE_GROUND_STATE,
6056CASE_GROUND_STATE,
6057/*	h		i		j		k	*/
6058CASE_GROUND_STATE,
6059CASE_GROUND_STATE,
6060CASE_GROUND_STATE,
6061CASE_GROUND_STATE,
6062/*	l		m		n		o	*/
6063CASE_GROUND_STATE,
6064CASE_GROUND_STATE,
6065CASE_GROUND_STATE,
6066CASE_GROUND_STATE,
6067/*	p		q		r		s	*/
6068CASE_GROUND_STATE,
6069CASE_GROUND_STATE,
6070CASE_GROUND_STATE,
6071CASE_GROUND_STATE,
6072/*	t		u		v		w	*/
6073CASE_GROUND_STATE,
6074CASE_GROUND_STATE,
6075CASE_GROUND_STATE,
6076CASE_GROUND_STATE,
6077/*	x		y		z		{	*/
6078CASE_GROUND_STATE,
6079CASE_GROUND_STATE,
6080CASE_GROUND_STATE,
6081CASE_GROUND_STATE,
6082/*	|		}		~		DEL	*/
6083CASE_GROUND_STATE,
6084CASE_GROUND_STATE,
6085CASE_GROUND_STATE,
6086CASE_IGNORE,
6087/*      0x80            0x81            0x82            0x83    */
6088CASE_GROUND_STATE,
6089CASE_GROUND_STATE,
6090CASE_GROUND_STATE,
6091CASE_GROUND_STATE,
6092/*      0x84            0x85            0x86            0x87    */
6093CASE_IND,
6094CASE_NEL,
6095CASE_GROUND_STATE,
6096CASE_GROUND_STATE,
6097/*      0x88            0x89            0x8a            0x8b    */
6098CASE_HTS,
6099CASE_GROUND_STATE,
6100CASE_GROUND_STATE,
6101CASE_GROUND_STATE,
6102/*      0x8c            0x8d            0x8e            0x8f    */
6103CASE_GROUND_STATE,
6104CASE_RI,
6105CASE_SS2,
6106CASE_SS3,
6107/*      0x90            0x91            0x92            0x93    */
6108CASE_DCS,
6109CASE_GROUND_STATE,
6110CASE_GROUND_STATE,
6111CASE_GROUND_STATE,
6112/*      0x94            0x95            0x96            0x97    */
6113CASE_GROUND_STATE,
6114CASE_GROUND_STATE,
6115CASE_SPA,
6116CASE_EPA,
6117/*      0x98            0x99            0x9a            0x9b    */
6118CASE_SOS,
6119CASE_GROUND_STATE,
6120CASE_DECID,
6121CASE_CSI_STATE,
6122/*      0x9c            0x9d            0x9e            0x9f    */
6123CASE_ST,
6124CASE_OSC,
6125CASE_PM,
6126CASE_APC,
6127/*      nobreakspace    exclamdown      cent            sterling        */
6128CASE_ESC_IGNORE,
6129CASE_ESC_IGNORE,
6130CASE_ESC_IGNORE,
6131CASE_ESC_IGNORE,
6132/*      currency        yen             brokenbar       section         */
6133CASE_ESC_IGNORE,
6134CASE_SCS_PERCENT,
6135CASE_ESC_IGNORE,
6136CASE_ESC_IGNORE,
6137/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6138CASE_ESC_IGNORE,
6139CASE_ESC_IGNORE,
6140CASE_ESC_IGNORE,
6141CASE_ESC_IGNORE,
6142/*      notsign         hyphen          registered      macron          */
6143CASE_ESC_IGNORE,
6144CASE_ESC_IGNORE,
6145CASE_ESC_IGNORE,
6146CASE_ESC_IGNORE,
6147/*      degree          plusminus       twosuperior     threesuperior   */
6148CASE_GSETS,
6149CASE_GSETS,
6150CASE_GSETS,
6151CASE_GROUND_STATE,
6152/*      acute           mu              paragraph       periodcentered  */
6153CASE_GSETS,
6154CASE_GSETS,
6155CASE_GSETS,
6156CASE_GSETS,
6157/*      cedilla         onesuperior     masculine       guillemotright  */
6158CASE_GROUND_STATE,
6159CASE_GROUND_STATE,
6160CASE_GROUND_STATE,
6161CASE_GROUND_STATE,
6162/*      onequarter      onehalf         threequarters   questiondown    */
6163CASE_GSETS,
6164CASE_GSETS,
6165CASE_GSETS,
6166CASE_GROUND_STATE,
6167/*      Agrave          Aacute          Acircumflex     Atilde          */
6168CASE_GROUND_STATE,
6169CASE_GSETS,
6170CASE_GSETS,
6171CASE_GSETS,
6172/*      Adiaeresis      Aring           AE              Ccedilla        */
6173CASE_GROUND_STATE,
6174CASE_GSETS,
6175CASE_GROUND_STATE,
6176CASE_GROUND_STATE,
6177/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6178CASE_GSETS,
6179CASE_GROUND_STATE,
6180CASE_GROUND_STATE,
6181CASE_GSETS,
6182/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6183CASE_GROUND_STATE,
6184CASE_GROUND_STATE,
6185CASE_GROUND_STATE,
6186CASE_GROUND_STATE,
6187/*      Eth             Ntilde          Ograve          Oacute          */
6188CASE_GROUND_STATE,
6189CASE_GSETS,
6190CASE_GSETS,
6191CASE_GROUND_STATE,
6192/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6193CASE_GROUND_STATE,
6194CASE_GROUND_STATE,
6195CASE_GROUND_STATE,
6196CASE_GROUND_STATE,
6197/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6198CASE_GROUND_STATE,
6199CASE_GSETS,
6200CASE_GSETS,
6201CASE_GROUND_STATE,
6202/*      Udiaeresis      Yacute          Thorn           ssharp          */
6203CASE_GROUND_STATE,
6204CASE_GROUND_STATE,
6205CASE_GROUND_STATE,
6206CASE_GROUND_STATE,
6207/*      agrave          aacute          acircumflex     atilde          */
6208CASE_GSETS,
6209CASE_GROUND_STATE,
6210CASE_GROUND_STATE,
6211CASE_GROUND_STATE,
6212/*      adiaeresis      aring           ae              ccedilla        */
6213CASE_GROUND_STATE,
6214CASE_GROUND_STATE,
6215CASE_GROUND_STATE,
6216CASE_GROUND_STATE,
6217/*      egrave          eacute          ecircumflex     ediaeresis      */
6218CASE_GROUND_STATE,
6219CASE_GROUND_STATE,
6220CASE_GROUND_STATE,
6221CASE_GROUND_STATE,
6222/*      igrave          iacute          icircumflex     idiaeresis      */
6223CASE_GROUND_STATE,
6224CASE_GROUND_STATE,
6225CASE_GROUND_STATE,
6226CASE_GROUND_STATE,
6227/*      eth             ntilde          ograve          oacute          */
6228CASE_GROUND_STATE,
6229CASE_GROUND_STATE,
6230CASE_GROUND_STATE,
6231CASE_GROUND_STATE,
6232/*      ocircumflex     otilde          odiaeresis      division        */
6233CASE_GROUND_STATE,
6234CASE_GROUND_STATE,
6235CASE_GROUND_STATE,
6236CASE_GROUND_STATE,
6237/*      oslash          ugrave          uacute          ucircumflex     */
6238CASE_GROUND_STATE,
6239CASE_GROUND_STATE,
6240CASE_GROUND_STATE,
6241CASE_GROUND_STATE,
6242/*      udiaeresis      yacute          thorn           ydiaeresis      */
6243CASE_GROUND_STATE,
6244CASE_GROUND_STATE,
6245CASE_GROUND_STATE,
6246CASE_IGNORE,
6247};
6248
6249Const PARSE_T scs96table[] =		/* ESC - etc. */
6250{
6251/*	NUL		SOH		STX		ETX	*/
6252CASE_IGNORE,
6253CASE_IGNORE,
6254CASE_IGNORE,
6255CASE_IGNORE,
6256/*	EOT		ENQ		ACK		BEL	*/
6257CASE_IGNORE,
6258CASE_ENQ,
6259CASE_IGNORE,
6260CASE_BELL,
6261/*	BS		HT		NL		VT	*/
6262CASE_BS,
6263CASE_TAB,
6264CASE_VMOT,
6265CASE_VMOT,
6266/*	FF		CR		SO		SI	*/
6267CASE_VMOT,
6268CASE_CR,
6269CASE_SO,
6270CASE_SI,
6271/*	DLE		DC1		DC2		DC3	*/
6272CASE_IGNORE,
6273CASE_IGNORE,
6274CASE_IGNORE,
6275CASE_IGNORE,
6276/*	DC4		NAK		SYN		ETB	*/
6277CASE_IGNORE,
6278CASE_IGNORE,
6279CASE_IGNORE,
6280CASE_IGNORE,
6281/*	CAN		EM		SUB		ESC	*/
6282CASE_GROUND_STATE,
6283CASE_IGNORE,
6284CASE_GROUND_STATE,
6285CASE_ESC,
6286/*	FS		GS		RS		US	*/
6287CASE_IGNORE,
6288CASE_IGNORE,
6289CASE_IGNORE,
6290CASE_IGNORE,
6291/*	SP		!		"		#	*/
6292CASE_ESC_IGNORE,
6293CASE_ESC_IGNORE,
6294CASE_ESC_IGNORE,
6295CASE_ESC_IGNORE,
6296/*	$		%		&		'	*/
6297CASE_ESC_IGNORE,
6298CASE_ESC_IGNORE,
6299CASE_ESC_IGNORE,
6300CASE_ESC_IGNORE,
6301/*	(		)		*		+	*/
6302CASE_ESC_IGNORE,
6303CASE_ESC_IGNORE,
6304CASE_ESC_IGNORE,
6305CASE_ESC_IGNORE,
6306/*	,		-		.		/	*/
6307CASE_ESC_IGNORE,
6308CASE_ESC_IGNORE,
6309CASE_ESC_IGNORE,
6310CASE_ESC_IGNORE,
6311/*	0		1		2		3	*/
6312CASE_GROUND_STATE,
6313CASE_GROUND_STATE,
6314CASE_GROUND_STATE,
6315CASE_GROUND_STATE,
6316/*	4		5		6		7	*/
6317CASE_GROUND_STATE,
6318CASE_GROUND_STATE,
6319CASE_GROUND_STATE,
6320CASE_GROUND_STATE,
6321/*	8		9		:		;	*/
6322CASE_GROUND_STATE,
6323CASE_GROUND_STATE,
6324CASE_GROUND_STATE,
6325CASE_GROUND_STATE,
6326/*	<		=		>		?	*/
6327CASE_GROUND_STATE,
6328CASE_GROUND_STATE,
6329CASE_GROUND_STATE,
6330CASE_GROUND_STATE,
6331/*	@		A		B		C	*/
6332CASE_GROUND_STATE,
6333CASE_GSETS,
6334CASE_GROUND_STATE,
6335CASE_GROUND_STATE,
6336/*	D		E		F		G	*/
6337CASE_GROUND_STATE,
6338CASE_GROUND_STATE,
6339CASE_GROUND_STATE,
6340CASE_GROUND_STATE,
6341/*	H		I		J		K	*/
6342CASE_GROUND_STATE,
6343CASE_GROUND_STATE,
6344CASE_GROUND_STATE,
6345CASE_GROUND_STATE,
6346/*	L		M		N		O	*/
6347CASE_GROUND_STATE,
6348CASE_GROUND_STATE,
6349CASE_GROUND_STATE,
6350CASE_GROUND_STATE,
6351/*	P		Q		R		S	*/
6352CASE_GROUND_STATE,
6353CASE_GROUND_STATE,
6354CASE_GROUND_STATE,
6355CASE_GROUND_STATE,
6356/*	T		U		V		W	*/
6357CASE_GROUND_STATE,
6358CASE_GROUND_STATE,
6359CASE_GROUND_STATE,
6360CASE_GROUND_STATE,
6361/*	X		Y		Z		[	*/
6362CASE_GROUND_STATE,
6363CASE_GROUND_STATE,
6364CASE_GROUND_STATE,
6365CASE_GROUND_STATE,
6366/*	\		]		^		_	*/
6367CASE_GROUND_STATE,
6368CASE_GROUND_STATE,
6369CASE_GROUND_STATE,
6370CASE_GROUND_STATE,
6371/*	`		a		b		c	*/
6372CASE_GROUND_STATE,
6373CASE_GROUND_STATE,
6374CASE_GROUND_STATE,
6375CASE_GROUND_STATE,
6376/*	d		e		f		g	*/
6377CASE_GROUND_STATE,
6378CASE_GROUND_STATE,
6379CASE_GROUND_STATE,
6380CASE_GROUND_STATE,
6381/*	h		i		j		k	*/
6382CASE_GROUND_STATE,
6383CASE_GROUND_STATE,
6384CASE_GROUND_STATE,
6385CASE_GROUND_STATE,
6386/*	l		m		n		o	*/
6387CASE_GROUND_STATE,
6388CASE_GROUND_STATE,
6389CASE_GROUND_STATE,
6390CASE_GROUND_STATE,
6391/*	p		q		r		s	*/
6392CASE_GROUND_STATE,
6393CASE_GROUND_STATE,
6394CASE_GROUND_STATE,
6395CASE_GROUND_STATE,
6396/*	t		u		v		w	*/
6397CASE_GROUND_STATE,
6398CASE_GROUND_STATE,
6399CASE_GROUND_STATE,
6400CASE_GROUND_STATE,
6401/*	x		y		z		{	*/
6402CASE_GROUND_STATE,
6403CASE_GROUND_STATE,
6404CASE_GROUND_STATE,
6405CASE_GROUND_STATE,
6406/*	|		}		~		DEL	*/
6407CASE_GROUND_STATE,
6408CASE_GROUND_STATE,
6409CASE_GROUND_STATE,
6410CASE_IGNORE,
6411/*      0x80            0x81            0x82            0x83    */
6412CASE_GROUND_STATE,
6413CASE_GROUND_STATE,
6414CASE_GROUND_STATE,
6415CASE_GROUND_STATE,
6416/*      0x84            0x85            0x86            0x87    */
6417CASE_IND,
6418CASE_NEL,
6419CASE_GROUND_STATE,
6420CASE_GROUND_STATE,
6421/*      0x88            0x89            0x8a            0x8b    */
6422CASE_HTS,
6423CASE_GROUND_STATE,
6424CASE_GROUND_STATE,
6425CASE_GROUND_STATE,
6426/*      0x8c            0x8d            0x8e            0x8f    */
6427CASE_GROUND_STATE,
6428CASE_RI,
6429CASE_SS2,
6430CASE_SS3,
6431/*      0x90            0x91            0x92            0x93    */
6432CASE_DCS,
6433CASE_GROUND_STATE,
6434CASE_GROUND_STATE,
6435CASE_GROUND_STATE,
6436/*      0x94            0x95            0x96            0x97    */
6437CASE_GROUND_STATE,
6438CASE_GROUND_STATE,
6439CASE_SPA,
6440CASE_EPA,
6441/*      0x98            0x99            0x9a            0x9b    */
6442CASE_SOS,
6443CASE_GROUND_STATE,
6444CASE_DECID,
6445CASE_CSI_STATE,
6446/*      0x9c            0x9d            0x9e            0x9f    */
6447CASE_ST,
6448CASE_OSC,
6449CASE_PM,
6450CASE_APC,
6451/*      nobreakspace    exclamdown      cent            sterling        */
6452CASE_ESC_IGNORE,
6453CASE_ESC_IGNORE,
6454CASE_ESC_IGNORE,
6455CASE_ESC_IGNORE,
6456/*      currency        yen             brokenbar       section         */
6457CASE_ESC_IGNORE,
6458CASE_ESC_IGNORE,
6459CASE_ESC_IGNORE,
6460CASE_ESC_IGNORE,
6461/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6462CASE_ESC_IGNORE,
6463CASE_ESC_IGNORE,
6464CASE_ESC_IGNORE,
6465CASE_ESC_IGNORE,
6466/*      notsign         hyphen          registered      macron          */
6467CASE_ESC_IGNORE,
6468CASE_ESC_IGNORE,
6469CASE_ESC_IGNORE,
6470CASE_ESC_IGNORE,
6471/*      degree          plusminus       twosuperior     threesuperior   */
6472CASE_GROUND_STATE,
6473CASE_GROUND_STATE,
6474CASE_GROUND_STATE,
6475CASE_GROUND_STATE,
6476/*      acute           mu              paragraph       periodcentered  */
6477CASE_GROUND_STATE,
6478CASE_GROUND_STATE,
6479CASE_GROUND_STATE,
6480CASE_GROUND_STATE,
6481/*      cedilla         onesuperior     masculine       guillemotright  */
6482CASE_GROUND_STATE,
6483CASE_GROUND_STATE,
6484CASE_GROUND_STATE,
6485CASE_GROUND_STATE,
6486/*      onequarter      onehalf         threequarters   questiondown    */
6487CASE_GROUND_STATE,
6488CASE_GROUND_STATE,
6489CASE_GROUND_STATE,
6490CASE_GROUND_STATE,
6491/*      Agrave          Aacute          Acircumflex     Atilde          */
6492CASE_GROUND_STATE,
6493CASE_GSETS,
6494CASE_GROUND_STATE,
6495CASE_GROUND_STATE,
6496/*      Adiaeresis      Aring           AE              Ccedilla        */
6497CASE_GROUND_STATE,
6498CASE_GROUND_STATE,
6499CASE_GROUND_STATE,
6500CASE_GROUND_STATE,
6501/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6502CASE_GROUND_STATE,
6503CASE_GROUND_STATE,
6504CASE_GROUND_STATE,
6505CASE_GROUND_STATE,
6506/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6507CASE_GROUND_STATE,
6508CASE_GROUND_STATE,
6509CASE_GROUND_STATE,
6510CASE_GROUND_STATE,
6511/*      Eth             Ntilde          Ograve          Oacute          */
6512CASE_GROUND_STATE,
6513CASE_GROUND_STATE,
6514CASE_GROUND_STATE,
6515CASE_GROUND_STATE,
6516/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6517CASE_GROUND_STATE,
6518CASE_GROUND_STATE,
6519CASE_GROUND_STATE,
6520CASE_GROUND_STATE,
6521/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6522CASE_GROUND_STATE,
6523CASE_GROUND_STATE,
6524CASE_GROUND_STATE,
6525CASE_GROUND_STATE,
6526/*      Udiaeresis      Yacute          Thorn           ssharp          */
6527CASE_GROUND_STATE,
6528CASE_GROUND_STATE,
6529CASE_GROUND_STATE,
6530CASE_GROUND_STATE,
6531/*      agrave          aacute          acircumflex     atilde          */
6532CASE_GROUND_STATE,
6533CASE_GROUND_STATE,
6534CASE_GROUND_STATE,
6535CASE_GROUND_STATE,
6536/*      adiaeresis      aring           ae              ccedilla        */
6537CASE_GROUND_STATE,
6538CASE_GROUND_STATE,
6539CASE_GROUND_STATE,
6540CASE_GROUND_STATE,
6541/*      egrave          eacute          ecircumflex     ediaeresis      */
6542CASE_GROUND_STATE,
6543CASE_GROUND_STATE,
6544CASE_GROUND_STATE,
6545CASE_GROUND_STATE,
6546/*      igrave          iacute          icircumflex     idiaeresis      */
6547CASE_GROUND_STATE,
6548CASE_GROUND_STATE,
6549CASE_GROUND_STATE,
6550CASE_GROUND_STATE,
6551/*      eth             ntilde          ograve          oacute          */
6552CASE_GROUND_STATE,
6553CASE_GROUND_STATE,
6554CASE_GROUND_STATE,
6555CASE_GROUND_STATE,
6556/*      ocircumflex     otilde          odiaeresis      division        */
6557CASE_GROUND_STATE,
6558CASE_GROUND_STATE,
6559CASE_GROUND_STATE,
6560CASE_GROUND_STATE,
6561/*      oslash          ugrave          uacute          ucircumflex     */
6562CASE_GROUND_STATE,
6563CASE_GROUND_STATE,
6564CASE_GROUND_STATE,
6565CASE_GROUND_STATE,
6566/*      udiaeresis      yacute          thorn           ydiaeresis      */
6567CASE_GROUND_STATE,
6568CASE_GROUND_STATE,
6569CASE_GROUND_STATE,
6570CASE_IGNORE,
6571};
6572
6573/*
6574 * This table is treated specially.  The CASE_IGNORE entries correspond to the
6575 * characters that can be accumulated for the string function (e.g., OSC).
6576 */
6577Const PARSE_T sos_table[] =		/* OSC, DCS, etc. */
6578{
6579/*	NUL		SOH		STX		ETX	*/
6580CASE_IGNORE,
6581CASE_IGNORE,
6582CASE_IGNORE,
6583CASE_IGNORE,
6584/*	EOT		ENQ		ACK		BEL	*/
6585CASE_IGNORE,
6586CASE_IGNORE,
6587CASE_IGNORE,
6588CASE_BELL,
6589/*	BS		HT		NL		VT	*/
6590CASE_IGNORE,
6591CASE_IGNORE,
6592CASE_IGNORE,
6593CASE_IGNORE,
6594/*	FF		CR		SO		SI	*/
6595CASE_IGNORE,
6596CASE_IGNORE,
6597CASE_IGNORE,
6598CASE_IGNORE,
6599/*	DLE		DC1		DC2		DC3	*/
6600CASE_IGNORE,
6601CASE_IGNORE,
6602CASE_IGNORE,
6603CASE_IGNORE,
6604/*	DC4		NAK		SYN		ETB	*/
6605CASE_IGNORE,
6606CASE_IGNORE,
6607CASE_IGNORE,
6608CASE_IGNORE,
6609/*	CAN		EM		SUB		ESC	*/
6610CASE_GROUND_STATE,
6611CASE_IGNORE,
6612CASE_GROUND_STATE,
6613CASE_ESC,
6614/*	FS		GS		RS		US	*/
6615CASE_IGNORE,
6616CASE_IGNORE,
6617CASE_IGNORE,
6618CASE_IGNORE,
6619/*	SP		!		"		#	*/
6620CASE_IGNORE,
6621CASE_IGNORE,
6622CASE_IGNORE,
6623CASE_IGNORE,
6624/*	$		%		&		'	*/
6625CASE_IGNORE,
6626CASE_IGNORE,
6627CASE_IGNORE,
6628CASE_IGNORE,
6629/*	(		)		*		+	*/
6630CASE_IGNORE,
6631CASE_IGNORE,
6632CASE_IGNORE,
6633CASE_IGNORE,
6634/*	,		-		.		/	*/
6635CASE_IGNORE,
6636CASE_IGNORE,
6637CASE_IGNORE,
6638CASE_IGNORE,
6639/*	0		1		2		3	*/
6640CASE_IGNORE,
6641CASE_IGNORE,
6642CASE_IGNORE,
6643CASE_IGNORE,
6644/*	4		5		6		7	*/
6645CASE_IGNORE,
6646CASE_IGNORE,
6647CASE_IGNORE,
6648CASE_IGNORE,
6649/*	8		9		:		;	*/
6650CASE_IGNORE,
6651CASE_IGNORE,
6652CASE_IGNORE,
6653CASE_IGNORE,
6654/*	<		=		>		?	*/
6655CASE_IGNORE,
6656CASE_IGNORE,
6657CASE_IGNORE,
6658CASE_IGNORE,
6659/*	@		A		B		C	*/
6660CASE_IGNORE,
6661CASE_IGNORE,
6662CASE_IGNORE,
6663CASE_IGNORE,
6664/*	D		E		F		G	*/
6665CASE_IGNORE,
6666CASE_IGNORE,
6667CASE_IGNORE,
6668CASE_IGNORE,
6669/*	H		I		J		K	*/
6670CASE_IGNORE,
6671CASE_IGNORE,
6672CASE_IGNORE,
6673CASE_IGNORE,
6674/*	L		M		N		O	*/
6675CASE_IGNORE,
6676CASE_IGNORE,
6677CASE_IGNORE,
6678CASE_IGNORE,
6679/*	P		Q		R		S	*/
6680CASE_IGNORE,
6681CASE_IGNORE,
6682CASE_IGNORE,
6683CASE_IGNORE,
6684/*	T		U		V		W	*/
6685CASE_IGNORE,
6686CASE_IGNORE,
6687CASE_IGNORE,
6688CASE_IGNORE,
6689/*	X		Y		Z		[	*/
6690CASE_IGNORE,
6691CASE_IGNORE,
6692CASE_IGNORE,
6693CASE_IGNORE,
6694/*	\		]		^		_	*/
6695CASE_IGNORE,
6696CASE_IGNORE,
6697CASE_IGNORE,
6698CASE_IGNORE,
6699/*	`		a		b		c	*/
6700CASE_IGNORE,
6701CASE_IGNORE,
6702CASE_IGNORE,
6703CASE_IGNORE,
6704/*	d		e		f		g	*/
6705CASE_IGNORE,
6706CASE_IGNORE,
6707CASE_IGNORE,
6708CASE_IGNORE,
6709/*	h		i		j		k	*/
6710CASE_IGNORE,
6711CASE_IGNORE,
6712CASE_IGNORE,
6713CASE_IGNORE,
6714/*	l		m		n		o	*/
6715CASE_IGNORE,
6716CASE_IGNORE,
6717CASE_IGNORE,
6718CASE_IGNORE,
6719/*	p		q		r		s	*/
6720CASE_IGNORE,
6721CASE_IGNORE,
6722CASE_IGNORE,
6723CASE_IGNORE,
6724/*	t		u		v		w	*/
6725CASE_IGNORE,
6726CASE_IGNORE,
6727CASE_IGNORE,
6728CASE_IGNORE,
6729/*	x		y		z		{	*/
6730CASE_IGNORE,
6731CASE_IGNORE,
6732CASE_IGNORE,
6733CASE_IGNORE,
6734/*	|		}		~		DEL	*/
6735CASE_IGNORE,
6736CASE_IGNORE,
6737CASE_IGNORE,
6738CASE_IGNORE,
6739/*      0x80            0x81            0x82            0x83    */
6740CASE_GROUND_STATE,
6741CASE_GROUND_STATE,
6742CASE_GROUND_STATE,
6743CASE_GROUND_STATE,
6744/*      0x84            0x85            0x86            0x87    */
6745CASE_IND,
6746CASE_NEL,
6747CASE_GROUND_STATE,
6748CASE_GROUND_STATE,
6749/*      0x88            0x89            0x8a            0x8b    */
6750CASE_HTS,
6751CASE_GROUND_STATE,
6752CASE_GROUND_STATE,
6753CASE_GROUND_STATE,
6754/*      0x8c            0x8d            0x8e            0x8f    */
6755CASE_GROUND_STATE,
6756CASE_RI,
6757CASE_SS2,
6758CASE_SS3,
6759/*      0x90            0x91            0x92            0x93    */
6760CASE_DCS,
6761CASE_GROUND_STATE,
6762CASE_GROUND_STATE,
6763CASE_GROUND_STATE,
6764/*      0x94            0x95            0x96            0x97    */
6765CASE_GROUND_STATE,
6766CASE_GROUND_STATE,
6767CASE_SPA,
6768CASE_EPA,
6769/*      0x98            0x99            0x9a            0x9b    */
6770CASE_SOS,
6771CASE_GROUND_STATE,
6772CASE_DECID,
6773CASE_CSI_STATE,
6774/*      0x9c            0x9d            0x9e            0x9f    */
6775CASE_ST,
6776CASE_OSC,
6777CASE_PM,
6778CASE_APC,
6779/*      nobreakspace    exclamdown      cent            sterling        */
6780CASE_IGNORE,
6781CASE_IGNORE,
6782CASE_IGNORE,
6783CASE_IGNORE,
6784/*      currency        yen             brokenbar       section         */
6785CASE_IGNORE,
6786CASE_IGNORE,
6787CASE_IGNORE,
6788CASE_IGNORE,
6789/*      diaeresis       copyright       ordfeminine     guillemotleft   */
6790CASE_IGNORE,
6791CASE_IGNORE,
6792CASE_IGNORE,
6793CASE_IGNORE,
6794/*      notsign         hyphen          registered      macron          */
6795CASE_IGNORE,
6796CASE_IGNORE,
6797CASE_IGNORE,
6798CASE_IGNORE,
6799/*      degree          plusminus       twosuperior     threesuperior   */
6800CASE_IGNORE,
6801CASE_IGNORE,
6802CASE_IGNORE,
6803CASE_IGNORE,
6804/*      acute           mu              paragraph       periodcentered  */
6805CASE_IGNORE,
6806CASE_IGNORE,
6807CASE_IGNORE,
6808CASE_IGNORE,
6809/*      cedilla         onesuperior     masculine       guillemotright  */
6810CASE_IGNORE,
6811CASE_IGNORE,
6812CASE_IGNORE,
6813CASE_IGNORE,
6814/*      onequarter      onehalf         threequarters   questiondown    */
6815CASE_IGNORE,
6816CASE_IGNORE,
6817CASE_IGNORE,
6818CASE_IGNORE,
6819/*      Agrave          Aacute          Acircumflex     Atilde          */
6820CASE_IGNORE,
6821CASE_IGNORE,
6822CASE_IGNORE,
6823CASE_IGNORE,
6824/*      Adiaeresis      Aring           AE              Ccedilla        */
6825CASE_IGNORE,
6826CASE_IGNORE,
6827CASE_IGNORE,
6828CASE_IGNORE,
6829/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
6830CASE_IGNORE,
6831CASE_IGNORE,
6832CASE_IGNORE,
6833CASE_IGNORE,
6834/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
6835CASE_IGNORE,
6836CASE_IGNORE,
6837CASE_IGNORE,
6838CASE_IGNORE,
6839/*      Eth             Ntilde          Ograve          Oacute          */
6840CASE_IGNORE,
6841CASE_IGNORE,
6842CASE_IGNORE,
6843CASE_IGNORE,
6844/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
6845CASE_IGNORE,
6846CASE_IGNORE,
6847CASE_IGNORE,
6848CASE_IGNORE,
6849/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
6850CASE_IGNORE,
6851CASE_IGNORE,
6852CASE_IGNORE,
6853CASE_IGNORE,
6854/*      Udiaeresis      Yacute          Thorn           ssharp          */
6855CASE_IGNORE,
6856CASE_IGNORE,
6857CASE_IGNORE,
6858CASE_IGNORE,
6859/*      agrave          aacute          acircumflex     atilde          */
6860CASE_IGNORE,
6861CASE_IGNORE,
6862CASE_IGNORE,
6863CASE_IGNORE,
6864/*      adiaeresis      aring           ae              ccedilla        */
6865CASE_IGNORE,
6866CASE_IGNORE,
6867CASE_IGNORE,
6868CASE_IGNORE,
6869/*      egrave          eacute          ecircumflex     ediaeresis      */
6870CASE_IGNORE,
6871CASE_IGNORE,
6872CASE_IGNORE,
6873CASE_IGNORE,
6874/*      igrave          iacute          icircumflex     idiaeresis      */
6875CASE_IGNORE,
6876CASE_IGNORE,
6877CASE_IGNORE,
6878CASE_IGNORE,
6879/*      eth             ntilde          ograve          oacute          */
6880CASE_IGNORE,
6881CASE_IGNORE,
6882CASE_IGNORE,
6883CASE_IGNORE,
6884/*      ocircumflex     otilde          odiaeresis      division        */
6885CASE_IGNORE,
6886CASE_IGNORE,
6887CASE_IGNORE,
6888CASE_IGNORE,
6889/*      oslash          ugrave          uacute          ucircumflex     */
6890CASE_IGNORE,
6891CASE_IGNORE,
6892CASE_IGNORE,
6893CASE_IGNORE,
6894/*      udiaeresis      yacute          thorn           ydiaeresis      */
6895CASE_IGNORE,
6896CASE_IGNORE,
6897CASE_IGNORE,
6898CASE_IGNORE,
6899};
6900
6901#if OPT_WIDE_CHARS
6902Const PARSE_T esc_pct_table[] =		/* ESC % */
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/*	FF		CR		SO		SI	*/
6920CASE_VMOT,
6921CASE_CR,
6922CASE_SO,
6923CASE_SI,
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_ESC_IGNORE,
6946CASE_ESC_IGNORE,
6947CASE_ESC_IGNORE,
6948CASE_ESC_IGNORE,
6949/*	$		%		&		'	*/
6950CASE_ESC_IGNORE,
6951CASE_ESC_IGNORE,
6952CASE_ESC_IGNORE,
6953CASE_ESC_IGNORE,
6954/*	(		)		*		+	*/
6955CASE_ESC_IGNORE,
6956CASE_ESC_IGNORE,
6957CASE_ESC_IGNORE,
6958CASE_ESC_IGNORE,
6959/*	,		-		.		/	*/
6960CASE_ESC_IGNORE,
6961CASE_ESC_IGNORE,
6962CASE_ESC_IGNORE,
6963CASE_ESC_IGNORE,
6964/*	0		1		2		3	*/
6965CASE_GROUND_STATE,
6966CASE_GROUND_STATE,
6967CASE_GROUND_STATE,
6968CASE_GROUND_STATE,
6969/*	4		5		6		7	*/
6970CASE_GROUND_STATE,
6971CASE_GROUND_STATE,
6972CASE_GROUND_STATE,
6973CASE_GROUND_STATE,
6974/*	8		9		:		;	*/
6975CASE_GROUND_STATE,
6976CASE_GROUND_STATE,
6977CASE_GROUND_STATE,
6978CASE_GROUND_STATE,
6979/*	<		=		>		?	*/
6980CASE_GROUND_STATE,
6981CASE_GROUND_STATE,
6982CASE_GROUND_STATE,
6983CASE_GROUND_STATE,
6984/*	@		A		B		C	*/
6985CASE_UTF8,
6986CASE_GROUND_STATE,
6987CASE_GROUND_STATE,
6988CASE_GROUND_STATE,
6989/*	D		E		F		G	*/
6990CASE_GROUND_STATE,
6991CASE_GROUND_STATE,
6992CASE_GROUND_STATE,
6993CASE_UTF8,
6994/*	H		I		J		K	*/
6995CASE_GROUND_STATE,
6996CASE_GROUND_STATE,
6997CASE_GROUND_STATE,
6998CASE_GROUND_STATE,
6999/*	L		M		N		O	*/
7000CASE_GROUND_STATE,
7001CASE_GROUND_STATE,
7002CASE_GROUND_STATE,
7003CASE_GROUND_STATE,
7004/*	P		Q		R		S	*/
7005CASE_GROUND_STATE,
7006CASE_GROUND_STATE,
7007CASE_GROUND_STATE,
7008CASE_GROUND_STATE,
7009/*	T		U		V		W	*/
7010CASE_GROUND_STATE,
7011CASE_GROUND_STATE,
7012CASE_GROUND_STATE,
7013CASE_GROUND_STATE,
7014/*	X		Y		Z		[	*/
7015CASE_GROUND_STATE,
7016CASE_GROUND_STATE,
7017CASE_GROUND_STATE,
7018CASE_GROUND_STATE,
7019/*	\		]		^		_	*/
7020CASE_GROUND_STATE,
7021CASE_GROUND_STATE,
7022CASE_GROUND_STATE,
7023CASE_GROUND_STATE,
7024/*	`		a		b		c	*/
7025CASE_GROUND_STATE,
7026CASE_GROUND_STATE,
7027CASE_GROUND_STATE,
7028CASE_GROUND_STATE,
7029/*	d		e		f		g	*/
7030CASE_GROUND_STATE,
7031CASE_GROUND_STATE,
7032CASE_GROUND_STATE,
7033CASE_GROUND_STATE,
7034/*	h		i		j		k	*/
7035CASE_GROUND_STATE,
7036CASE_GROUND_STATE,
7037CASE_GROUND_STATE,
7038CASE_GROUND_STATE,
7039/*	l		m		n		o	*/
7040CASE_GROUND_STATE,
7041CASE_GROUND_STATE,
7042CASE_GROUND_STATE,
7043CASE_GROUND_STATE,
7044/*	p		q		r		s	*/
7045CASE_GROUND_STATE,
7046CASE_GROUND_STATE,
7047CASE_GROUND_STATE,
7048CASE_GROUND_STATE,
7049/*	t		u		v		w	*/
7050CASE_GROUND_STATE,
7051CASE_GROUND_STATE,
7052CASE_GROUND_STATE,
7053CASE_GROUND_STATE,
7054/*	x		y		z		{	*/
7055CASE_GROUND_STATE,
7056CASE_GROUND_STATE,
7057CASE_GROUND_STATE,
7058CASE_GROUND_STATE,
7059/*	|		}		~		DEL	*/
7060CASE_GROUND_STATE,
7061CASE_GROUND_STATE,
7062CASE_GROUND_STATE,
7063CASE_IGNORE,
7064/*      0x80            0x81            0x82            0x83    */
7065CASE_GROUND_STATE,
7066CASE_GROUND_STATE,
7067CASE_GROUND_STATE,
7068CASE_GROUND_STATE,
7069/*      0x84            0x85            0x86            0x87    */
7070CASE_IND,
7071CASE_NEL,
7072CASE_GROUND_STATE,
7073CASE_GROUND_STATE,
7074/*      0x88            0x89            0x8a            0x8b    */
7075CASE_HTS,
7076CASE_GROUND_STATE,
7077CASE_GROUND_STATE,
7078CASE_GROUND_STATE,
7079/*      0x8c            0x8d            0x8e            0x8f    */
7080CASE_GROUND_STATE,
7081CASE_RI,
7082CASE_SS2,
7083CASE_SS3,
7084/*      0x90            0x91            0x92            0x93    */
7085CASE_DCS,
7086CASE_GROUND_STATE,
7087CASE_GROUND_STATE,
7088CASE_GROUND_STATE,
7089/*      0x94            0x95            0x96            0x97    */
7090CASE_GROUND_STATE,
7091CASE_GROUND_STATE,
7092CASE_SPA,
7093CASE_EPA,
7094/*      0x98            0x99            0x9a            0x9b    */
7095CASE_SOS,
7096CASE_GROUND_STATE,
7097CASE_DECID,
7098CASE_CSI_STATE,
7099/*      0x9c            0x9d            0x9e            0x9f    */
7100CASE_ST,
7101CASE_OSC,
7102CASE_PM,
7103CASE_APC,
7104/*      nobreakspace    exclamdown      cent            sterling        */
7105CASE_ESC_IGNORE,
7106CASE_ESC_IGNORE,
7107CASE_ESC_IGNORE,
7108CASE_ESC_IGNORE,
7109/*      currency        yen             brokenbar       section         */
7110CASE_ESC_IGNORE,
7111CASE_ESC_IGNORE,
7112CASE_ESC_IGNORE,
7113CASE_ESC_IGNORE,
7114/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7115CASE_ESC_IGNORE,
7116CASE_ESC_IGNORE,
7117CASE_ESC_IGNORE,
7118CASE_ESC_IGNORE,
7119/*      notsign         hyphen          registered      macron          */
7120CASE_ESC_IGNORE,
7121CASE_ESC_IGNORE,
7122CASE_ESC_IGNORE,
7123CASE_ESC_IGNORE,
7124/*      degree          plusminus       twosuperior     threesuperior   */
7125CASE_GROUND_STATE,
7126CASE_GROUND_STATE,
7127CASE_GROUND_STATE,
7128CASE_GROUND_STATE,
7129/*      acute           mu              paragraph       periodcentered  */
7130CASE_GROUND_STATE,
7131CASE_GROUND_STATE,
7132CASE_GROUND_STATE,
7133CASE_GROUND_STATE,
7134/*      cedilla         onesuperior     masculine       guillemotright  */
7135CASE_GROUND_STATE,
7136CASE_GROUND_STATE,
7137CASE_GROUND_STATE,
7138CASE_GROUND_STATE,
7139/*      onequarter      onehalf         threequarters   questiondown    */
7140CASE_GROUND_STATE,
7141CASE_GROUND_STATE,
7142CASE_GROUND_STATE,
7143CASE_GROUND_STATE,
7144/*      Agrave          Aacute          Acircumflex     Atilde          */
7145CASE_UTF8,
7146CASE_GROUND_STATE,
7147CASE_GROUND_STATE,
7148CASE_GROUND_STATE,
7149/*      Adiaeresis      Aring           AE              Ccedilla        */
7150CASE_GROUND_STATE,
7151CASE_GROUND_STATE,
7152CASE_GROUND_STATE,
7153CASE_UTF8,
7154/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7155CASE_GROUND_STATE,
7156CASE_GROUND_STATE,
7157CASE_GROUND_STATE,
7158CASE_GROUND_STATE,
7159/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7160CASE_GROUND_STATE,
7161CASE_GROUND_STATE,
7162CASE_GROUND_STATE,
7163CASE_GROUND_STATE,
7164/*      Eth             Ntilde          Ograve          Oacute          */
7165CASE_GROUND_STATE,
7166CASE_GROUND_STATE,
7167CASE_GROUND_STATE,
7168CASE_GROUND_STATE,
7169/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7170CASE_GROUND_STATE,
7171CASE_GROUND_STATE,
7172CASE_GROUND_STATE,
7173CASE_GROUND_STATE,
7174/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7175CASE_GROUND_STATE,
7176CASE_GROUND_STATE,
7177CASE_GROUND_STATE,
7178CASE_GROUND_STATE,
7179/*      Udiaeresis      Yacute          Thorn           ssharp          */
7180CASE_GROUND_STATE,
7181CASE_GROUND_STATE,
7182CASE_GROUND_STATE,
7183CASE_GROUND_STATE,
7184/*      agrave          aacute          acircumflex     atilde          */
7185CASE_GROUND_STATE,
7186CASE_GROUND_STATE,
7187CASE_GROUND_STATE,
7188CASE_GROUND_STATE,
7189/*      adiaeresis      aring           ae              ccedilla        */
7190CASE_GROUND_STATE,
7191CASE_GROUND_STATE,
7192CASE_GROUND_STATE,
7193CASE_GROUND_STATE,
7194/*      egrave          eacute          ecircumflex     ediaeresis      */
7195CASE_GROUND_STATE,
7196CASE_GROUND_STATE,
7197CASE_GROUND_STATE,
7198CASE_GROUND_STATE,
7199/*      igrave          iacute          icircumflex     idiaeresis      */
7200CASE_GROUND_STATE,
7201CASE_GROUND_STATE,
7202CASE_GROUND_STATE,
7203CASE_GROUND_STATE,
7204/*      eth             ntilde          ograve          oacute          */
7205CASE_GROUND_STATE,
7206CASE_GROUND_STATE,
7207CASE_GROUND_STATE,
7208CASE_GROUND_STATE,
7209/*      ocircumflex     otilde          odiaeresis      division        */
7210CASE_GROUND_STATE,
7211CASE_GROUND_STATE,
7212CASE_GROUND_STATE,
7213CASE_GROUND_STATE,
7214/*      oslash          ugrave          uacute          ucircumflex     */
7215CASE_GROUND_STATE,
7216CASE_GROUND_STATE,
7217CASE_GROUND_STATE,
7218CASE_GROUND_STATE,
7219/*      udiaeresis      yacute          thorn           ydiaeresis      */
7220CASE_GROUND_STATE,
7221CASE_GROUND_STATE,
7222CASE_GROUND_STATE,
7223CASE_IGNORE,
7224};
7225
7226Const PARSE_T scs_pct_table[] =		/* SCS % */
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/*	FF		CR		SO		SI	*/
7244CASE_VMOT,
7245CASE_CR,
7246CASE_SO,
7247CASE_SI,
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_ESC_IGNORE,
7270CASE_ESC_IGNORE,
7271CASE_ESC_IGNORE,
7272CASE_ESC_IGNORE,
7273/*	$		%		&		'	*/
7274CASE_ESC_IGNORE,
7275CASE_ESC_IGNORE,
7276CASE_ESC_IGNORE,
7277CASE_ESC_IGNORE,
7278/*	(		)		*		+	*/
7279CASE_ESC_IGNORE,
7280CASE_ESC_IGNORE,
7281CASE_ESC_IGNORE,
7282CASE_ESC_IGNORE,
7283/*	,		-		.		/	*/
7284CASE_ESC_IGNORE,
7285CASE_ESC_IGNORE,
7286CASE_ESC_IGNORE,
7287CASE_ESC_IGNORE,
7288/*	0		1		2		3	*/
7289CASE_GSETS_PERCENT,
7290CASE_GROUND_STATE,
7291CASE_GSETS_PERCENT,
7292CASE_GSETS_PERCENT,
7293/*	4		5		6		7	*/
7294CASE_GROUND_STATE,
7295CASE_GSETS_PERCENT,
7296CASE_GSETS_PERCENT,
7297CASE_GROUND_STATE,
7298/*	8		9		:		;	*/
7299CASE_GROUND_STATE,
7300CASE_GROUND_STATE,
7301CASE_GROUND_STATE,
7302CASE_GROUND_STATE,
7303/*	<		=		>		?	*/
7304CASE_GROUND_STATE,
7305CASE_GSETS_PERCENT,
7306CASE_GROUND_STATE,
7307CASE_GROUND_STATE,
7308/*	@		A		B		C	*/
7309CASE_GROUND_STATE,
7310CASE_GROUND_STATE,
7311CASE_GROUND_STATE,
7312CASE_GROUND_STATE,
7313/*	D		E		F		G	*/
7314CASE_GROUND_STATE,
7315CASE_GROUND_STATE,
7316CASE_GROUND_STATE,
7317CASE_GROUND_STATE,
7318/*	H		I		J		K	*/
7319CASE_GROUND_STATE,
7320CASE_GROUND_STATE,
7321CASE_GROUND_STATE,
7322CASE_GROUND_STATE,
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_GROUND_STATE,
7341CASE_GROUND_STATE,
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_GROUND_STATE,
7390CASE_GROUND_STATE,
7391CASE_GROUND_STATE,
7392CASE_GROUND_STATE,
7393/*      0x84            0x85            0x86            0x87    */
7394CASE_IND,
7395CASE_NEL,
7396CASE_GROUND_STATE,
7397CASE_GROUND_STATE,
7398/*      0x88            0x89            0x8a            0x8b    */
7399CASE_HTS,
7400CASE_GROUND_STATE,
7401CASE_GROUND_STATE,
7402CASE_GROUND_STATE,
7403/*      0x8c            0x8d            0x8e            0x8f    */
7404CASE_GROUND_STATE,
7405CASE_RI,
7406CASE_SS2,
7407CASE_SS3,
7408/*      0x90            0x91            0x92            0x93    */
7409CASE_DCS,
7410CASE_GROUND_STATE,
7411CASE_GROUND_STATE,
7412CASE_GROUND_STATE,
7413/*      0x94            0x95            0x96            0x97    */
7414CASE_GROUND_STATE,
7415CASE_GROUND_STATE,
7416CASE_SPA,
7417CASE_EPA,
7418/*      0x98            0x99            0x9a            0x9b    */
7419CASE_SOS,
7420CASE_GROUND_STATE,
7421CASE_DECID,
7422CASE_CSI_STATE,
7423/*      0x9c            0x9d            0x9e            0x9f    */
7424CASE_ST,
7425CASE_OSC,
7426CASE_PM,
7427CASE_APC,
7428/*      nobreakspace    exclamdown      cent            sterling        */
7429CASE_ESC_IGNORE,
7430CASE_ESC_IGNORE,
7431CASE_ESC_IGNORE,
7432CASE_ESC_IGNORE,
7433/*      currency        yen             brokenbar       section         */
7434CASE_ESC_IGNORE,
7435CASE_ESC_IGNORE,
7436CASE_ESC_IGNORE,
7437CASE_ESC_IGNORE,
7438/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7439CASE_ESC_IGNORE,
7440CASE_ESC_IGNORE,
7441CASE_ESC_IGNORE,
7442CASE_ESC_IGNORE,
7443/*      notsign         hyphen          registered      macron          */
7444CASE_ESC_IGNORE,
7445CASE_ESC_IGNORE,
7446CASE_ESC_IGNORE,
7447CASE_ESC_IGNORE,
7448/*      degree          plusminus       twosuperior     threesuperior   */
7449CASE_GSETS_PERCENT,
7450CASE_GROUND_STATE,
7451CASE_GSETS_PERCENT,
7452CASE_GSETS_PERCENT,
7453/*      acute           mu              paragraph       periodcentered  */
7454CASE_GROUND_STATE,
7455CASE_GSETS_PERCENT,
7456CASE_GSETS_PERCENT,
7457CASE_GROUND_STATE,
7458/*      cedilla         onesuperior     masculine       guillemotright  */
7459CASE_GROUND_STATE,
7460CASE_GROUND_STATE,
7461CASE_GROUND_STATE,
7462CASE_GROUND_STATE,
7463/*      onequarter      onehalf         threequarters   questiondown    */
7464CASE_GROUND_STATE,
7465CASE_GSETS_PERCENT,
7466CASE_GROUND_STATE,
7467CASE_GROUND_STATE,
7468/*      Agrave          Aacute          Acircumflex     Atilde          */
7469CASE_GROUND_STATE,
7470CASE_GROUND_STATE,
7471CASE_GROUND_STATE,
7472CASE_GROUND_STATE,
7473/*      Adiaeresis      Aring           AE              Ccedilla        */
7474CASE_GROUND_STATE,
7475CASE_GROUND_STATE,
7476CASE_GROUND_STATE,
7477CASE_GROUND_STATE,
7478/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7479CASE_GROUND_STATE,
7480CASE_GROUND_STATE,
7481CASE_GROUND_STATE,
7482CASE_GROUND_STATE,
7483/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7484CASE_GROUND_STATE,
7485CASE_GROUND_STATE,
7486CASE_GROUND_STATE,
7487CASE_GROUND_STATE,
7488/*      Eth             Ntilde          Ograve          Oacute          */
7489CASE_GROUND_STATE,
7490CASE_GROUND_STATE,
7491CASE_GROUND_STATE,
7492CASE_GROUND_STATE,
7493/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7494CASE_GROUND_STATE,
7495CASE_GROUND_STATE,
7496CASE_GROUND_STATE,
7497CASE_GROUND_STATE,
7498/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7499CASE_GROUND_STATE,
7500CASE_GROUND_STATE,
7501CASE_GROUND_STATE,
7502CASE_GROUND_STATE,
7503/*      Udiaeresis      Yacute          Thorn           ssharp          */
7504CASE_GROUND_STATE,
7505CASE_GROUND_STATE,
7506CASE_GROUND_STATE,
7507CASE_GROUND_STATE,
7508/*      agrave          aacute          acircumflex     atilde          */
7509CASE_GROUND_STATE,
7510CASE_GROUND_STATE,
7511CASE_GROUND_STATE,
7512CASE_GROUND_STATE,
7513/*      adiaeresis      aring           ae              ccedilla        */
7514CASE_GROUND_STATE,
7515CASE_GROUND_STATE,
7516CASE_GROUND_STATE,
7517CASE_GROUND_STATE,
7518/*      egrave          eacute          ecircumflex     ediaeresis      */
7519CASE_GROUND_STATE,
7520CASE_GROUND_STATE,
7521CASE_GROUND_STATE,
7522CASE_GROUND_STATE,
7523/*      igrave          iacute          icircumflex     idiaeresis      */
7524CASE_GROUND_STATE,
7525CASE_GROUND_STATE,
7526CASE_GROUND_STATE,
7527CASE_GROUND_STATE,
7528/*      eth             ntilde          ograve          oacute          */
7529CASE_GROUND_STATE,
7530CASE_GROUND_STATE,
7531CASE_GROUND_STATE,
7532CASE_GROUND_STATE,
7533/*      ocircumflex     otilde          odiaeresis      division        */
7534CASE_GROUND_STATE,
7535CASE_GROUND_STATE,
7536CASE_GROUND_STATE,
7537CASE_GROUND_STATE,
7538/*      oslash          ugrave          uacute          ucircumflex     */
7539CASE_GROUND_STATE,
7540CASE_GROUND_STATE,
7541CASE_GROUND_STATE,
7542CASE_GROUND_STATE,
7543/*      udiaeresis      yacute          thorn           ydiaeresis      */
7544CASE_GROUND_STATE,
7545CASE_GROUND_STATE,
7546CASE_GROUND_STATE,
7547CASE_IGNORE,
7548};
7549#endif /* OPT_WIDE_CHARS */
7550
7551#if OPT_VT52_MODE
7552Const PARSE_T vt52_table[] =
7553{
7554/*	NUL		SOH		STX		ETX	*/
7555CASE_IGNORE,
7556CASE_IGNORE,
7557CASE_IGNORE,
7558CASE_IGNORE,
7559/*	EOT		ENQ		ACK		BEL	*/
7560CASE_IGNORE,
7561CASE_ENQ,
7562CASE_IGNORE,
7563CASE_BELL,
7564/*	BS		HT		NL		VT	*/
7565CASE_BS,
7566CASE_TAB,
7567CASE_VMOT,
7568CASE_VMOT,
7569/*	FF		CR		SO		SI	*/
7570CASE_VMOT,
7571CASE_CR,
7572CASE_IGNORE,
7573CASE_IGNORE,
7574/*	DLE		DC1		DC2		DC3	*/
7575CASE_IGNORE,
7576CASE_IGNORE,
7577CASE_IGNORE,
7578CASE_IGNORE,
7579/*	DC4		NAK		SYN		ETB	*/
7580CASE_IGNORE,
7581CASE_IGNORE,
7582CASE_IGNORE,
7583CASE_IGNORE,
7584/*	CAN		EM		SUB		ESC	*/
7585CASE_GROUND_STATE,
7586CASE_IGNORE,
7587CASE_GROUND_STATE,
7588CASE_ESC,
7589/*	FS		GS		RS		US	*/
7590CASE_IGNORE,
7591CASE_IGNORE,
7592CASE_IGNORE,
7593CASE_IGNORE,
7594/*	SP		!		"		#	*/
7595CASE_PRINT,
7596CASE_PRINT,
7597CASE_PRINT,
7598CASE_PRINT,
7599/*	$		%		&		'	*/
7600CASE_PRINT,
7601CASE_PRINT,
7602CASE_PRINT,
7603CASE_PRINT,
7604/*	(		)		*		+	*/
7605CASE_PRINT,
7606CASE_PRINT,
7607CASE_PRINT,
7608CASE_PRINT,
7609/*	,		-		.		/	*/
7610CASE_PRINT,
7611CASE_PRINT,
7612CASE_PRINT,
7613CASE_PRINT,
7614/*	0		1		2		3	*/
7615CASE_PRINT,
7616CASE_PRINT,
7617CASE_PRINT,
7618CASE_PRINT,
7619/*	4		5		6		7	*/
7620CASE_PRINT,
7621CASE_PRINT,
7622CASE_PRINT,
7623CASE_PRINT,
7624/*	8		9		:		;	*/
7625CASE_PRINT,
7626CASE_PRINT,
7627CASE_PRINT,
7628CASE_PRINT,
7629/*	<		=		>		?	*/
7630CASE_PRINT,
7631CASE_PRINT,
7632CASE_PRINT,
7633CASE_PRINT,
7634/*	@		A		B		C	*/
7635CASE_PRINT,
7636CASE_PRINT,
7637CASE_PRINT,
7638CASE_PRINT,
7639/*	D		E		F		G	*/
7640CASE_PRINT,
7641CASE_PRINT,
7642CASE_PRINT,
7643CASE_PRINT,
7644/*	H		I		J		K	*/
7645CASE_PRINT,
7646CASE_PRINT,
7647CASE_PRINT,
7648CASE_PRINT,
7649/*	L		M		N		O	*/
7650CASE_PRINT,
7651CASE_PRINT,
7652CASE_PRINT,
7653CASE_PRINT,
7654/*	P		Q		R		S	*/
7655CASE_PRINT,
7656CASE_PRINT,
7657CASE_PRINT,
7658CASE_PRINT,
7659/*	T		U		V		W	*/
7660CASE_PRINT,
7661CASE_PRINT,
7662CASE_PRINT,
7663CASE_PRINT,
7664/*	X		Y		Z		[	*/
7665CASE_PRINT,
7666CASE_PRINT,
7667CASE_PRINT,
7668CASE_PRINT,
7669/*	\		]		^		_	*/
7670CASE_PRINT,
7671CASE_PRINT,
7672CASE_PRINT,
7673CASE_PRINT,
7674/*	`		a		b		c	*/
7675CASE_PRINT,
7676CASE_PRINT,
7677CASE_PRINT,
7678CASE_PRINT,
7679/*	d		e		f		g	*/
7680CASE_PRINT,
7681CASE_PRINT,
7682CASE_PRINT,
7683CASE_PRINT,
7684/*	h		i		j		k	*/
7685CASE_PRINT,
7686CASE_PRINT,
7687CASE_PRINT,
7688CASE_PRINT,
7689/*	l		m		n		o	*/
7690CASE_PRINT,
7691CASE_PRINT,
7692CASE_PRINT,
7693CASE_PRINT,
7694/*	p		q		r		s	*/
7695CASE_PRINT,
7696CASE_PRINT,
7697CASE_PRINT,
7698CASE_PRINT,
7699/*	t		u		v		w	*/
7700CASE_PRINT,
7701CASE_PRINT,
7702CASE_PRINT,
7703CASE_PRINT,
7704/*	x		y		z		{	*/
7705CASE_PRINT,
7706CASE_PRINT,
7707CASE_PRINT,
7708CASE_PRINT,
7709/*	|		}		~		DEL	*/
7710CASE_PRINT,
7711CASE_PRINT,
7712CASE_PRINT,
7713CASE_IGNORE,
7714/*      0x80            0x81            0x82            0x83    */
7715CASE_IGNORE,
7716CASE_IGNORE,
7717CASE_IGNORE,
7718CASE_IGNORE,
7719/*      0x84            0x85            0x86            0x87    */
7720CASE_IGNORE,
7721CASE_IGNORE,
7722CASE_IGNORE,
7723CASE_IGNORE,
7724/*      0x88            0x89            0x8a            0x8b    */
7725CASE_IGNORE,
7726CASE_IGNORE,
7727CASE_IGNORE,
7728CASE_IGNORE,
7729/*      0x8c            0x8d            0x8e            0x8f    */
7730CASE_IGNORE,
7731CASE_IGNORE,
7732CASE_IGNORE,
7733CASE_IGNORE,
7734/*      0x90            0x91            0x92            0x93    */
7735CASE_IGNORE,
7736CASE_IGNORE,
7737CASE_IGNORE,
7738CASE_IGNORE,
7739/*      0x94            0x95            0x96            0x97    */
7740CASE_IGNORE,
7741CASE_IGNORE,
7742CASE_IGNORE,
7743CASE_IGNORE,
7744/*      0x98            0x99            0x9a            0x9b    */
7745CASE_IGNORE,
7746CASE_IGNORE,
7747CASE_IGNORE,
7748CASE_IGNORE,
7749/*      0x9c            0x9d            0x9e            0x9f    */
7750CASE_IGNORE,
7751CASE_IGNORE,
7752CASE_IGNORE,
7753CASE_IGNORE,
7754/*      nobreakspace    exclamdown      cent            sterling        */
7755CASE_IGNORE,
7756CASE_IGNORE,
7757CASE_IGNORE,
7758CASE_IGNORE,
7759/*      currency        yen             brokenbar       section         */
7760CASE_IGNORE,
7761CASE_IGNORE,
7762CASE_IGNORE,
7763CASE_IGNORE,
7764/*      diaeresis       copyright       ordfeminine     guillemotleft   */
7765CASE_IGNORE,
7766CASE_IGNORE,
7767CASE_IGNORE,
7768CASE_IGNORE,
7769/*      notsign         hyphen          registered      macron          */
7770CASE_IGNORE,
7771CASE_IGNORE,
7772CASE_IGNORE,
7773CASE_IGNORE,
7774/*      degree          plusminus       twosuperior     threesuperior   */
7775CASE_IGNORE,
7776CASE_IGNORE,
7777CASE_IGNORE,
7778CASE_IGNORE,
7779/*      acute           mu              paragraph       periodcentered  */
7780CASE_IGNORE,
7781CASE_IGNORE,
7782CASE_IGNORE,
7783CASE_IGNORE,
7784/*      cedilla         onesuperior     masculine       guillemotright  */
7785CASE_IGNORE,
7786CASE_IGNORE,
7787CASE_IGNORE,
7788CASE_IGNORE,
7789/*      onequarter      onehalf         threequarters   questiondown    */
7790CASE_IGNORE,
7791CASE_IGNORE,
7792CASE_IGNORE,
7793CASE_IGNORE,
7794/*      Agrave          Aacute          Acircumflex     Atilde          */
7795CASE_IGNORE,
7796CASE_IGNORE,
7797CASE_IGNORE,
7798CASE_IGNORE,
7799/*      Adiaeresis      Aring           AE              Ccedilla        */
7800CASE_IGNORE,
7801CASE_IGNORE,
7802CASE_IGNORE,
7803CASE_IGNORE,
7804/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
7805CASE_IGNORE,
7806CASE_IGNORE,
7807CASE_IGNORE,
7808CASE_IGNORE,
7809/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
7810CASE_IGNORE,
7811CASE_IGNORE,
7812CASE_IGNORE,
7813CASE_IGNORE,
7814/*      Eth             Ntilde          Ograve          Oacute          */
7815CASE_IGNORE,
7816CASE_IGNORE,
7817CASE_IGNORE,
7818CASE_IGNORE,
7819/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
7820CASE_IGNORE,
7821CASE_IGNORE,
7822CASE_IGNORE,
7823CASE_IGNORE,
7824/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
7825CASE_IGNORE,
7826CASE_IGNORE,
7827CASE_IGNORE,
7828CASE_IGNORE,
7829/*      Udiaeresis      Yacute          Thorn           ssharp          */
7830CASE_IGNORE,
7831CASE_IGNORE,
7832CASE_IGNORE,
7833CASE_IGNORE,
7834/*      agrave          aacute          acircumflex     atilde          */
7835CASE_IGNORE,
7836CASE_IGNORE,
7837CASE_IGNORE,
7838CASE_IGNORE,
7839/*      adiaeresis      aring           ae              ccedilla        */
7840CASE_IGNORE,
7841CASE_IGNORE,
7842CASE_IGNORE,
7843CASE_IGNORE,
7844/*      egrave          eacute          ecircumflex     ediaeresis      */
7845CASE_IGNORE,
7846CASE_IGNORE,
7847CASE_IGNORE,
7848CASE_IGNORE,
7849/*      igrave          iacute          icircumflex     idiaeresis      */
7850CASE_IGNORE,
7851CASE_IGNORE,
7852CASE_IGNORE,
7853CASE_IGNORE,
7854/*      eth             ntilde          ograve          oacute          */
7855CASE_IGNORE,
7856CASE_IGNORE,
7857CASE_IGNORE,
7858CASE_IGNORE,
7859/*      ocircumflex     otilde          odiaeresis      division        */
7860CASE_IGNORE,
7861CASE_IGNORE,
7862CASE_IGNORE,
7863CASE_IGNORE,
7864/*      oslash          ugrave          uacute          ucircumflex     */
7865CASE_IGNORE,
7866CASE_IGNORE,
7867CASE_IGNORE,
7868CASE_IGNORE,
7869/*      udiaeresis      yacute          thorn           ydiaeresis      */
7870CASE_IGNORE,
7871CASE_IGNORE,
7872CASE_IGNORE,
7873CASE_IGNORE,
7874};
7875
7876Const PARSE_T vt52_esc_table[] =
7877{
7878/*	NUL		SOH		STX		ETX	*/
7879CASE_IGNORE,
7880CASE_IGNORE,
7881CASE_IGNORE,
7882CASE_IGNORE,
7883/*	EOT		ENQ		ACK		BEL	*/
7884CASE_IGNORE,
7885CASE_ENQ,
7886CASE_IGNORE,
7887CASE_BELL,
7888/*	BS		HT		NL		VT	*/
7889CASE_BS,
7890CASE_TAB,
7891CASE_VMOT,
7892CASE_VMOT,
7893/*	FF		CR		SO		SI	*/
7894CASE_VMOT,
7895CASE_CR,
7896CASE_IGNORE,
7897CASE_IGNORE,
7898/*	DLE		DC1		DC2		DC3	*/
7899CASE_IGNORE,
7900CASE_IGNORE,
7901CASE_IGNORE,
7902CASE_IGNORE,
7903/*	DC4		NAK		SYN		ETB	*/
7904CASE_IGNORE,
7905CASE_IGNORE,
7906CASE_IGNORE,
7907CASE_IGNORE,
7908/*	CAN		EM		SUB		ESC	*/
7909CASE_GROUND_STATE,
7910CASE_IGNORE,
7911CASE_GROUND_STATE,
7912CASE_ESC,
7913/*	FS		GS		RS		US	*/
7914CASE_IGNORE,
7915CASE_IGNORE,
7916CASE_IGNORE,
7917CASE_IGNORE,
7918/*	SP		!		"		#	*/
7919CASE_VT52_IGNORE,
7920CASE_VT52_IGNORE,
7921CASE_VT52_IGNORE,
7922CASE_VT52_IGNORE,
7923/*	$		%		&		'	*/
7924CASE_VT52_IGNORE,
7925CASE_VT52_IGNORE,
7926CASE_VT52_IGNORE,
7927CASE_VT52_IGNORE,
7928/*	(		)		*		+	*/
7929CASE_VT52_IGNORE,
7930CASE_VT52_IGNORE,
7931CASE_VT52_IGNORE,
7932CASE_VT52_IGNORE,
7933/*	,		-		.		/	*/
7934CASE_VT52_IGNORE,
7935CASE_VT52_IGNORE,
7936CASE_VT52_IGNORE,
7937CASE_VT52_IGNORE,
7938/*	0		1		2		3	*/
7939CASE_GROUND_STATE,
7940CASE_GROUND_STATE,
7941CASE_GROUND_STATE,
7942CASE_GROUND_STATE,
7943/*	4		5		6		7	*/
7944CASE_GROUND_STATE,
7945CASE_GROUND_STATE,
7946CASE_GROUND_STATE,
7947CASE_GROUND_STATE,
7948/*	8		9		:		;	*/
7949CASE_GROUND_STATE,
7950CASE_GROUND_STATE,
7951CASE_GROUND_STATE,
7952CASE_GROUND_STATE,
7953/*	<		=		>		?	*/
7954CASE_VT52_FINISH,
7955CASE_DECKPAM,
7956CASE_DECKPNM,
7957CASE_GROUND_STATE,
7958/*	@		A		B		C	*/
7959CASE_GROUND_STATE,
7960CASE_CUU,
7961CASE_CUD,
7962CASE_CUF,
7963/*	D		E		F		G	*/
7964CASE_CUB,
7965CASE_GROUND_STATE,
7966CASE_SO,
7967CASE_SI,
7968/*	H		I		J		K	*/
7969CASE_CUP,
7970CASE_RI,
7971CASE_ED,
7972CASE_EL,
7973/*	L		M		N		O	*/
7974CASE_GROUND_STATE,
7975CASE_GROUND_STATE,
7976CASE_GROUND_STATE,
7977CASE_GROUND_STATE,
7978/*	P		Q		R		S	*/
7979CASE_GROUND_STATE,
7980CASE_GROUND_STATE,
7981CASE_GROUND_STATE,
7982CASE_GROUND_STATE,
7983/*	T		U		V		W	*/
7984CASE_GROUND_STATE,
7985CASE_GROUND_STATE,
7986CASE_GROUND_STATE,
7987CASE_GROUND_STATE,
7988/*	X		Y		Z		[	*/
7989CASE_GROUND_STATE,
7990CASE_VT52_CUP,
7991CASE_DECID,
7992CASE_GROUND_STATE,
7993/*	\		]		^		_	*/
7994CASE_GROUND_STATE,
7995CASE_GROUND_STATE,
7996CASE_GROUND_STATE,
7997CASE_GROUND_STATE,
7998/*	`		a		b		c	*/
7999CASE_GROUND_STATE,
8000CASE_GROUND_STATE,
8001CASE_GROUND_STATE,
8002CASE_GROUND_STATE,
8003/*	d		e		f		g	*/
8004CASE_GROUND_STATE,
8005CASE_GROUND_STATE,
8006CASE_GROUND_STATE,
8007CASE_GROUND_STATE,
8008/*	h		i		j		k	*/
8009CASE_GROUND_STATE,
8010CASE_GROUND_STATE,
8011CASE_GROUND_STATE,
8012CASE_GROUND_STATE,
8013/*	l		m		n		o	*/
8014CASE_GROUND_STATE,
8015CASE_GROUND_STATE,
8016CASE_GROUND_STATE,
8017CASE_GROUND_STATE,
8018/*	p		q		r		s	*/
8019CASE_GROUND_STATE,
8020CASE_GROUND_STATE,
8021CASE_GROUND_STATE,
8022CASE_GROUND_STATE,
8023/*	t		u		v		w	*/
8024CASE_GROUND_STATE,
8025CASE_GROUND_STATE,
8026CASE_GROUND_STATE,
8027CASE_GROUND_STATE,
8028/*	x		y		z		{	*/
8029CASE_GROUND_STATE,
8030CASE_GROUND_STATE,
8031CASE_GROUND_STATE,
8032CASE_GROUND_STATE,
8033/*	|		}		~		DEL	*/
8034CASE_GROUND_STATE,
8035CASE_GROUND_STATE,
8036CASE_GROUND_STATE,
8037CASE_IGNORE,
8038/*      0x80            0x81            0x82            0x83    */
8039CASE_IGNORE,
8040CASE_IGNORE,
8041CASE_IGNORE,
8042CASE_IGNORE,
8043/*      0x84            0x85            0x86            0x87    */
8044CASE_IGNORE,
8045CASE_IGNORE,
8046CASE_IGNORE,
8047CASE_IGNORE,
8048/*      0x88            0x89            0x8a            0x8b    */
8049CASE_IGNORE,
8050CASE_IGNORE,
8051CASE_IGNORE,
8052CASE_IGNORE,
8053/*      0x8c            0x8d            0x8e            0x8f    */
8054CASE_IGNORE,
8055CASE_IGNORE,
8056CASE_IGNORE,
8057CASE_IGNORE,
8058/*      0x90            0x91            0x92            0x93    */
8059CASE_IGNORE,
8060CASE_IGNORE,
8061CASE_IGNORE,
8062CASE_IGNORE,
8063/*      0x94            0x95            0x96            0x97    */
8064CASE_IGNORE,
8065CASE_IGNORE,
8066CASE_IGNORE,
8067CASE_IGNORE,
8068/*      0x98            0x99            0x9a            0x9b    */
8069CASE_IGNORE,
8070CASE_IGNORE,
8071CASE_IGNORE,
8072CASE_IGNORE,
8073/*      0x9c            0x9d            0x9e            0x9f    */
8074CASE_IGNORE,
8075CASE_IGNORE,
8076CASE_IGNORE,
8077CASE_IGNORE,
8078/*      nobreakspace    exclamdown      cent            sterling        */
8079CASE_IGNORE,
8080CASE_IGNORE,
8081CASE_IGNORE,
8082CASE_IGNORE,
8083/*      currency        yen             brokenbar       section         */
8084CASE_IGNORE,
8085CASE_IGNORE,
8086CASE_IGNORE,
8087CASE_IGNORE,
8088/*      diaeresis       copyright       ordfeminine     guillemotleft   */
8089CASE_IGNORE,
8090CASE_IGNORE,
8091CASE_IGNORE,
8092CASE_IGNORE,
8093/*      notsign         hyphen          registered      macron          */
8094CASE_IGNORE,
8095CASE_IGNORE,
8096CASE_IGNORE,
8097CASE_IGNORE,
8098/*      degree          plusminus       twosuperior     threesuperior   */
8099CASE_IGNORE,
8100CASE_IGNORE,
8101CASE_IGNORE,
8102CASE_IGNORE,
8103/*      acute           mu              paragraph       periodcentered  */
8104CASE_IGNORE,
8105CASE_IGNORE,
8106CASE_IGNORE,
8107CASE_IGNORE,
8108/*      cedilla         onesuperior     masculine       guillemotright  */
8109CASE_IGNORE,
8110CASE_IGNORE,
8111CASE_IGNORE,
8112CASE_IGNORE,
8113/*      onequarter      onehalf         threequarters   questiondown    */
8114CASE_IGNORE,
8115CASE_IGNORE,
8116CASE_IGNORE,
8117CASE_IGNORE,
8118/*      Agrave          Aacute          Acircumflex     Atilde          */
8119CASE_IGNORE,
8120CASE_IGNORE,
8121CASE_IGNORE,
8122CASE_IGNORE,
8123/*      Adiaeresis      Aring           AE              Ccedilla        */
8124CASE_IGNORE,
8125CASE_IGNORE,
8126CASE_IGNORE,
8127CASE_IGNORE,
8128/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
8129CASE_IGNORE,
8130CASE_IGNORE,
8131CASE_IGNORE,
8132CASE_IGNORE,
8133/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
8134CASE_IGNORE,
8135CASE_IGNORE,
8136CASE_IGNORE,
8137CASE_IGNORE,
8138/*      Eth             Ntilde          Ograve          Oacute          */
8139CASE_IGNORE,
8140CASE_IGNORE,
8141CASE_IGNORE,
8142CASE_IGNORE,
8143/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
8144CASE_IGNORE,
8145CASE_IGNORE,
8146CASE_IGNORE,
8147CASE_IGNORE,
8148/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
8149CASE_IGNORE,
8150CASE_IGNORE,
8151CASE_IGNORE,
8152CASE_IGNORE,
8153/*      Udiaeresis      Yacute          Thorn           ssharp          */
8154CASE_IGNORE,
8155CASE_IGNORE,
8156CASE_IGNORE,
8157CASE_IGNORE,
8158/*      agrave          aacute          acircumflex     atilde          */
8159CASE_IGNORE,
8160CASE_IGNORE,
8161CASE_IGNORE,
8162CASE_IGNORE,
8163/*      adiaeresis      aring           ae              ccedilla        */
8164CASE_IGNORE,
8165CASE_IGNORE,
8166CASE_IGNORE,
8167CASE_IGNORE,
8168/*      egrave          eacute          ecircumflex     ediaeresis      */
8169CASE_IGNORE,
8170CASE_IGNORE,
8171CASE_IGNORE,
8172CASE_IGNORE,
8173/*      igrave          iacute          icircumflex     idiaeresis      */
8174CASE_IGNORE,
8175CASE_IGNORE,
8176CASE_IGNORE,
8177CASE_IGNORE,
8178/*      eth             ntilde          ograve          oacute          */
8179CASE_IGNORE,
8180CASE_IGNORE,
8181CASE_IGNORE,
8182CASE_IGNORE,
8183/*      ocircumflex     otilde          odiaeresis      division        */
8184CASE_IGNORE,
8185CASE_IGNORE,
8186CASE_IGNORE,
8187CASE_IGNORE,
8188/*      oslash          ugrave          uacute          ucircumflex     */
8189CASE_IGNORE,
8190CASE_IGNORE,
8191CASE_IGNORE,
8192CASE_IGNORE,
8193/*      udiaeresis      yacute          thorn           ydiaeresis      */
8194CASE_IGNORE,
8195CASE_IGNORE,
8196CASE_IGNORE,
8197CASE_IGNORE,
8198};
8199
8200Const PARSE_T vt52_ignore_table[] =
8201{
8202/*	NUL		SOH		STX		ETX	*/
8203CASE_IGNORE,
8204CASE_IGNORE,
8205CASE_IGNORE,
8206CASE_IGNORE,
8207/*	EOT		ENQ		ACK		BEL	*/
8208CASE_IGNORE,
8209CASE_ENQ,
8210CASE_IGNORE,
8211CASE_BELL,
8212/*	BS		HT		NL		VT	*/
8213CASE_BS,
8214CASE_TAB,
8215CASE_VMOT,
8216CASE_VMOT,
8217/*	FF		CR		SO		SI	*/
8218CASE_VMOT,
8219CASE_CR,
8220CASE_IGNORE,
8221CASE_IGNORE,
8222/*	DLE		DC1		DC2		DC3	*/
8223CASE_IGNORE,
8224CASE_IGNORE,
8225CASE_IGNORE,
8226CASE_IGNORE,
8227/*	DC4		NAK		SYN		ETB	*/
8228CASE_IGNORE,
8229CASE_IGNORE,
8230CASE_IGNORE,
8231CASE_IGNORE,
8232/*	CAN		EM		SUB		ESC	*/
8233CASE_GROUND_STATE,
8234CASE_IGNORE,
8235CASE_GROUND_STATE,
8236CASE_ESC,
8237/*	FS		GS		RS		US	*/
8238CASE_IGNORE,
8239CASE_IGNORE,
8240CASE_IGNORE,
8241CASE_IGNORE,
8242/*	SP		!		"		#	*/
8243CASE_IGNORE,
8244CASE_IGNORE,
8245CASE_IGNORE,
8246CASE_IGNORE,
8247/*	$		%		&		'	*/
8248CASE_IGNORE,
8249CASE_IGNORE,
8250CASE_IGNORE,
8251CASE_IGNORE,
8252/*	(		)		*		+	*/
8253CASE_IGNORE,
8254CASE_IGNORE,
8255CASE_IGNORE,
8256CASE_IGNORE,
8257/*	,		-		.		/	*/
8258CASE_IGNORE,
8259CASE_IGNORE,
8260CASE_IGNORE,
8261CASE_IGNORE,
8262/*	0		1		2		3	*/
8263CASE_GROUND_STATE,
8264CASE_GROUND_STATE,
8265CASE_GROUND_STATE,
8266CASE_GROUND_STATE,
8267/*	4		5		6		7	*/
8268CASE_GROUND_STATE,
8269CASE_GROUND_STATE,
8270CASE_GROUND_STATE,
8271CASE_GROUND_STATE,
8272/*	8		9		:		;	*/
8273CASE_GROUND_STATE,
8274CASE_GROUND_STATE,
8275CASE_GROUND_STATE,
8276CASE_GROUND_STATE,
8277/*	<		=		>		?	*/
8278CASE_GROUND_STATE,
8279CASE_GROUND_STATE,
8280CASE_GROUND_STATE,
8281CASE_GROUND_STATE,
8282/*	@		A		B		C	*/
8283CASE_GROUND_STATE,
8284CASE_GROUND_STATE,
8285CASE_GROUND_STATE,
8286CASE_GROUND_STATE,
8287/*	D		E		F		G	*/
8288CASE_GROUND_STATE,
8289CASE_GROUND_STATE,
8290CASE_GROUND_STATE,
8291CASE_GROUND_STATE,
8292/*	H		I		J		K	*/
8293CASE_GROUND_STATE,
8294CASE_GROUND_STATE,
8295CASE_GROUND_STATE,
8296CASE_GROUND_STATE,
8297/*	L		M		N		O	*/
8298CASE_GROUND_STATE,
8299CASE_GROUND_STATE,
8300CASE_GROUND_STATE,
8301CASE_GROUND_STATE,
8302/*	P		Q		R		S	*/
8303CASE_GROUND_STATE,
8304CASE_GROUND_STATE,
8305CASE_GROUND_STATE,
8306CASE_GROUND_STATE,
8307/*	T		U		V		W	*/
8308CASE_GROUND_STATE,
8309CASE_GROUND_STATE,
8310CASE_GROUND_STATE,
8311CASE_GROUND_STATE,
8312/*	X		Y		Z		[	*/
8313CASE_GROUND_STATE,
8314CASE_GROUND_STATE,
8315CASE_GROUND_STATE,
8316CASE_GROUND_STATE,
8317/*	\		]		^		_	*/
8318CASE_GROUND_STATE,
8319CASE_GROUND_STATE,
8320CASE_GROUND_STATE,
8321CASE_GROUND_STATE,
8322/*	`		a		b		c	*/
8323CASE_GROUND_STATE,
8324CASE_GROUND_STATE,
8325CASE_GROUND_STATE,
8326CASE_GROUND_STATE,
8327/*	d		e		f		g	*/
8328CASE_GROUND_STATE,
8329CASE_GROUND_STATE,
8330CASE_GROUND_STATE,
8331CASE_GROUND_STATE,
8332/*	h		i		j		k	*/
8333CASE_GROUND_STATE,
8334CASE_GROUND_STATE,
8335CASE_GROUND_STATE,
8336CASE_GROUND_STATE,
8337/*	l		m		n		o	*/
8338CASE_GROUND_STATE,
8339CASE_GROUND_STATE,
8340CASE_GROUND_STATE,
8341CASE_GROUND_STATE,
8342/*	p		q		r		s	*/
8343CASE_GROUND_STATE,
8344CASE_GROUND_STATE,
8345CASE_GROUND_STATE,
8346CASE_GROUND_STATE,
8347/*	t		u		v		w	*/
8348CASE_GROUND_STATE,
8349CASE_GROUND_STATE,
8350CASE_GROUND_STATE,
8351CASE_GROUND_STATE,
8352/*	x		y		z		{	*/
8353CASE_GROUND_STATE,
8354CASE_GROUND_STATE,
8355CASE_GROUND_STATE,
8356CASE_GROUND_STATE,
8357/*	|		}		~		DEL	*/
8358CASE_GROUND_STATE,
8359CASE_GROUND_STATE,
8360CASE_GROUND_STATE,
8361CASE_IGNORE,
8362/*      0x80            0x81            0x82            0x83    */
8363CASE_IGNORE,
8364CASE_IGNORE,
8365CASE_IGNORE,
8366CASE_IGNORE,
8367/*      0x84            0x85            0x86            0x87    */
8368CASE_IGNORE,
8369CASE_IGNORE,
8370CASE_IGNORE,
8371CASE_IGNORE,
8372/*      0x88            0x89            0x8a            0x8b    */
8373CASE_IGNORE,
8374CASE_IGNORE,
8375CASE_IGNORE,
8376CASE_IGNORE,
8377/*      0x8c            0x8d            0x8e            0x8f    */
8378CASE_IGNORE,
8379CASE_IGNORE,
8380CASE_IGNORE,
8381CASE_IGNORE,
8382/*      0x90            0x91            0x92            0x93    */
8383CASE_IGNORE,
8384CASE_IGNORE,
8385CASE_IGNORE,
8386CASE_IGNORE,
8387/*      0x94            0x95            0x96            0x97    */
8388CASE_IGNORE,
8389CASE_IGNORE,
8390CASE_IGNORE,
8391CASE_IGNORE,
8392/*      0x98            0x99            0x9a            0x9b    */
8393CASE_IGNORE,
8394CASE_IGNORE,
8395CASE_IGNORE,
8396CASE_IGNORE,
8397/*      0x9c            0x9d            0x9e            0x9f    */
8398CASE_IGNORE,
8399CASE_IGNORE,
8400CASE_IGNORE,
8401CASE_IGNORE,
8402/*      nobreakspace    exclamdown      cent            sterling        */
8403CASE_IGNORE,
8404CASE_IGNORE,
8405CASE_IGNORE,
8406CASE_IGNORE,
8407/*      currency        yen             brokenbar       section         */
8408CASE_IGNORE,
8409CASE_IGNORE,
8410CASE_IGNORE,
8411CASE_IGNORE,
8412/*      diaeresis       copyright       ordfeminine     guillemotleft   */
8413CASE_IGNORE,
8414CASE_IGNORE,
8415CASE_IGNORE,
8416CASE_IGNORE,
8417/*      notsign         hyphen          registered      macron          */
8418CASE_IGNORE,
8419CASE_IGNORE,
8420CASE_IGNORE,
8421CASE_IGNORE,
8422/*      degree          plusminus       twosuperior     threesuperior   */
8423CASE_IGNORE,
8424CASE_IGNORE,
8425CASE_IGNORE,
8426CASE_IGNORE,
8427/*      acute           mu              paragraph       periodcentered  */
8428CASE_IGNORE,
8429CASE_IGNORE,
8430CASE_IGNORE,
8431CASE_IGNORE,
8432/*      cedilla         onesuperior     masculine       guillemotright  */
8433CASE_IGNORE,
8434CASE_IGNORE,
8435CASE_IGNORE,
8436CASE_IGNORE,
8437/*      onequarter      onehalf         threequarters   questiondown    */
8438CASE_IGNORE,
8439CASE_IGNORE,
8440CASE_IGNORE,
8441CASE_IGNORE,
8442/*      Agrave          Aacute          Acircumflex     Atilde          */
8443CASE_IGNORE,
8444CASE_IGNORE,
8445CASE_IGNORE,
8446CASE_IGNORE,
8447/*      Adiaeresis      Aring           AE              Ccedilla        */
8448CASE_IGNORE,
8449CASE_IGNORE,
8450CASE_IGNORE,
8451CASE_IGNORE,
8452/*      Egrave          Eacute          Ecircumflex     Ediaeresis      */
8453CASE_IGNORE,
8454CASE_IGNORE,
8455CASE_IGNORE,
8456CASE_IGNORE,
8457/*      Igrave          Iacute          Icircumflex     Idiaeresis      */
8458CASE_IGNORE,
8459CASE_IGNORE,
8460CASE_IGNORE,
8461CASE_IGNORE,
8462/*      Eth             Ntilde          Ograve          Oacute          */
8463CASE_IGNORE,
8464CASE_IGNORE,
8465CASE_IGNORE,
8466CASE_IGNORE,
8467/*      Ocircumflex     Otilde          Odiaeresis      multiply        */
8468CASE_IGNORE,
8469CASE_IGNORE,
8470CASE_IGNORE,
8471CASE_IGNORE,
8472/*      Ooblique        Ugrave          Uacute          Ucircumflex     */
8473CASE_IGNORE,
8474CASE_IGNORE,
8475CASE_IGNORE,
8476CASE_IGNORE,
8477/*      Udiaeresis      Yacute          Thorn           ssharp          */
8478CASE_IGNORE,
8479CASE_IGNORE,
8480CASE_IGNORE,
8481CASE_IGNORE,
8482/*      agrave          aacute          acircumflex     atilde          */
8483CASE_IGNORE,
8484CASE_IGNORE,
8485CASE_IGNORE,
8486CASE_IGNORE,
8487/*      adiaeresis      aring           ae              ccedilla        */
8488CASE_IGNORE,
8489CASE_IGNORE,
8490CASE_IGNORE,
8491CASE_IGNORE,
8492/*      egrave          eacute          ecircumflex     ediaeresis      */
8493CASE_IGNORE,
8494CASE_IGNORE,
8495CASE_IGNORE,
8496CASE_IGNORE,
8497/*      igrave          iacute          icircumflex     idiaeresis      */
8498CASE_IGNORE,
8499CASE_IGNORE,
8500CASE_IGNORE,
8501CASE_IGNORE,
8502/*      eth             ntilde          ograve          oacute          */
8503CASE_IGNORE,
8504CASE_IGNORE,
8505CASE_IGNORE,
8506CASE_IGNORE,
8507/*      ocircumflex     otilde          odiaeresis      division        */
8508CASE_IGNORE,
8509CASE_IGNORE,
8510CASE_IGNORE,
8511CASE_IGNORE,
8512/*      oslash          ugrave          uacute          ucircumflex     */
8513CASE_IGNORE,
8514CASE_IGNORE,
8515CASE_IGNORE,
8516CASE_IGNORE,
8517/*      udiaeresis      yacute          thorn           ydiaeresis      */
8518CASE_IGNORE,
8519CASE_IGNORE,
8520CASE_IGNORE,
8521CASE_IGNORE,
8522};
8523#endif /* OPT_VT52_MODE */
8524/* *INDENT-ON* */
8525