home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD1.bin / gnu / src / baseline / jove-4.14.6.lha / jove-4.14.6 / ctype.h < prev    next >
C/C++ Source or Header  |  1992-01-10  |  2KB  |  53 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
  3.  * is provided to you without charge, and with no warranty.  You may give  *
  4.  * away copies of JOVE, including sources, provided that this notice is    *
  5.  * included in all the files.                                              *
  6.  ***************************************************************************/
  7.  
  8. #define    C_UPPER    01    /* UPPER case */
  9. #define    C_LOWER    02    /* LOWER case */
  10. #define    C_DIGIT    04    /* DIGIT */
  11. #define    C_PUNCT    010    /* PUNCTuation */
  12. #define    C_CTRL    020    /* ConTRoL */
  13. #define    C_WORD    040    /* WORD */
  14. #define    C_BRA    0100    /* open BRAket */
  15. #define    C_KET    0200    /* close braKET */
  16.  
  17. extern const unsigned char    *SyntaxTable;    /* CharTable[?] */
  18. #define    jiswhite(c)    (jisspace(c))
  19. #define    jisword(c)    (SyntaxTable[c]&C_WORD)
  20. #define    jisalpha(c)    (SyntaxTable[c]&(C_UPPER|C_LOWER))
  21. #define    jisupper(c)    (SyntaxTable[c]&C_UPPER)
  22. #define    jislower(c)    (SyntaxTable[c]&C_LOWER)
  23. #define    jisdigit(c)    (SyntaxTable[c]&C_DIGIT)
  24. #define    jisspace(c)    ((c) == ' ' || (c) == '\t')
  25. /* #define    jispunct(c)    (SyntaxTable[c]&C_PUNCT) */
  26.  
  27. #define    has_syntax(c,s)    (SyntaxTable[(c)&CHARMASK]&(s))
  28.  
  29.  
  30. /* #define    toascii(c)    ((c)&CHARMASK) */
  31. #define    jiscntrl(c)    ((CharTable[0][c&CHARMASK])&C_CTRL)
  32. #define    jisopenp(c)    ((CharTable[0][c&CHARMASK])&C_BRA)
  33. #define    jisclosep(c)    ((CharTable[0][c&CHARMASK])&C_KET)
  34.  
  35. #ifdef    ASCII7
  36. # define    jtolower(c)    ((c)|040)
  37. #else    /* !ASCII7 */
  38.   extern char jtolower proto((int /*char*/));
  39. #endif    /* !ASCII7 */
  40.  
  41. #define    WITH_TABLE(x) \
  42. { \
  43.     const unsigned char    *push = SyntaxTable; \
  44.     SyntaxTable = CharTable[(x)];
  45.  
  46. #define    END_TABLE() \
  47.     SyntaxTable = push; \
  48. }
  49.  
  50. extern const unsigned char    CharTable[NMAJORS][NCHARS];
  51. extern const char    RaiseTable[NCHARS];
  52. #define    CharUpcase(c)    (RaiseTable[c])
  53.