import source from 1.3.40
[external/swig.git] / Source / CParse / parser.h
1 /* A Bison parser, made by GNU Bison 2.3.  */
2
3 /* Skeleton interface for Bison's Yacc-like parsers in C
4
5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6    Free Software Foundation, Inc.
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2, or (at your option)
11    any later version.
12
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 51 Franklin Street, Fifth Floor,
21    Boston, MA 02110-1301, USA.  */
22
23 /* As a special exception, you may create a larger work that contains
24    part or all of the Bison parser skeleton and distribute that work
25    under terms of your choice, so long as that work isn't itself a
26    parser generator using the skeleton or a modified version thereof
27    as a parser skeleton.  Alternatively, if you modify or redistribute
28    the parser skeleton itself, you may (at your option) remove this
29    special exception, which will cause the skeleton and the resulting
30    Bison output files to be licensed under the GNU General Public
31    License without this special exception.
32
33    This special exception was added by the Free Software Foundation in
34    version 2.2 of Bison.  */
35
36 /* Tokens.  */
37 #ifndef YYTOKENTYPE
38 # define YYTOKENTYPE
39    /* Put the tokens into the symbol table, so that GDB and other debuggers
40       know about them.  */
41    enum yytokentype {
42      ID = 258,
43      HBLOCK = 259,
44      POUND = 260,
45      STRING = 261,
46      INCLUDE = 262,
47      IMPORT = 263,
48      INSERT = 264,
49      CHARCONST = 265,
50      NUM_INT = 266,
51      NUM_FLOAT = 267,
52      NUM_UNSIGNED = 268,
53      NUM_LONG = 269,
54      NUM_ULONG = 270,
55      NUM_LONGLONG = 271,
56      NUM_ULONGLONG = 272,
57      TYPEDEF = 273,
58      TYPE_INT = 274,
59      TYPE_UNSIGNED = 275,
60      TYPE_SHORT = 276,
61      TYPE_LONG = 277,
62      TYPE_FLOAT = 278,
63      TYPE_DOUBLE = 279,
64      TYPE_CHAR = 280,
65      TYPE_WCHAR = 281,
66      TYPE_VOID = 282,
67      TYPE_SIGNED = 283,
68      TYPE_BOOL = 284,
69      TYPE_COMPLEX = 285,
70      TYPE_TYPEDEF = 286,
71      TYPE_RAW = 287,
72      TYPE_NON_ISO_INT8 = 288,
73      TYPE_NON_ISO_INT16 = 289,
74      TYPE_NON_ISO_INT32 = 290,
75      TYPE_NON_ISO_INT64 = 291,
76      LPAREN = 292,
77      RPAREN = 293,
78      COMMA = 294,
79      SEMI = 295,
80      EXTERN = 296,
81      INIT = 297,
82      LBRACE = 298,
83      RBRACE = 299,
84      PERIOD = 300,
85      CONST_QUAL = 301,
86      VOLATILE = 302,
87      REGISTER = 303,
88      STRUCT = 304,
89      UNION = 305,
90      EQUAL = 306,
91      SIZEOF = 307,
92      MODULE = 308,
93      LBRACKET = 309,
94      RBRACKET = 310,
95      ILLEGAL = 311,
96      CONSTANT = 312,
97      NAME = 313,
98      RENAME = 314,
99      NAMEWARN = 315,
100      EXTEND = 316,
101      PRAGMA = 317,
102      FEATURE = 318,
103      VARARGS = 319,
104      ENUM = 320,
105      CLASS = 321,
106      TYPENAME = 322,
107      PRIVATE = 323,
108      PUBLIC = 324,
109      PROTECTED = 325,
110      COLON = 326,
111      STATIC = 327,
112      VIRTUAL = 328,
113      FRIEND = 329,
114      THROW = 330,
115      CATCH = 331,
116      EXPLICIT = 332,
117      USING = 333,
118      NAMESPACE = 334,
119      NATIVE = 335,
120      INLINE = 336,
121      TYPEMAP = 337,
122      EXCEPT = 338,
123      ECHO = 339,
124      APPLY = 340,
125      CLEAR = 341,
126      SWIGTEMPLATE = 342,
127      FRAGMENT = 343,
128      WARN = 344,
129      LESSTHAN = 345,
130      GREATERTHAN = 346,
131      MODULO = 347,
132      DELETE_KW = 348,
133      LESSTHANOREQUALTO = 349,
134      GREATERTHANOREQUALTO = 350,
135      EQUALTO = 351,
136      NOTEQUALTO = 352,
137      QUESTIONMARK = 353,
138      TYPES = 354,
139      PARMS = 355,
140      NONID = 356,
141      DSTAR = 357,
142      DCNOT = 358,
143      TEMPLATE = 359,
144      OPERATOR = 360,
145      COPERATOR = 361,
146      PARSETYPE = 362,
147      PARSEPARM = 363,
148      PARSEPARMS = 364,
149      CAST = 365,
150      LOR = 366,
151      LAND = 367,
152      OR = 368,
153      XOR = 369,
154      AND = 370,
155      RSHIFT = 371,
156      LSHIFT = 372,
157      MINUS = 373,
158      PLUS = 374,
159      MODULUS = 375,
160      SLASH = 376,
161      STAR = 377,
162      LNOT = 378,
163      NOT = 379,
164      UMINUS = 380,
165      DCOLON = 381
166    };
167 #endif
168 /* Tokens.  */
169 #define ID 258
170 #define HBLOCK 259
171 #define POUND 260
172 #define STRING 261
173 #define INCLUDE 262
174 #define IMPORT 263
175 #define INSERT 264
176 #define CHARCONST 265
177 #define NUM_INT 266
178 #define NUM_FLOAT 267
179 #define NUM_UNSIGNED 268
180 #define NUM_LONG 269
181 #define NUM_ULONG 270
182 #define NUM_LONGLONG 271
183 #define NUM_ULONGLONG 272
184 #define TYPEDEF 273
185 #define TYPE_INT 274
186 #define TYPE_UNSIGNED 275
187 #define TYPE_SHORT 276
188 #define TYPE_LONG 277
189 #define TYPE_FLOAT 278
190 #define TYPE_DOUBLE 279
191 #define TYPE_CHAR 280
192 #define TYPE_WCHAR 281
193 #define TYPE_VOID 282
194 #define TYPE_SIGNED 283
195 #define TYPE_BOOL 284
196 #define TYPE_COMPLEX 285
197 #define TYPE_TYPEDEF 286
198 #define TYPE_RAW 287
199 #define TYPE_NON_ISO_INT8 288
200 #define TYPE_NON_ISO_INT16 289
201 #define TYPE_NON_ISO_INT32 290
202 #define TYPE_NON_ISO_INT64 291
203 #define LPAREN 292
204 #define RPAREN 293
205 #define COMMA 294
206 #define SEMI 295
207 #define EXTERN 296
208 #define INIT 297
209 #define LBRACE 298
210 #define RBRACE 299
211 #define PERIOD 300
212 #define CONST_QUAL 301
213 #define VOLATILE 302
214 #define REGISTER 303
215 #define STRUCT 304
216 #define UNION 305
217 #define EQUAL 306
218 #define SIZEOF 307
219 #define MODULE 308
220 #define LBRACKET 309
221 #define RBRACKET 310
222 #define ILLEGAL 311
223 #define CONSTANT 312
224 #define NAME 313
225 #define RENAME 314
226 #define NAMEWARN 315
227 #define EXTEND 316
228 #define PRAGMA 317
229 #define FEATURE 318
230 #define VARARGS 319
231 #define ENUM 320
232 #define CLASS 321
233 #define TYPENAME 322
234 #define PRIVATE 323
235 #define PUBLIC 324
236 #define PROTECTED 325
237 #define COLON 326
238 #define STATIC 327
239 #define VIRTUAL 328
240 #define FRIEND 329
241 #define THROW 330
242 #define CATCH 331
243 #define EXPLICIT 332
244 #define USING 333
245 #define NAMESPACE 334
246 #define NATIVE 335
247 #define INLINE 336
248 #define TYPEMAP 337
249 #define EXCEPT 338
250 #define ECHO 339
251 #define APPLY 340
252 #define CLEAR 341
253 #define SWIGTEMPLATE 342
254 #define FRAGMENT 343
255 #define WARN 344
256 #define LESSTHAN 345
257 #define GREATERTHAN 346
258 #define MODULO 347
259 #define DELETE_KW 348
260 #define LESSTHANOREQUALTO 349
261 #define GREATERTHANOREQUALTO 350
262 #define EQUALTO 351
263 #define NOTEQUALTO 352
264 #define QUESTIONMARK 353
265 #define TYPES 354
266 #define PARMS 355
267 #define NONID 356
268 #define DSTAR 357
269 #define DCNOT 358
270 #define TEMPLATE 359
271 #define OPERATOR 360
272 #define COPERATOR 361
273 #define PARSETYPE 362
274 #define PARSEPARM 363
275 #define PARSEPARMS 364
276 #define CAST 365
277 #define LOR 366
278 #define LAND 367
279 #define OR 368
280 #define XOR 369
281 #define AND 370
282 #define RSHIFT 371
283 #define LSHIFT 372
284 #define MINUS 373
285 #define PLUS 374
286 #define MODULUS 375
287 #define SLASH 376
288 #define STAR 377
289 #define LNOT 378
290 #define NOT 379
291 #define UMINUS 380
292 #define DCOLON 381
293
294
295
296
297 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
298 typedef union YYSTYPE
299 #line 1440 "parser.y"
300 {
301   char  *id;
302   List  *bases;
303   struct Define {
304     String *val;
305     String *rawval;
306     int     type;
307     String *qualifier;
308     String *bitfield;
309     Parm   *throws;
310     String *throwf;
311   } dtype;
312   struct {
313     char *type;
314     String *filename;
315     int   line;
316   } loc;
317   struct {
318     char      *id;
319     SwigType  *type;
320     String    *defarg;
321     ParmList  *parms;
322     short      have_parms;
323     ParmList  *throws;
324     String    *throwf;
325   } decl;
326   Parm         *tparms;
327   struct {
328     String     *method;
329     Hash       *kwargs;
330   } tmap;
331   struct {
332     String     *type;
333     String     *us;
334   } ptype;
335   SwigType     *type;
336   String       *str;
337   Parm         *p;
338   ParmList     *pl;
339   int           ivalue;
340   Node         *node;
341 }
342 /* Line 1489 of yacc.c.  */
343 #line 344 "y.tab.h"
344         YYSTYPE;
345 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
346 # define YYSTYPE_IS_DECLARED 1
347 # define YYSTYPE_IS_TRIVIAL 1
348 #endif
349
350 extern YYSTYPE yylval;
351