summaryrefslogtreecommitdiff
path: root/gs/base/scanchar.h
diff options
context:
space:
mode:
authorRalph Giles <ralph.giles@artifex.com>2008-08-29 18:46:21 +0000
committerRalph Giles <ralph.giles@artifex.com>2008-08-29 18:46:21 +0000
commit6ff2582d038f99b79178082b200bdfe73f734456 (patch)
tree6db04fc72813760fdc6912a15875ad83d57943df /gs/base/scanchar.h
parent9d36ee856e41244d3cf0469fc0004d21e6911994 (diff)
Split the source tree into two new directories.
PSSRC files are now in 'gs/psi'. GLSRC files are now in 'gs/base'. This is to facilitate build modularization and merging in the ghostpdl tree. NOTE: msvc32.mak is now in psi, not src. git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@9048 a1074d23-0009-0410-80fe-cf8c14f379e6
Diffstat (limited to 'gs/base/scanchar.h')
-rw-r--r--gs/base/scanchar.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/gs/base/scanchar.h b/gs/base/scanchar.h
new file mode 100644
index 000000000..a8fc1ee9a
--- /dev/null
+++ b/gs/base/scanchar.h
@@ -0,0 +1,65 @@
+/* Copyright (C) 2001-2006 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied, modified
+ or distributed except as expressly authorized under the terms of that
+ license. Refer to licensing information at http://www.artifex.com/
+ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+*/
+
+/* $Id$ */
+/* Definitions for token scanner character type table */
+/* Requires scommon.h */
+
+#ifndef scanchar_INCLUDED
+# define scanchar_INCLUDED
+
+/*
+ * An array for fast scanning of names, numbers, and hex strings.
+ * Indexed by character code (including exceptions), it contains:
+ * 0 - max_radix-1 for valid digits,
+ * ctype_name for other characters valid in names,
+ * ctype_btoken for characters introducing binary tokens
+ * (if the binary token feature is enabled),
+ * ctype_space for whitespace characters,
+ * ctype_exception for exceptions (see scommon.h), and
+ * ctype_other for everything else.
+ * Exceptions are negative values; we bias the table origin accordingly.
+ *
+ * NOTE: This table is defined in iscantab.c and used in a variety of places.
+ * If any of the values below change, you must edit the table.
+ */
+extern const byte scan_char_array[max_stream_exception + 256];
+
+#define scan_char_decoder (&scan_char_array[max_stream_exception])
+#define min_radix 2
+#define max_radix 36
+#define ctype_name 100
+#define ctype_btoken 101
+#define ctype_space 102
+#define ctype_other 103
+#define ctype_exception 104
+/* Special characters with no \xxx representation */
+#define char_NULL 0
+#define char_EOT 004 /* ^D, job delimiter */
+#define char_VT 013 /* ^K, vertical tab */
+#define char_DOS_EOF 032 /* ^Z */
+/*
+ * Most systems define '\n' as 0x0a and '\r' as 0x0d; however, OS-9
+ * has '\n' = '\r' = 0x0d and '\l' = 0x0a. To deal with this,
+ * we introduce abstract characters char_CR and char_EOL such that
+ * any of [char_CR], [char_CR char_EOL], or [char_EOL] is recognized
+ * as an end-of-line sequence.
+ */
+#define char_CR '\r'
+#if '\r' == '\n'
+# define char_EOL 0x0a /* non-OS-9 compilers complain about '\l' */
+#else
+# define char_EOL '\n'
+#endif
+
+#endif /* scanchar_INCLUDED */