blob: 4558525fe113af1c1429dc28880c77966f53dc2c [file] [log] [blame]
Guido van Rossuma3309961993-07-28 09:05:47 +00001#ifndef Py_TOKEN_H
2#define Py_TOKEN_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
Guido van Rossumf70e43a1991-02-19 12:39:46 +00007/***********************************************************
Guido van Rossum5799b521995-01-04 19:06:22 +00008Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
9The Netherlands.
Guido van Rossumf70e43a1991-02-19 12:39:46 +000010
11 All Rights Reserved
12
13Permission to use, copy, modify, and distribute this software and its
14documentation for any purpose and without fee is hereby granted,
15provided that the above copyright notice appear in all copies and that
16both that copyright notice and this permission notice appear in
17supporting documentation, and that the names of Stichting Mathematisch
18Centrum or CWI not be used in advertising or publicity pertaining to
19distribution of the software without specific, written prior permission.
20
21STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
22THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
23FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
24FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
25WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
26ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
27OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
28
29******************************************************************/
30
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000031/* 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
Guido van Rossum8883aaa1991-10-20 20:24:45 +000061#define EQEQUAL 28
62#define NOTEQUAL 29
63#define LESSEQUAL 30
64#define GREATEREQUAL 31
Guido van Rossum7928cd71991-10-24 14:59:31 +000065#define TILDE 32
66#define CIRCUMFLEX 33
67#define LEFTSHIFT 34
68#define RIGHTSHIFT 35
Guido van Rossum3d1f0951996-01-12 00:51:44 +000069#define DOUBLESTAR 36
Guido van Rossumcaa63801995-01-12 11:45:45 +000070/* Don't forget to update the table _PyParser_TokenNames in tokenizer.c! */
Guido van Rossum3d1f0951996-01-12 00:51:44 +000071#define OP 37
72#define ERRORTOKEN 38
73#define N_TOKENS 39
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000074
75/* Special definitions for cooperation with parser */
76
77#define NT_OFFSET 256
78
79#define ISTERMINAL(x) ((x) < NT_OFFSET)
80#define ISNONTERMINAL(x) ((x) >= NT_OFFSET)
81#define ISEOF(x) ((x) == ENDMARKER)
82
83
Guido van Rossumcaa63801995-01-12 11:45:45 +000084extern char *_PyParser_TokenNames[]; /* Token names */
85extern int PyToken_OneChar Py_PROTO((int));
86extern int PyToken_TwoChars Py_PROTO((int, int));
Guido van Rossuma3309961993-07-28 09:05:47 +000087
88#ifdef __cplusplus
89}
90#endif
91#endif /* !Py_TOKEN_H */