blob: a462c64db93cd1df957860a387239ecda93d7057 [file] [log] [blame]
Guido van Rossumf70e43a1991-02-19 12:39:46 +00001
Guido van Rossum85a5fbb1990-10-14 12:07:46 +00002/* Token types */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +00003#ifndef Py_LIMITED_API
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
R. David Murray051176f2010-10-18 00:15:31 +000010#undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */
11
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000012#define ENDMARKER 0
13#define NAME 1
14#define NUMBER 2
15#define STRING 3
16#define NEWLINE 4
17#define INDENT 5
18#define DEDENT 6
19#define LPAR 7
20#define RPAR 8
21#define LSQB 9
22#define RSQB 10
23#define COLON 11
24#define COMMA 12
25#define SEMI 13
26#define PLUS 14
27#define MINUS 15
28#define STAR 16
29#define SLASH 17
30#define VBAR 18
31#define AMPER 19
32#define LESS 20
33#define GREATER 21
34#define EQUAL 22
35#define DOT 23
36#define PERCENT 24
Neal Norwitz2eca4402006-08-29 04:40:24 +000037/* #define BACKQUOTE 25 */
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000038#define LBRACE 26
39#define RBRACE 27
Guido van Rossum8883aaa1991-10-20 20:24:45 +000040#define EQEQUAL 28
41#define NOTEQUAL 29
42#define LESSEQUAL 30
43#define GREATEREQUAL 31
Guido van Rossum7928cd71991-10-24 14:59:31 +000044#define TILDE 32
45#define CIRCUMFLEX 33
46#define LEFTSHIFT 34
47#define RIGHTSHIFT 35
Guido van Rossum3d1f0951996-01-12 00:51:44 +000048#define DOUBLESTAR 36
Thomas Woutersdd8dbdb2000-08-24 20:09:45 +000049#define PLUSEQUAL 37
50#define MINEQUAL 38
51#define STAREQUAL 39
52#define SLASHEQUAL 40
53#define PERCENTEQUAL 41
54#define AMPEREQUAL 42
55#define VBAREQUAL 43
56#define CIRCUMFLEXEQUAL 44
57#define LEFTSHIFTEQUAL 45
58#define RIGHTSHIFTEQUAL 46
59#define DOUBLESTAREQUAL 47
Guido van Rossum4668b002001-08-08 05:00:18 +000060#define DOUBLESLASH 48
61#define DOUBLESLASHEQUAL 49
Anthony Baxterc2a5a632004-08-02 06:10:11 +000062#define AT 50
Neal Norwitzc1505362006-12-28 06:47:50 +000063#define RARROW 51
Georg Brandldde00282007-03-18 19:01:53 +000064#define ELLIPSIS 52
Guido van Rossumcaa63801995-01-12 11:45:45 +000065/* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */
Georg Brandldde00282007-03-18 19:01:53 +000066#define OP 53
67#define ERRORTOKEN 54
68#define N_TOKENS 55
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000069
70/* Special definitions for cooperation with parser */
71
72#define NT_OFFSET 256
73
74#define ISTERMINAL(x) ((x) < NT_OFFSET)
75#define ISNONTERMINAL(x) ((x) >= NT_OFFSET)
76#define ISEOF(x) ((x) == ENDMARKER)
77
78
Mark Hammond91a681d2002-08-12 07:21:58 +000079PyAPI_DATA(char *) _PyParser_TokenNames[]; /* Token names */
80PyAPI_FUNC(int) PyToken_OneChar(int);
81PyAPI_FUNC(int) PyToken_TwoChars(int, int);
82PyAPI_FUNC(int) PyToken_ThreeChars(int, int, int);
Guido van Rossuma3309961993-07-28 09:05:47 +000083
84#ifdef __cplusplus
85}
86#endif
87#endif /* !Py_TOKEN_H */
Martin v. Löwis4d0d4712010-12-03 20:14:31 +000088#endif /* Py_LIMITED_API */