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