date and time created 88/07/21 17:34:12 by marc
authorMarc Teitelbaum <marc@ucbvax.Berkeley.EDU>
Fri, 22 Jul 1988 08:34:12 +0000 (00:34 -0800)
committerMarc Teitelbaum <marc@ucbvax.Berkeley.EDU>
Fri, 22 Jul 1988 08:34:12 +0000 (00:34 -0800)
SCCS-vsn: local/toolchest/ksh/sh/shtype.h 1.1

usr/src/local/toolchest/ksh/sh/shtype.h [new file with mode: 0644]

diff --git a/usr/src/local/toolchest/ksh/sh/shtype.h b/usr/src/local/toolchest/ksh/sh/shtype.h
new file mode 100644 (file)
index 0000000..bfc2425
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+
+ *      Copyright (c) 1984, 1985, 1986 AT&T
+ *      All Rights Reserved
+
+ *      THIS IS UNPUBLISHED PROPRIETARY SOURCE 
+ *      CODE OF AT&T.
+ *      The copyright notice above does not 
+ *      evidence any actual or intended
+ *      publication of such source code.
+
+ */
+/* @(#)shtype.h        1.1 */
+
+/*
+ *     UNIX shell
+ *
+ *     S. R. Bourne
+ *     AT&T Bell Laboratories
+ *
+ */
+
+#define const
+
+/* table 1 */
+#define QUOTE  (~0177)
+#define T_SUB  01
+#define T_MET  02
+#define        T_SPC   04
+#define T_DIP  010
+#define T_EXP  020     /* characters which require expansion or substitution */
+#define T_EOR  040
+#define T_QOT  0100
+#define T_ESC  0200
+
+/* table 2 */
+#define T_ALP  01      /* alpha, but not upper or lower */
+#define T_DEF  02
+#define T_AST  04      /* * or @ */
+#define        T_DIG   010     /* digit */
+#define T_UPC  020     /* uppercase only */
+#define T_SHN  040     /* legal parameter characters */
+#define        T_LPC   0100    /* lowercase only */
+#define T_SET  0200
+
+/* for single chars */
+#define _TAB   (T_SPC)
+#define _SPC   (T_SPC)
+#define _ALP   (T_ALP)
+#define _UPC   (T_UPC)
+#define _LPC   (T_LPC)
+#define _DIG   (T_DIG)
+#define _EOF   (T_EOR)
+#define _EOR   (T_EOR)
+#define _BAR   (T_DIP)
+#define _BRA   (T_MET|T_DIP)
+#define _KET   (T_MET)
+#define _AMP   (T_DIP)
+#define _SEM   (T_DIP)
+#define _LT    (T_DIP)
+#define _GT    (T_DIP)
+#define _LQU   (T_QOT|T_ESC|T_EXP)
+#define _QU1   T_EXP
+#define _AST1  T_EXP
+#define _BSL   (T_ESC)
+#define _DQU   (T_QOT)
+#define _DOL1  (T_SUB|T_ESC|T_EXP)
+
+#define _CBR   T_SHN
+#define _CKT   T_DEF
+#define _AST   (T_AST)
+#define _EQ    (T_DEF)
+#define _MIN   (T_DEF|T_SHN)
+#define _PCS   (T_DEF|T_SHN|T_SET)
+#define _NUM   (T_DEF|T_SHN|T_SET)
+#define _DOL2  (T_SHN)
+#define _PLS   (T_DEF|T_SET)
+#define _AT    (T_AST)
+#define _QU    (T_DEF|T_SHN)
+#define _LPAR  T_SHN
+#define _SS2   T_ALP
+#define _SS3   T_ALP
+
+/* abbreviations for tests */
+#define _IDCH  (T_UPC|T_LPC|T_DIG|T_ALP)
+#define _META  (T_SPC|T_DIP|T_MET|T_EOR)
+
+extern char    _ctype1[];
+
+/* these args are not call by value !!!! */
+#define        isspace(c)      (_ctype1[c]&(T_SPC))
+#define ismeta(c)      (_ctype1[c]&(_META))
+#define isqmeta(c)     (_ctype1[c]&(_META|T_QOT))
+#define qotchar(c)     (_ctype1[c]&(T_QOT))
+#define eolchar(c)     (_ctype1[c]&(T_EOR))
+#define dipchar(c)     (_ctype1[c]&(T_DIP))
+#define subchar(c)     (_ctype1[c]&(T_SUB|T_QOT))
+#define escchar(c)     (_ctype1[c]&(T_ESC))
+#define expchar(c)     (_ctype1[c]&(T_EXP|T_SPC))
+#define isexp(c)       (_ctype1[c]&T_EXP)
+
+extern char    _ctype2[];
+
+#define        isprint(c)      (((c)&0340) && ((c)!=0177))
+#define        isdigit(c)      (_ctype2[c]&(T_DIG))
+#define dolchar(c)     (_ctype2[c]&(T_AST|_IDCH|T_SHN))
+#define defchar(c)     (_ctype2[c]&(T_DEF))
+#define setchar(c)     (_ctype2[c]&(T_SET))
+#define digchar(c)     (_ctype2[c]&(T_AST|T_DIG))
+#define        isalpha(c)      (_ctype2[c]&(T_UPC|T_LPC|T_ALP))
+#define isalnum(c)     (_ctype2[c]&(_IDCH))
+#define isupper(c)     (_ctype2[c]&(T_UPC))
+#define islower(c)     (_ctype2[c]&(T_LPC))
+#define astchar(c)     (_ctype2[c]&(T_AST))
+#define toupper(c)     ((c) + 'A' - 'a')
+#define tolower(c)     ((c) + 'a' - 'A')