home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / Include / token.h < prev    next >
C/C++ Source or Header  |  1994-01-02  |  3KB  |  91 lines

  1. #ifndef Py_TOKEN_H
  2. #define Py_TOKEN_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6.  
  7. /***********************************************************
  8. Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
  9. Amsterdam, The Netherlands.
  10.  
  11.                         All Rights Reserved
  12.  
  13. Permission to use, copy, modify, and distribute this software and its 
  14. documentation for any purpose and without fee is hereby granted, 
  15. provided that the above copyright notice appear in all copies and that
  16. both that copyright notice and this permission notice appear in 
  17. supporting documentation, and that the names of Stichting Mathematisch
  18. Centrum or CWI not be used in advertising or publicity pertaining to
  19. distribution of the software without specific, written prior permission.
  20.  
  21. STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
  22. THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  23. FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
  24. FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  25. WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  26. ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
  27. OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  28.  
  29. ******************************************************************/
  30.  
  31. /* Token types */
  32.  
  33. #define ENDMARKER    0
  34. #define NAME        1
  35. #define NUMBER        2
  36. #define STRING        3
  37. #define NEWLINE        4
  38. #define INDENT        5
  39. #define DEDENT        6
  40. #define LPAR        7
  41. #define RPAR        8
  42. #define LSQB        9
  43. #define RSQB        10
  44. #define COLON        11
  45. #define COMMA        12
  46. #define SEMI        13
  47. #define PLUS        14
  48. #define MINUS        15
  49. #define STAR        16
  50. #define SLASH        17
  51. #define VBAR        18
  52. #define AMPER        19
  53. #define LESS        20
  54. #define GREATER        21
  55. #define EQUAL        22
  56. #define DOT        23
  57. #define PERCENT        24
  58. #define BACKQUOTE    25
  59. #define LBRACE        26
  60. #define RBRACE        27
  61. #define EQEQUAL        28
  62. #define NOTEQUAL    29
  63. #define LESSEQUAL    30
  64. #define GREATEREQUAL    31
  65. #define TILDE        32
  66. #define CIRCUMFLEX    33
  67. #define LEFTSHIFT    34
  68. #define RIGHTSHIFT    35
  69. /* Don't forget to update the table tok_name in tokenizer.c! */
  70. #define OP        36
  71. #define ERRORTOKEN    37
  72. #define N_TOKENS    38
  73.  
  74. /* Special definitions for cooperation with parser */
  75.  
  76. #define NT_OFFSET        256
  77.  
  78. #define ISTERMINAL(x)        ((x) < NT_OFFSET)
  79. #define ISNONTERMINAL(x)    ((x) >= NT_OFFSET)
  80. #define ISEOF(x)        ((x) == ENDMARKER)
  81.  
  82.  
  83. extern char *tok_name[]; /* Token names */
  84. extern int tok_1char PROTO((int));
  85. extern int tok_2char PROTO((int, int));
  86.  
  87. #ifdef __cplusplus
  88. }
  89. #endif
  90. #endif /* !Py_TOKEN_H */
  91.