xref: /plan9/sys/src/cmd/gs/src/scantab.c (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1994, 1995, 1997 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: scantab.c,v 1.5 2004/09/06 07:26:41 ray Exp $ */
18 /* Scanner table for PostScript/PDF tokens */
19 #include "stdpre.h"
20 #include "scommon.h"
21 #include "scanchar.h"		/* defines interface */
22 
23 /* Define the character scanning table (see scanchar.h). */
24 const byte scan_char_array[max_stream_exception + 256] =
25 {stream_exception_repeat(ctype_exception),
26 		/* Control characters 0-31. */
27  ctype_space,			/* NULL - standard only in Level 2 */
28  ctype_name, ctype_name, ctype_name,
29  ctype_other,                 /* EOT == ctrl-d <04> */
30  ctype_name, ctype_name, ctype_name, ctype_name,
31  ctype_space,			/* TAB (\t) */
32  ctype_space,			/* LF (\n) */
33  ctype_name,
34  ctype_space,			/* FF (\f) */
35  ctype_space,			/* CR (\r) */
36  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
37  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
38  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
39  ctype_name, ctype_name, ctype_name,
40 		/* Printable characters 32-63 */
41  ctype_space,			/* space (\s) */
42  ctype_name, ctype_name, ctype_name, ctype_name,
43  ctype_other,			/* % */
44  ctype_name, ctype_name,
45  ctype_other,			/* ( */
46  ctype_other,			/* ) */
47  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
48  ctype_other,			/* / */
49  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,	/* digits 0-9 */
50  ctype_name, ctype_name,
51  ctype_other,			/* < */
52  ctype_name,
53  ctype_other,			/* > */
54  ctype_name,
55 		/* Printable characters 64-95 */
56  ctype_name,
57  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
58  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
59  30, 31, 32, 33, 34, 35,
60  ctype_other,			/* [ */
61  ctype_name,
62  ctype_other,			/* ] */
63  ctype_name, ctype_name,
64 		/* Printable characters 96-126 and DEL */
65  ctype_name,
66  10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
67  20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
68  30, 31, 32, 33, 34, 35,
69  ctype_other,			/* { */
70  ctype_name,
71  ctype_other,			/* } */
72  ctype_name, ctype_name,
73 		/* Characters 128-159, binary tokens */
74  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
75  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
76  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
77  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
78  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
79  ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken, ctype_btoken,
80  ctype_btoken, ctype_btoken,
81 		/* Characters 160-191, not defined */
82  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
83  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
84  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
85  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
86  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
87  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
88  ctype_name, ctype_name,
89 		/* Characters 192-223, not defined */
90  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
91  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
92  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
93  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
94  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
95  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
96  ctype_name, ctype_name,
97 		/* Characters 224-255, not defined */
98  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
99  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
100  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
101  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
102  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
103  ctype_name, ctype_name, ctype_name, ctype_name, ctype_name,
104  ctype_name, ctype_name
105 };
106