diff options
author | Ralph Giles <ralph.giles@artifex.com> | 2008-08-29 18:46:21 +0000 |
---|---|---|
committer | Ralph Giles <ralph.giles@artifex.com> | 2008-08-29 18:46:21 +0000 |
commit | 6ff2582d038f99b79178082b200bdfe73f734456 (patch) | |
tree | 6db04fc72813760fdc6912a15875ad83d57943df /gs/base/scanchar.h | |
parent | 9d36ee856e41244d3cf0469fc0004d21e6911994 (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.h | 65 |
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 */ |