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