/* @(#)ctype.h 1.2 */ /* 3.0 SID # 1.2 */ # /* * UNIX shell * * S. R. Bourne * Bell Telephone Laboratories * */ /* table 1 */ #define T_SUB 01 #define T_MET 02 #define T_SPC 04 #define T_DIP 010 #define T_EOF 020 #define T_EOR 040 #define T_QOT 0100 #define T_ESC 0200 /* table 2 */ #define T_BRC 01 #define T_DEF 02 #define T_AST 04 #define T_DIG 010 #define T_FNG 020 #define T_SHN 040 #define T_IDC 0100 #define T_SET 0200 /* for single chars */ #define _TAB (T_SPC) #define _SPC (T_SPC) #define _UPC (T_IDC) #define _LPC (T_IDC) #define _DIG (T_DIG) #define _EOF (T_EOF) #define _EOR (T_EOR) #define _BAR (T_DIP) #define _HAT (T_MET) #define _BRA (T_MET) #define _KET (T_MET) #define _SQB (T_FNG) #define _AMP (T_DIP) #define _SEM (T_DIP) #define _LT (T_DIP) #define _GT (T_DIP) #define _LQU (T_QOT|T_ESC) #define _BSL (T_ESC) #define _DQU (T_QOT) #define _DOL1 (T_SUB|T_ESC) #define _CBR T_BRC #define _CKT T_DEF #define _AST (T_AST|T_FNG) #define _EQ (T_DEF) #define _MIN (T_DEF|T_SHN) #define _PCS (T_SHN) #define _NUM (T_SHN) #define _DOL2 (T_SHN) #define _PLS (T_DEF|T_SET) #define _AT (T_AST) #define _QU (T_DEF|T_FNG|T_SHN) /* abbreviations for tests */ #define _IDCH (T_IDC|T_DIG) #define _META (T_SPC|T_DIP|T_MET|T_EOR) extern char _ctype1[]; /* nb these args are not call by value !!!! */ #define space(c) (((c)"E)==0 ANDF _ctype1[c]&(T_SPC)) #define eofmeta(c) (((c)"E)==0 ANDF _ctype1[c]&(_META|T_EOF)) #define qotchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_QOT)) #define eolchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_EOR|T_EOF)) #define dipchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_DIP)) #define subchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_SUB|T_QOT)) #define escchar(c) (((c)"E)==0 ANDF _ctype1[c]&(T_ESC)) extern char _ctype2[]; #define digit(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DIG)) #define dolchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_BRC|T_DIG|T_IDC|T_SHN)) #define defchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_DEF)) #define setchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_SET)) #define digchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST|T_DIG)) #define letter(c) (((c)"E)==0 ANDF _ctype2[c]&(T_IDC)) #define alphanum(c) (((c)"E)==0 ANDF _ctype2[c]&(_IDCH)) #define astchar(c) (((c)"E)==0 ANDF _ctype2[c]&(T_AST))