Commit | Line | Data |
---|---|---|
c381ae9a C |
1 | /* Define constants and variables for communication with cp-parse.y. |
2 | Copyright (C) 1987, 1992 Free Software Foundation, Inc. | |
3 | Hacked by Michael Tiemann (tiemann@mcc.com) | |
4 | ||
5 | This file is part of GNU CC. | |
6 | ||
7 | GNU CC is distributed in the hope that it will be useful, | |
8 | but WITHOUT ANY WARRANTY. No author or distributor | |
9 | accepts responsibility to anyone for the consequences of using it | |
10 | or for whether it serves any particular purpose or works at all, | |
11 | unless he says so in writing. Refer to the GNU CC General Public | |
12 | License for full details. | |
13 | ||
14 | Everyone is granted permission to copy, modify and redistribute | |
15 | GNU CC, but only under the conditions described in the | |
16 | GNU CC General Public License. A copy of this license is | |
17 | supposed to have been given to you along with GNU CC so you | |
18 | can know your rights and responsibilities. It should be in a | |
19 | file named COPYING. Among other things, the copyright notice | |
20 | and this notice must be preserved on all copies. */ | |
21 | ||
22 | ||
23 | ||
24 | enum rid | |
25 | { | |
26 | RID_UNUSED, | |
27 | RID_INT, | |
28 | RID_CHAR, | |
29 | RID_FLOAT, | |
30 | RID_DOUBLE, | |
31 | RID_VOID, | |
32 | RID_UNUSED1, | |
33 | ||
34 | /* C++ extension */ | |
35 | RID_CLASS, | |
36 | RID_RECORD, | |
37 | RID_UNION, | |
38 | RID_ENUM, | |
39 | RID_LONGLONG, | |
40 | ||
41 | RID_UNSIGNED, | |
42 | RID_SHORT, | |
43 | RID_LONG, | |
44 | RID_AUTO, | |
45 | RID_STATIC, | |
46 | RID_EXTERN, | |
47 | RID_REGISTER, | |
48 | RID_TYPEDEF, | |
49 | RID_SIGNED, | |
50 | RID_CONST, | |
51 | RID_VOLATILE, | |
52 | RID_INLINE, | |
53 | RID_WCHAR, | |
54 | ||
55 | /* extensions */ | |
56 | RID_FRIEND, | |
57 | RID_VIRTUAL, | |
58 | RID_EXCEPTION, | |
59 | RID_RAISES, | |
60 | RID_PUBLIC, | |
61 | RID_PRIVATE, | |
62 | RID_PROTECTED, | |
63 | ||
64 | RID_MAX | |
65 | }; | |
66 | ||
67 | #define NORID RID_UNUSED | |
68 | ||
69 | #define RID_FIRST_MODIFIER RID_UNSIGNED | |
70 | ||
71 | /* The elements of `ridpointers' are identifier nodes | |
72 | for the reserved type names and storage classes. | |
73 | It is indexed by a RID_... value. */ | |
74 | extern tree ridpointers[(int) RID_MAX]; | |
75 | ||
76 | /* the declaration found for the last IDENTIFIER token read in. | |
77 | yylex must look this up to detect typedefs, which get token type TYPENAME, | |
78 | so it is left around in case the identifier is not a typedef but is | |
79 | used in a context which makes it a reference to a variable. */ | |
80 | extern tree lastiddecl; | |
81 | ||
82 | extern char *token_buffer; /* Pointer to token buffer. */ | |
83 | ||
84 | /* Back-door communication channel to the lexer. */ | |
85 | extern int looking_for_typename; | |
86 | ||
87 | extern tree make_pointer_declarator (), make_reference_declarator (); | |
88 | extern void reinit_parse_for_function (); | |
89 | extern void reinit_parse_for_method (); | |
90 | extern int yylex (); |