blob: 3f581065da59b96a0127fff80c52515436c1e400 [file] [log] [blame]
Guido van Rossumf70e43a1991-02-19 12:39:46 +00001
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00002/* Token types */
3
Fred Drake3cf4d2b2000-07-09 00:55:06 +00004#ifndef Py_TOKEN_H
5#define Py_TOKEN_H
6#ifdef __cplusplus
7extern "C" {
8#endif
9
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000010#define ENDMARKER 0
11#define NAME 1
12#define NUMBER 2
13#define STRING 3
14#define NEWLINE 4
15#define INDENT 5
16#define DEDENT 6
17#define LPAR 7
18#define RPAR 8
19#define LSQB 9
20#define RSQB 10
21#define COLON 11
22#define COMMA 12
23#define SEMI 13
24#define PLUS 14
25#define MINUS 15
26#define STAR 16
27#define SLASH 17
28#define VBAR 18
29#define AMPER 19
30#define LESS 20
31#define GREATER 21
32#define EQUAL 22
33#define DOT 23
34#define PERCENT 24
35#define BACKQUOTE 25
36#define LBRACE 26
37#define RBRACE 27
Guido van Rossum8883aaa1991-10-20 20:24:45 +000038#define EQEQUAL 28
39#define NOTEQUAL 29
40#define LESSEQUAL 30
41#define GREATEREQUAL 31
Guido van Rossum7928cd71991-10-24 14:59:31 +000042#define TILDE 32
43#define CIRCUMFLEX 33
44#define LEFTSHIFT 34
45#define RIGHTSHIFT 35
Guido van Rossum3d1f0951996-01-12 00:51:44 +000046#define DOUBLESTAR 36
Thomas Woutersdd8dbdb2000-08-24 20:09:45 +000047#define PLUSEQUAL 37
48#define MINEQUAL 38
49#define STAREQUAL 39
50#define SLASHEQUAL 40
51#define PERCENTEQUAL 41
52#define AMPEREQUAL 42
53#define VBAREQUAL 43
54#define CIRCUMFLEXEQUAL 44
55#define LEFTSHIFTEQUAL 45
56#define RIGHTSHIFTEQUAL 46
57#define DOUBLESTAREQUAL 47
Guido van Rossum4668b002001-08-08 05:00:18 +000058#define DOUBLESLASH 48
59#define DOUBLESLASHEQUAL 49
Guido van Rossumcaa63801995-01-12 11:45:45 +000060/* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */
Guido van Rossum4668b002001-08-08 05:00:18 +000061#define OP 50
62#define ERRORTOKEN 51
63#define N_TOKENS 52
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000064
65/* Special definitions for cooperation with parser */
66
67#define NT_OFFSET 256
68
69#define ISTERMINAL(x) ((x) < NT_OFFSET)
70#define ISNONTERMINAL(x) ((x) >= NT_OFFSET)
71#define ISEOF(x) ((x) == ENDMARKER)
72
73
Guido van Rossum43466ec1998-12-04 18:48:25 +000074extern DL_IMPORT(char *) _PyParser_TokenNames[]; /* Token names */
Fred Drake3cf4d2b2000-07-09 00:55:06 +000075extern DL_IMPORT(int) PyToken_OneChar(int);
76extern DL_IMPORT(int) PyToken_TwoChars(int, int);
Fred Drake926f1d62000-08-31 05:09:57 +000077extern DL_IMPORT(int) PyToken_ThreeChars(int, int, int);
Guido van Rossuma3309961993-07-28 09:05:47 +000078
79#ifdef __cplusplus
80}
81#endif
82#endif /* !Py_TOKEN_H */