blob: 928177333485c7c6479ed8db93f69c97c3de8a43 [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 Rossumb6775db1994-08-01 11:34:53 +00008Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
Guido van Rossum9bfef441993-03-29 10:43:31 +00009Amsterdam, The 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 Rossum8883aaa1991-10-20 20:24:45 +000069/* Don't forget to update the table tok_name in tokenizer.c! */
Guido van Rossum7928cd71991-10-24 14:59:31 +000070#define OP 36
71#define ERRORTOKEN 37
72#define N_TOKENS 38
Guido van Rossum85a5fbb1990-10-14 12:07:46 +000073
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
83extern char *tok_name[]; /* Token names */
84extern int tok_1char PROTO((int));
Guido van Rossum8883aaa1991-10-20 20:24:45 +000085extern int tok_2char PROTO((int, int));
Guido van Rossuma3309961993-07-28 09:05:47 +000086
87#ifdef __cplusplus
88}
89#endif
90#endif /* !Py_TOKEN_H */