00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
#define YYBISON 1
00038
00039
00040
#define YYSKELETON_NAME "yacc.c"
00041
00042
00043
#define YYPURE 0
00044
00045
00046
#define YYLSP_NEEDED 0
00047
00048
00049
00050
00051
#ifndef YYTOKENTYPE
00052
# define YYTOKENTYPE
00053
00054
00055
enum yytokentype {
00056 T_UNIMPORTANT = 258,
00057 T_CHARACTER_LITERAL = 259,
00058 T_DOUBLE_LITERAL = 260,
00059 T_IDENTIFIER = 261,
00060 T_INTEGER_LITERAL = 262,
00061 T_STRING_LITERAL = 263,
00062 T_INCLUDE = 264,
00063 T_CLASS = 265,
00064 T_STRUCT = 266,
00065 T_LEFT_CURLY_BRACKET = 267,
00066 T_LEFT_PARANTHESIS = 268,
00067 T_RIGHT_CURLY_BRACKET = 269,
00068 T_RIGHT_PARANTHESIS = 270,
00069 T_COLON = 271,
00070 T_SEMICOLON = 272,
00071 T_PUBLIC = 273,
00072 T_PROTECTED = 274,
00073 T_TRIPE_DOT = 275,
00074 T_PRIVATE = 276,
00075 T_VIRTUAL = 277,
00076 T_CONST = 278,
00077 T_INLINE = 279,
00078 T_FRIEND = 280,
00079 T_RETURN = 281,
00080 T_SIGNAL = 282,
00081 T_SLOT = 283,
00082 T_TYPEDEF = 284,
00083 T_PLUS = 285,
00084 T_MINUS = 286,
00085 T_COMMA = 287,
00086 T_ASTERISK = 288,
00087 T_TILDE = 289,
00088 T_LESS = 290,
00089 T_GREATER = 291,
00090 T_AMPERSAND = 292,
00091 T_EXTERN = 293,
00092 T_EXTERN_C = 294,
00093 T_ACCESS = 295,
00094 T_ENUM = 296,
00095 T_NAMESPACE = 297,
00096 T_USING = 298,
00097 T_UNKNOWN = 299,
00098 T_TRIPLE_DOT = 300,
00099 T_TRUE = 301,
00100 T_FALSE = 302,
00101 T_STATIC = 303,
00102 T_MUTABLE = 304,
00103 T_EQUAL = 305,
00104 T_SCOPE = 306,
00105 T_NULL = 307,
00106 T_INT = 308,
00107 T_ARRAY_OPEN = 309,
00108 T_ARRAY_CLOSE = 310,
00109 T_CHAR = 311,
00110 T_DCOP = 312,
00111 T_DCOP_AREA = 313,
00112 T_DCOP_SIGNAL_AREA = 314,
00113 T_SIGNED = 315,
00114 T_UNSIGNED = 316,
00115 T_LONG = 317,
00116 T_SHORT = 318,
00117 T_FUNOPERATOR = 319,
00118 T_MISCOPERATOR = 320,
00119 T_SHIFT = 321
00120 };
00121
#endif
00122
#define T_UNIMPORTANT 258
00123
#define T_CHARACTER_LITERAL 259
00124
#define T_DOUBLE_LITERAL 260
00125
#define T_IDENTIFIER 261
00126
#define T_INTEGER_LITERAL 262
00127
#define T_STRING_LITERAL 263
00128
#define T_INCLUDE 264
00129
#define T_CLASS 265
00130
#define T_STRUCT 266
00131
#define T_LEFT_CURLY_BRACKET 267
00132
#define T_LEFT_PARANTHESIS 268
00133
#define T_RIGHT_CURLY_BRACKET 269
00134
#define T_RIGHT_PARANTHESIS 270
00135
#define T_COLON 271
00136
#define T_SEMICOLON 272
00137
#define T_PUBLIC 273
00138
#define T_PROTECTED 274
00139
#define T_TRIPE_DOT 275
00140
#define T_PRIVATE 276
00141
#define T_VIRTUAL 277
00142
#define T_CONST 278
00143
#define T_INLINE 279
00144
#define T_FRIEND 280
00145
#define T_RETURN 281
00146
#define T_SIGNAL 282
00147
#define T_SLOT 283
00148
#define T_TYPEDEF 284
00149
#define T_PLUS 285
00150
#define T_MINUS 286
00151
#define T_COMMA 287
00152
#define T_ASTERISK 288
00153
#define T_TILDE 289
00154
#define T_LESS 290
00155
#define T_GREATER 291
00156
#define T_AMPERSAND 292
00157
#define T_EXTERN 293
00158
#define T_EXTERN_C 294
00159
#define T_ACCESS 295
00160
#define T_ENUM 296
00161
#define T_NAMESPACE 297
00162
#define T_USING 298
00163
#define T_UNKNOWN 299
00164
#define T_TRIPLE_DOT 300
00165
#define T_TRUE 301
00166
#define T_FALSE 302
00167
#define T_STATIC 303
00168
#define T_MUTABLE 304
00169
#define T_EQUAL 305
00170
#define T_SCOPE 306
00171
#define T_NULL 307
00172
#define T_INT 308
00173
#define T_ARRAY_OPEN 309
00174
#define T_ARRAY_CLOSE 310
00175
#define T_CHAR 311
00176
#define T_DCOP 312
00177
#define T_DCOP_AREA 313
00178
#define T_DCOP_SIGNAL_AREA 314
00179
#define T_SIGNED 315
00180
#define T_UNSIGNED 316
00181
#define T_LONG 317
00182
#define T_SHORT 318
00183
#define T_FUNOPERATOR 319
00184
#define T_MISCOPERATOR 320
00185
#define T_SHIFT 321
00186
00187
00188
00189
00190
00191
#line 1 "yacc.yy"
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
#include <config.h>
00217
00218
00219
00220
00221
#ifdef _GNU_SOURCE
00222
#define __USE_GNU 1
00223
#endif
00224
00225
#include <stdlib.h>
00226
#include <stdio.h>
00227
#include <assert.h>
00228
00229
#include <qstring.h>
00230
00231
#define AMP_ENTITY "&"
00232
#define YYERROR_VERBOSE
00233
00234
extern int yylex();
00235
00236
00237
extern int idl_line_no;
00238
extern int function_mode;
00239
00240
static int dcop_area = 0;
00241
static int dcop_signal_area = 0;
00242
00243
static QString in_namespace(
"" );
00244
00245
void dcopidlInitFlex(
const char *_code );
00246
00247
void yyerror(
const char *s )
00248 {
00249 qDebug(
"In line %i : %s", idl_line_no, s );
00250 exit(1);
00251
00252 }
00253
00254
00255
00256
00257
#ifndef YYDEBUG
00258
# define YYDEBUG 1
00259
#endif
00260
00261
00262
#ifdef YYERROR_VERBOSE
00263
# undef YYERROR_VERBOSE
00264
# define YYERROR_VERBOSE 1
00265
#else
00266
# define YYERROR_VERBOSE 0
00267
#endif
00268
00269
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00270
#line 67 "yacc.yy"
00271
typedef union YYSTYPE {
00272
long _int;
00273
QString *_str;
00274
unsigned short _char;
00275
double _float;
00276 } YYSTYPE;
00277
00278
#line 278 "yacc.cc"
00279
# define yystype YYSTYPE
00280
# define YYSTYPE_IS_DECLARED 1
00281
# define YYSTYPE_IS_TRIVIAL 1
00282
#endif
00283
00284
00285
00286
00287
00288
00289
00290
#line 290 "yacc.cc"
00291
00292
#if ! defined (yyoverflow) || YYERROR_VERBOSE
00293
00294
00295
00296
# if YYSTACK_USE_ALLOCA
00297
# define YYSTACK_ALLOC alloca
00298
# else
00299
# ifndef YYSTACK_USE_ALLOCA
00300
# if defined (alloca) || defined (_ALLOCA_H)
00301
# define YYSTACK_ALLOC alloca
00302
# else
00303
# ifdef __GNUC__
00304
# define YYSTACK_ALLOC __builtin_alloca
00305
# endif
00306
# endif
00307
# endif
00308
# endif
00309
00310
# ifdef YYSTACK_ALLOC
00311
00312
# define YYSTACK_FREE(Ptr) do { ; } while (0)
00313
# else
00314
# if defined (__STDC__) || defined (__cplusplus)
00315
# include <stdlib.h>
00316
# define YYSIZE_T size_t
00317
# endif
00318
# define YYSTACK_ALLOC malloc
00319
# define YYSTACK_FREE free
00320
# endif
00321
#endif
00322
00323
00324
#if (! defined (yyoverflow) \
00325
&& (! defined (__cplusplus) \
00326
|| (YYSTYPE_IS_TRIVIAL)))
00327
00328
00329
union yyalloc
00330 {
00331
short yyss;
00332 YYSTYPE yyvs;
00333 };
00334
00335
00336
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00337
00338
00339
00340
# define YYSTACK_BYTES(N) \
00341
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
00342
+ YYSTACK_GAP_MAXIMUM)
00343
00344
00345
00346
# ifndef YYCOPY
00347
# if 1 < __GNUC__
00348
# define YYCOPY(To, From, Count) \
00349
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00350
# else
00351
# define YYCOPY(To, From, Count) \
00352
do \
00353
{ \
00354
register YYSIZE_T yyi; \
00355
for (yyi = 0; yyi < (Count); yyi++) \
00356
(To)[yyi] = (From)[yyi]; \
00357
} \
00358
while (0)
00359
# endif
00360
# endif
00361
00362
00363
00364
00365
00366
00367
# define YYSTACK_RELOCATE(Stack) \
00368
do \
00369
{ \
00370
YYSIZE_T yynewbytes; \
00371
YYCOPY (&yyptr->Stack, Stack, yysize); \
00372
Stack = &yyptr->Stack; \
00373
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00374
yyptr += yynewbytes / sizeof (*yyptr); \
00375
} \
00376
while (0)
00377
00378
#endif
00379
00380
#if defined (__STDC__) || defined (__cplusplus)
00381
typedef signed char yysigned_char;
00382
#else
00383
typedef short yysigned_char;
00384
#endif
00385
00386
00387
#define YYFINAL 7
00388
00389
#define YYLAST 556
00390
00391
00392
#define YYNTOKENS 67
00393
00394
#define YYNNTS 53
00395
00396
#define YYNRULES 182
00397
00398
#define YYNSTATES 369
00399
00400
00401
#define YYUNDEFTOK 2
00402
#define YYMAXUTOK 321
00403
00404
#define YYTRANSLATE(YYX) \
00405
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00406
00407
00408
static const unsigned char yytranslate[] =
00409 {
00410 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00411 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00413 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00419 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00424 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00425 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00426 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00428 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00429 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00431 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00432 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00433 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00435 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00436 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00437 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00438 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
00439 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
00440 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
00441 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
00442 65, 66
00443 };
00444
00445
#if YYDEBUG
00446
00447
00448
static const unsigned short yyprhs[] =
00449 {
00450 0, 0, 3, 7, 8, 11, 16, 17, 19, 20,
00451 27, 35, 39, 43, 49, 50, 58, 63, 69, 72,
00452 77, 85, 94, 97, 99, 101, 103, 106, 107, 109,
00453 111, 113, 115, 117, 119, 121, 122, 126, 129, 132,
00454 135, 137, 141, 143, 148, 152, 154, 157, 161, 164,
00455 166, 167, 169, 171, 174, 178, 181, 184, 187, 190,
00456 193, 196, 202, 207, 212, 217, 224, 229, 236, 243,
00457 251, 258, 265, 271, 275, 277, 281, 283, 285, 287,
00458 290, 292, 294, 296, 300, 304, 312, 322, 323, 325,
00459 327, 330, 332, 335, 338, 342, 345, 349, 352, 356,
00460 359, 363, 365, 367, 370, 372, 375, 377, 380, 383,
00461 386, 388, 389, 391, 395, 397, 399, 402, 405, 410,
00462 417, 421, 423, 426, 428, 432, 436, 439, 442, 444,
00463 447, 451, 453, 457, 460, 462, 463, 466, 472, 474,
00464 476, 478, 480, 485, 486, 488, 490, 492, 494, 496,
00465 498, 505, 513, 515, 519, 520, 525, 527, 531, 534,
00466 540, 544, 550, 558, 565, 569, 571, 573, 577, 582,
00467 585, 586, 588, 591, 592, 594, 598, 601, 604, 608,
00468 614, 620, 626
00469 };
00470
00471
00472
static const yysigned_char yyrhs[] =
00473 {
00474 68, 0, -1, 69, 71, 68, -1, -1, 9, 69,
00475 -1, 39, 12, 68, 14, -1, -1, 57, -1, -1,
00476 10, 80, 84, 70, 86, 17, -1, 10, 6, 80,
00477 84, 70, 86, 17, -1, 10, 80, 17, -1, 11,
00478 80, 17, -1, 11, 80, 84, 86, 17, -1, -1,
00479 42, 6, 12, 72, 68, 14, 85, -1, 43, 42,
00480 6, 17, -1, 43, 6, 51, 6, 17, -1, 38,
00481 17, -1, 29, 100, 80, 17, -1, 29, 11, 12,
00482 73, 14, 80, 17, -1, 29, 11, 80, 12, 73,
00483 14, 80, 17, -1, 24, 111, -1, 111, -1, 119,
00484 -1, 87, -1, 119, 73, -1, -1, 46, -1, 47,
00485 -1, 21, -1, 19, -1, 18, -1, 27, -1, 28,
00486 -1, -1, 75, 76, 16, -1, 76, 16, -1, 58,
00487 16, -1, 59, 16, -1, 6, -1, 6, 51, 80,
00488 -1, 80, -1, 80, 35, 101, 36, -1, 105, 18,
00489 81, -1, 81, -1, 82, 12, -1, 82, 32, 83,
00490 -1, 16, 83, -1, 12, -1, -1, 17, -1, 14,
00491 -1, 92, 86, -1, 24, 111, 86, -1, 111, 86,
00492 -1, 79, 86, -1, 87, 86, -1, 78, 86, -1,
00493 77, 86, -1, 119, 86, -1, 25, 10, 80, 17,
00494 86, -1, 25, 80, 17, 86, -1, 25, 107, 17,
00495 86, -1, 10, 80, 17, 86, -1, 10, 80, 84,
00496 86, 17, 86, -1, 11, 80, 17, 86, -1, 11,
00497 80, 84, 86, 17, 86, -1, 43, 6, 51, 6,
00498 17, 86, -1, 41, 6, 12, 88, 14, 6, 17,
00499 -1, 41, 6, 12, 88, 14, 17, -1, 41, 12,
00500 88, 14, 6, 17, -1, 41, 12, 88, 14, 17,
00501 -1, 89, 32, 88, -1, 89, -1, 6, 50, 91,
00502 -1, 6, -1, 4, -1, 7, -1, 31, 7, -1,
00503 52, -1, 80, -1, 90, -1, 90, 30, 90, -1,
00504 90, 66, 90, -1, 29, 80, 35, 101, 36, 80,
00505 17, -1, 29, 80, 35, 101, 36, 51, 6, 80,
00506 17, -1, -1, 23, -1, 60, -1, 60, 53, -1,
00507 61, -1, 61, 53, -1, 60, 63, -1, 60, 63,
00508 53, -1, 60, 62, -1, 60, 62, 53, -1, 61,
00509 63, -1, 61, 63, 53, -1, 61, 62, -1, 61,
00510 62, 53, -1, 53, -1, 62, -1, 62, 53, -1,
00511 63, -1, 63, 53, -1, 56, -1, 60, 56, -1,
00512 61, 56, -1, 33, 95, -1, 33, -1, -1, 102,
00513 -1, 96, 32, 102, -1, 94, -1, 80, -1, 11,
00514 80, -1, 10, 80, -1, 80, 35, 98, 36, -1,
00515 80, 35, 98, 36, 51, 80, -1, 99, 32, 98,
00516 -1, 99, -1, 97, 95, -1, 97, -1, 23, 97,
00517 95, -1, 23, 97, 37, -1, 23, 97, -1, 97,
00518 37, -1, 97, -1, 97, 95, -1, 100, 32, 101,
00519 -1, 100, -1, 100, 80, 103, -1, 100, 103, -1,
00520 45, -1, -1, 50, 104, -1, 50, 13, 100, 15,
00521 104, -1, 8, -1, 91, -1, 5, -1, 74, -1,
00522 80, 13, 96, 15, -1, -1, 22, -1, 65, -1,
00523 66, -1, 36, -1, 35, -1, 50, -1, 100, 80,
00524 13, 96, 15, 93, -1, 100, 64, 106, 13, 96,
00525 15, 93, -1, 104, -1, 104, 32, 108, -1, -1,
00526 6, 13, 108, 15, -1, 109, -1, 109, 32, 110,
00527 -1, 107, 113, -1, 22, 107, 50, 52, 113, -1,
00528 22, 107, 113, -1, 80, 13, 96, 15, 113, -1,
00529 80, 13, 96, 15, 16, 110, 113, -1, 105, 34,
00530 80, 13, 15, 113, -1, 48, 107, 113, -1, 12,
00531 -1, 17, -1, 112, 114, 14, -1, 112, 114, 14,
00532 17, -1, 115, 114, -1, -1, 17, -1, 32, 118,
00533 -1, -1, 6, -1, 6, 50, 104, -1, 95, 6,
00534 -1, 117, 116, -1, 100, 118, 17, -1, 100, 80,
00535 16, 7, 17, -1, 48, 100, 6, 103, 17, -1,
00536 49, 100, 6, 103, 17, -1, 100, 6, 54, 91,
00537 55, 17, -1
00538 };
00539
00540
00541
static const unsigned short yyrline[] =
00542 {
00543 0, 164, 164, 167, 171, 175, 179, 184, 185, 189,
00544 198, 207, 210, 213, 217, 216, 228, 231, 234, 237,
00545 240, 243, 246, 249, 252, 255, 261, 262, 265, 265,
00546 267, 267, 267, 269, 269, 269, 272, 277, 285, 293,
00547 305, 308, 316, 322, 331, 335, 342, 346, 354, 358,
00548 366, 368, 372, 376, 380, 384, 388, 392, 396, 400,
00549 404, 408, 412, 416, 420, 424, 428, 432, 436, 443,
00550 444, 445, 446, 450, 451, 455, 456, 460, 461, 462,
00551 463, 464, 468, 469, 470, 474, 484, 493, 496, 503,
00552 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
00553 514, 515, 516, 517, 518, 519, 520, 521, 522, 526,
00554 527, 532, 535, 536, 544, 545, 546, 547, 548, 554,
00555 565, 569, 577, 582, 591, 596, 603, 608, 613, 618,
00556 626, 630, 637, 646, 654, 664, 666, 669, 676, 679,
00557 682, 685, 688, 694, 695, 699, 699, 699, 699, 699,
00558 703, 725, 736, 737, 738, 743, 748, 749, 753, 757,
00559 761, 765, 771, 777, 783, 796, 803, 804, 805, 809,
00560 810, 814, 818, 819, 822, 823, 824, 827, 831, 832,
00561 833, 834, 835
00562 };
00563
#endif
00564
00565
#if YYDEBUG || YYERROR_VERBOSE
00566
00567
00568
static const char *
const yytname[] =
00569 {
00570
"$end",
"error",
"$undefined",
"T_UNIMPORTANT",
"T_CHARACTER_LITERAL",
00571
"T_DOUBLE_LITERAL",
"T_IDENTIFIER",
"T_INTEGER_LITERAL",
00572
"T_STRING_LITERAL",
"T_INCLUDE",
"T_CLASS",
"T_STRUCT",
00573
"T_LEFT_CURLY_BRACKET",
"T_LEFT_PARANTHESIS",
"T_RIGHT_CURLY_BRACKET",
00574
"T_RIGHT_PARANTHESIS",
"T_COLON",
"T_SEMICOLON",
"T_PUBLIC",
00575
"T_PROTECTED",
"T_TRIPE_DOT",
"T_PRIVATE",
"T_VIRTUAL",
"T_CONST",
00576
"T_INLINE",
"T_FRIEND",
"T_RETURN",
"T_SIGNAL",
"T_SLOT",
"T_TYPEDEF",
00577
"T_PLUS",
"T_MINUS",
"T_COMMA",
"T_ASTERISK",
"T_TILDE",
"T_LESS",
00578
"T_GREATER",
"T_AMPERSAND",
"T_EXTERN",
"T_EXTERN_C",
"T_ACCESS",
00579
"T_ENUM",
"T_NAMESPACE",
"T_USING",
"T_UNKNOWN",
"T_TRIPLE_DOT",
00580
"T_TRUE",
"T_FALSE",
"T_STATIC",
"T_MUTABLE",
"T_EQUAL",
"T_SCOPE",
00581
"T_NULL",
"T_INT",
"T_ARRAY_OPEN",
"T_ARRAY_CLOSE",
"T_CHAR",
"T_DCOP",
00582
"T_DCOP_AREA",
"T_DCOP_SIGNAL_AREA",
"T_SIGNED",
"T_UNSIGNED",
"T_LONG",
00583
"T_SHORT",
"T_FUNOPERATOR",
"T_MISCOPERATOR",
"T_SHIFT",
"$accept",
00584
"main",
"includes",
"dcoptag",
"declaration",
"@1",
"member_list",
00585
"bool_value",
"nodcop_area",
"sigslot",
"nodcop_area_begin",
00586
"dcop_area_begin",
"dcop_signal_area_begin",
"Identifier",
00587
"super_class_name",
"super_class",
"super_classes",
"class_header",
00588
"opt_semicolon",
"body",
"enum",
"enum_list",
"enum_item",
"number",
00589
"int_expression",
"typedef",
"const_qualifier",
"int_type",
"asterisks",
00590
"params",
"type_name",
"templ_type_list",
"templ_type",
"type",
00591
"type_list",
"param",
"default",
"value",
"virtual_qualifier",
00592
"operator",
"function_header",
"values",
"init_item",
"init_list",
00593
"function",
"function_begin",
"function_body",
"function_lines",
00594
"function_line",
"Identifier_list_rest",
"Identifier_list_entry",
00595
"Identifier_list",
"member", 0
00596 };
00597
#endif
00598
00599
# ifdef YYPRINT
00600
00601
00602
static const unsigned short yytoknum[] =
00603 {
00604 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00605 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00606 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
00607 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
00608 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
00609 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
00610 315, 316, 317, 318, 319, 320, 321
00611 };
00612
# endif
00613
00614
00615
static const unsigned char yyr1[] =
00616 {
00617 0, 67, 68, 68, 69, 69, 69, 70, 70, 71,
00618 71, 71, 71, 71, 72, 71, 71, 71, 71, 71,
00619 71, 71, 71, 71, 71, 71, 73, 73, 74, 74,
00620 75, 75, 75, 76, 76, 76, 77, 77, 78, 79,
00621 80, 80, 81, 81, 82, 82, 83, 83, 84, 84,
00622 85, 85, 86, 86, 86, 86, 86, 86, 86, 86,
00623 86, 86, 86, 86, 86, 86, 86, 86, 86, 87,
00624 87, 87, 87, 88, 88, 89, 89, 90, 90, 90,
00625 90, 90, 91, 91, 91, 92, 92, 93, 93, 94,
00626 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
00627 94, 94, 94, 94, 94, 94, 94, 94, 94, 95,
00628 95, 96, 96, 96, 97, 97, 97, 97, 97, 97,
00629 98, 98, 99, 99, 100, 100, 100, 100, 100, 100,
00630 101, 101, 102, 102, 102, 103, 103, 103, 104, 104,
00631 104, 104, 104, 105, 105, 106, 106, 106, 106, 106,
00632 107, 107, 108, 108, 108, 109, 110, 110, 111, 111,
00633 111, 111, 111, 111, 111, 112, 113, 113, 113, 114,
00634 114, 115, 116, 116, 117, 117, 117, 118, 119, 119,
00635 119, 119, 119
00636 };
00637
00638
00639
static const unsigned char yyr2[] =
00640 {
00641 0, 2, 3, 0, 2, 4, 0, 1, 0, 6,
00642 7, 3, 3, 5, 0, 7, 4, 5, 2, 4,
00643 7, 8, 2, 1, 1, 1, 2, 0, 1, 1,
00644 1, 1, 1, 1, 1, 0, 3, 2, 2, 2,
00645 1, 3, 1, 4, 3, 1, 2, 3, 2, 1,
00646 0, 1, 1, 2, 3, 2, 2, 2, 2, 2,
00647 2, 5, 4, 4, 4, 6, 4, 6, 6, 7,
00648 6, 6, 5, 3, 1, 3, 1, 1, 1, 2,
00649 1, 1, 1, 3, 3, 7, 9, 0, 1, 1,
00650 2, 1, 2, 2, 3, 2, 3, 2, 3, 2,
00651 3, 1, 1, 2, 1, 2, 1, 2, 2, 2,
00652 1, 0, 1, 3, 1, 1, 2, 2, 4, 6,
00653 3, 1, 2, 1, 3, 3, 2, 2, 1, 2,
00654 3, 1, 3, 2, 1, 0, 2, 5, 1, 1,
00655 1, 1, 4, 0, 1, 1, 1, 1, 1, 1,
00656 6, 7, 1, 3, 0, 4, 1, 3, 2, 5,
00657 3, 5, 7, 6, 3, 1, 1, 3, 4, 2,
00658 0, 1, 2, 0, 1, 3, 2, 2, 3, 5,
00659 5, 5, 6
00660 };
00661
00662
00663
00664
00665
static const unsigned char yydefact[] =
00666 {
00667 6, 6, 0, 0, 143, 4, 6, 1, 40, 0,
00668 0, 144, 0, 143, 0, 0, 0, 0, 0, 0,
00669 0, 101, 106, 89, 91, 102, 104, 6, 115, 25,
00670 114, 128, 0, 0, 0, 23, 24, 0, 0, 40,
00671 117, 116, 0, 0, 115, 0, 0, 126, 0, 22,
00672 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
00673 0, 90, 107, 95, 93, 92, 108, 99, 97, 103,
00674 105, 2, 111, 0, 110, 127, 129, 40, 0, 0,
00675 0, 173, 0, 0, 165, 166, 170, 158, 5, 41,
00676 0, 49, 143, 11, 8, 12, 35, 117, 116, 0,
00677 0, 160, 125, 124, 27, 116, 0, 0, 76, 0,
00678 74, 14, 0, 0, 40, 164, 135, 96, 94, 100,
00679 98, 134, 0, 135, 112, 123, 0, 121, 109, 0,
00680 0, 148, 147, 149, 145, 146, 0, 111, 0, 176,
00681 0, 177, 178, 0, 171, 0, 170, 8, 144, 42,
00682 45, 0, 48, 0, 7, 35, 0, 0, 52, 32,
00683 31, 30, 143, 0, 33, 34, 0, 0, 0, 0,
00684 35, 0, 35, 35, 35, 0, 35, 35, 35, 35,
00685 0, 0, 0, 0, 27, 27, 19, 0, 0, 0,
00686 0, 6, 0, 16, 0, 0, 0, 0, 0, 135,
00687 133, 122, 118, 0, 77, 140, 78, 138, 0, 28,
00688 29, 80, 141, 81, 82, 139, 175, 81, 0, 111,
00689 0, 0, 174, 172, 0, 167, 169, 35, 0, 46,
00690 143, 0, 0, 117, 116, 35, 0, 115, 0, 0,
00691 0, 38, 39, 0, 37, 59, 58, 56, 13, 57,
00692 53, 55, 60, 159, 0, 0, 0, 26, 0, 0,
00693 75, 0, 72, 73, 0, 17, 0, 136, 180, 181,
00694 0, 161, 113, 132, 0, 120, 79, 111, 0, 0,
00695 0, 0, 87, 179, 0, 168, 0, 131, 0, 47,
00696 44, 9, 35, 35, 35, 35, 54, 117, 35, 35,
00697 0, 0, 36, 135, 0, 0, 0, 70, 71, 50,
00698 0, 0, 156, 0, 119, 0, 83, 84, 182, 87,
00699 88, 150, 163, 10, 0, 43, 64, 0, 66, 0,
00700 35, 62, 63, 0, 0, 20, 0, 69, 51, 15,
00701 0, 154, 0, 162, 142, 151, 130, 35, 35, 61,
00702 0, 35, 21, 137, 152, 0, 157, 65, 67, 0,
00703 0, 68, 154, 155, 0, 85, 153, 0, 86
00704 };
00705
00706
00707
static const short yydefgoto[] =
00708 {
00709 -1, 3, 4, 155, 27, 191, 182, 212, 170, 171,
00710 172, 173, 174, 28, 150, 151, 152, 94, 339, 175,
00711 176, 109, 110, 214, 215, 177, 321, 30, 80, 122,
00712 31, 126, 127, 32, 288, 124, 195, 354, 33, 136,
00713 34, 355, 312, 313, 178, 86, 87, 145, 146, 141,
00714 81, 82, 179
00715 };
00716
00717
00718
00719
#define YYPACT_NINF -198
00720
static const short yypact[] =
00721 {
00722 61, 59, 107, 52, 218, -198, 97, -198, 58, 65,
00723 136, 390, 434, 102, 404, 128, 60, 146, 45, 390,
00724 390, -198, -198, 231, 236, 117, 155, 90, 104, -198,
00725 -198, 100, 29, 204, 123, -198, -198, 209, 136, 40,
00726 227, 246, 136, 136, 213, 21, 36, 181, 390, -198,
00727 174, 136, -198, 252, 267, 263, 225, 271, 32, 123,
00728 279, -198, -198, 235, 237, -198, -198, 242, 256, -198,
00729 -198, -198, 375, 434, 253, -198, -198, 127, 170, 239,
00730 304, 280, 294, 136, -198, -198, 296, -198, -198, -198,
00731 233, -198, 110, -198, 257, -198, 315, -198, -198, 303,
00732 265, -198, -198, -198, 356, 306, 302, 267, 270, 308,
00733 292, -198, 317, 310, 72, -198, 278, -198, -198, -198,
00734 -198, -198, 141, 44, -198, 253, 299, 313, -198, 504,
00735 53, -198, -198, -198, -198, -198, 333, 375, 340, -198,
00736 101, -198, -198, 335, -198, 336, 296, 257, -198, 316,
00737 -198, 129, -198, 334, -198, 315, 136, 136, -198, -198,
00738 -198, -198, 102, 419, -198, -198, 136, 348, 341, 343,
00739 189, 344, 315, 315, 315, 352, 315, 315, 315, 315,
00740 123, 390, 347, 120, 356, 356, -198, 351, 53, 176,
00741 267, 97, 353, -198, 494, 355, 363, 285, 375, 278,
00742 -198, -198, 331, 434, -198, -198, -198, -198, 376, -198,
00743 -198, -198, -198, 371, 35, -198, -198, -198, 332, 375,
00744 156, 372, 338, -198, 377, 373, -198, 315, 390, -198,
00745 110, 136, 374, 288, 291, 315, 136, 20, 378, 358,
00746 346, -198, -198, 383, -198, -198, -198, -198, -198, -198,
00747 -198, -198, -198, -198, 388, 136, 386, -198, 389, 220,
00748 -198, 391, -198, -198, 392, -198, 390, -198, -198, -198,
00749 401, -198, -198, -198, 136, -198, -198, 375, 53, 53,
00750 394, 177, 398, -198, 123, -198, 405, 400, 387, -198,
00751 -198, -198, 315, 315, 315, 315, -198, 407, 315, 315,
00752 390, 420, -198, 278, 416, 136, 417, -198, -198, 422,
00753 426, 435, 415, 123, -198, 198, -198, -198, -198, 398,
00754 -198, -198, -198, -198, 390, -198, -198, 432, -198, 437,
00755 315, -198, -198, 423, 438, -198, 439, -198, -198, -198,
00756 504, 504, 401, -198, -198, -198, -198, 315, 315, -198,
00757 41, 315, -198, -198, 429, 443, -198, -198, -198, 456,
00758 446, -198, 504, -198, 136, -198, -198, 451, -198
00759 };
00760
00761
00762
static const short yypgoto[] =
00763 {
00764 -198, 16, 468, 323, -198, -198, -1, -198, -198, 301,
00765 -198, -198, -198, -9, 243, -198, 247, -34, -198, -97,
00766 469, -75, -198, -47, -86, -198, 157, -198, -7, -131,
00767 0, 275, -198, 6, -197, 286, -102, -125, -79, -198,
00768 -3, 121, -198, 143, 5, -198, -31, 342, -198, -198,
00769 -198, 349, 27
00770 };
00771
00772
00773
00774
00775
00776
#define YYTABLE_NINF -175
00777
static const short yytable[] =
00778 {
00779 40, 41, 44, 44, 216, 44, 220, 96, 46, 35,
00780 44, 44, 47, 153, 196, 101, 59, 45, 49, 45,
00781 51, 200, 37, 79, 76, 58, 60, 8, 115, 89,
00782 90, 36, 187, 97, 98, 77, 99, 298, 114, 44,
00783 103, 105, 106, 71, 218, 59, 8, 8, 84, 99,
00784 8, 56, 7, 85, 45, 73, 147, 204, 232, 8,
00785 206, -3, 74, 44, 44, 278, 53, 128, 1, 267,
00786 1, 39, 54, 125, 143, 245, 246, 247, 123, 249,
00787 250, 251, 252, 149, 208, 78, 100, 57, 281, -135,
00788 -3, 38, 359, 78, 194, 44, 78, 273, 2, 1,
00789 2, 279, 260, 333, -3, 211, 1, 222, 8, 38,
00790 183, -3, 42, 43, 199, 263, 8, 72, 201, 6,
00791 213, 217, 194, 38, 11, 12, 77, 346, 44, 2,
00792 286, 184, 148, 74, 74, 84, 2, 75, 296, 73,
00793 85, 229, 8, 123, -174, 52, 315, 233, 234, 253,
00794 48, 153, 55, 74, 237, 21, 197, 239, 22, -174,
00795 238, 230, 23, 24, 25, 26, 271, 235, 45, 45,
00796 69, 282, 44, 198, 256, 44, 44, 129, 38, 217,
00797 8, 130, 261, 257, 258, 213, 104, 254, 198, 44,
00798 183, 183, 319, 262, 44, 326, 327, 328, 329, 293,
00799 295, 331, 332, 125, 123, 131, 132, 264, 70, 198,
00800 44, 184, 184, 344, 74, 353, 164, 165, 102, 44,
00801 133, 149, 149, 88, 8, 123, 306, 297, 9, 10,
00802 198, 316, 317, 349, 287, 134, 135, 307, 83, 91,
00803 11, 12, 13, 92, 93, 91, 304, 14, 73, 92,
00804 357, 358, 137, 322, 361, 138, 15, 44, 91, 16,
00805 17, 18, 92, 95, 107, 314, 19, 20, 44, 217,
00806 217, 21, 310, 108, 22, 111, 112, 113, 23, 24,
00807 25, 26, 343, 123, 61, 116, 74, 62, 117, 65,
00808 118, 44, 66, 63, 64, 119, 336, 84, 67, 68,
00809 91, 270, 85, 91, 92, 292, 287, 92, 294, 120,
00810 139, 142, 140, 144, 154, 44, 137, 180, 185, 186,
00811 188, 8, 189, 192, 190, 156, 157, 193, 194, 158,
00812 287, 213, 213, 159, 160, 202, 161, 11, 12, 162,
00813 163, 360, 164, 165, 166, 203, 219, 221, 224, -143,
00814 225, 228, 231, 213, 240, 367, 16, 241, 167, 242,
00815 244, 255, 8, 19, 20, 259, 42, 43, 21, 248,
00816 265, 22, 268, 168, 169, 23, 24, 25, 26, 12,
00817 269, 8, 274, 276, 277, 42, 43, 280, 129, 283,
00818 285, 291, 284, 300, 303, 299, 8, 301, 12, 302,
00819 42, 43, 138, 305, 181, 20, 309, 311, 308, 21,
00820 8, 318, 22, 12, 42, 50, 23, 24, 25, 26,
00821 121, 320, 323, 325, 330, 8, 334, 12, 21, 236,
00822 43, 22, 324, 335, 337, 23, 24, 25, 26, 338,
00823 8, 340, 12, 21, 42, 43, 22, 342, 341, 347,
00824 23, 24, 25, 26, 348, 351, 352, 21, 363, 350,
00825 22, 362, 364, 365, 23, 24, 25, 26, 368, 5,
00826 227, 243, 21, 29, 290, 22, 345, 289, 275, 23,
00827 24, 25, 26, 366, 272, 356, 0, 21, 226, 223,
00828 22, 0, 0, 0, 23, 24, 25, 26, 204, 205,
00829 8, 206, 207, 0, 0, 0, 0, 266, 204, 205,
00830 8, 206, 207, 0, 0, 0, 0, 0, 0, 0,
00831 0, 0, 0, 0, 0, 208, 0, 0, 0, 0,
00832 0, 0, 0, 0, 0, 208, 0, 0, 0, 0,
00833 209, 210, 0, 0, 0, 0, 211, 0, 0, 0,
00834 209, 210, 0, 0, 0, 0, 211
00835 };
00836
00837
static const short yycheck[] =
00838 {
00839 9, 10, 11, 12, 129, 14, 137, 41, 11, 4,
00840 19, 20, 12, 92, 116, 46, 19, 11, 13, 13,
00841 14, 123, 6, 32, 31, 19, 20, 6, 59, 38,
00842 39, 4, 107, 42, 43, 6, 45, 17, 6, 48,
00843 47, 50, 51, 27, 130, 48, 6, 6, 12, 58,
00844 6, 6, 0, 17, 48, 35, 90, 4, 155, 6,
00845 7, 0, 33, 72, 73, 30, 6, 74, 9, 194,
00846 9, 6, 12, 73, 83, 172, 173, 174, 72, 176,
00847 177, 178, 179, 92, 31, 64, 50, 42, 219, 17,
00848 0, 51, 51, 64, 50, 104, 64, 199, 39, 9,
00849 39, 66, 188, 300, 14, 52, 9, 6, 6, 51,
00850 104, 14, 10, 11, 123, 190, 6, 13, 125, 12,
00851 129, 130, 50, 51, 22, 23, 6, 324, 137, 39,
00852 227, 104, 22, 33, 33, 12, 39, 37, 235, 35,
00853 17, 12, 6, 137, 17, 17, 277, 156, 157, 180,
00854 48, 230, 6, 33, 163, 53, 15, 166, 56, 32,
00855 163, 32, 60, 61, 62, 63, 197, 162, 162, 163,
00856 53, 15, 181, 32, 183, 184, 185, 50, 51, 188,
00857 6, 54, 6, 184, 185, 194, 12, 181, 32, 198,
00858 184, 185, 15, 17, 203, 292, 293, 294, 295, 233,
00859 234, 298, 299, 203, 198, 35, 36, 191, 53, 32,
00860 219, 184, 185, 15, 33, 340, 27, 28, 37, 228,
00861 50, 230, 231, 14, 6, 219, 6, 236, 10, 11,
00862 32, 278, 279, 330, 228, 65, 66, 17, 34, 12,
00863 22, 23, 24, 16, 17, 12, 255, 29, 35, 16,
00864 347, 348, 13, 284, 351, 16, 38, 266, 12, 41,
00865 42, 43, 16, 17, 12, 274, 48, 49, 277, 278,
00866 279, 53, 266, 6, 56, 12, 51, 6, 60, 61,
00867 62, 63, 313, 277, 53, 6, 33, 56, 53, 53,
00868 53, 300, 56, 62, 63, 53, 305, 12, 62, 63,
00869 12, 16, 17, 12, 16, 17, 300, 16, 17, 53,
00870 6, 17, 32, 17, 57, 324, 13, 52, 12, 17,
00871 50, 6, 14, 6, 32, 10, 11, 17, 50, 14,
00872 324, 340, 341, 18, 19, 36, 21, 22, 23, 24,
00873 25, 350, 27, 28, 29, 32, 13, 7, 13, 34,
00874 14, 35, 18, 362, 6, 364, 41, 16, 43, 16,
00875 16, 14, 6, 48, 49, 14, 10, 11, 53, 17,
00876 17, 56, 17, 58, 59, 60, 61, 62, 63, 23,
00877 17, 6, 51, 7, 13, 10, 11, 55, 50, 17,
00878 17, 17, 15, 35, 6, 17, 6, 51, 23, 16,
00879 10, 11, 16, 14, 48, 49, 14, 6, 17, 53,
00880 6, 17, 56, 23, 10, 11, 60, 61, 62, 63,
00881 45, 23, 17, 36, 17, 6, 6, 23, 53, 10,
00882 11, 56, 32, 17, 17, 60, 61, 62, 63, 17,
00883 6, 15, 23, 53, 10, 11, 56, 32, 13, 17,
00884 60, 61, 62, 63, 17, 17, 17, 53, 15, 36,
00885 56, 32, 6, 17, 60, 61, 62, 63, 17, 1,
00886 147, 170, 53, 4, 231, 56, 319, 230, 203, 60,
00887 61, 62, 63, 362, 198, 342, -1, 53, 146, 140,
00888 56, -1, -1, -1, 60, 61, 62, 63, 4, 5,
00889 6, 7, 8, -1, -1, -1, -1, 13, 4, 5,
00890 6, 7, 8, -1, -1, -1, -1, -1, -1, -1,
00891 -1, -1, -1, -1, -1, 31, -1, -1, -1, -1,
00892 -1, -1, -1, -1, -1, 31, -1, -1, -1, -1,
00893 46, 47, -1, -1, -1, -1, 52, -1, -1, -1,
00894 46, 47, -1, -1, -1, -1, 52
00895 };
00896
00897
00898
00899
static const unsigned char yystos[] =
00900 {
00901 0, 9, 39, 68, 69, 69, 12, 0, 6, 10,
00902 11, 22, 23, 24, 29, 38, 41, 42, 43, 48,
00903 49, 53, 56, 60, 61, 62, 63, 71, 80, 87,
00904 94, 97, 100, 105, 107, 111, 119, 68, 51, 6,
00905 80, 80, 10, 11, 80, 100, 107, 97, 48, 111,
00906 11, 100, 17, 6, 12, 6, 6, 42, 100, 107,
00907 100, 53, 56, 62, 63, 53, 56, 62, 63, 53,
00908 53, 68, 13, 35, 33, 37, 95, 6, 64, 80,
00909 95, 117, 118, 34, 12, 17, 112, 113, 14, 80,
00910 80, 12, 16, 17, 84, 17, 84, 80, 80, 80,
00911 50, 113, 37, 95, 12, 80, 80, 12, 6, 88,
00912 89, 12, 51, 6, 6, 113, 6, 53, 53, 53,
00913 53, 45, 96, 100, 102, 97, 98, 99, 95, 50,
00914 54, 35, 36, 50, 65, 66, 106, 13, 16, 6,
00915 32, 116, 17, 80, 17, 114, 115, 84, 22, 80,
00916 81, 82, 83, 105, 57, 70, 10, 11, 14, 18,
00917 19, 21, 24, 25, 27, 28, 29, 43, 58, 59,
00918 75, 76, 77, 78, 79, 86, 87, 92, 111, 119,
00919 52, 48, 73, 100, 119, 12, 17, 88, 50, 14,
00920 32, 72, 6, 17, 50, 103, 103, 15, 32, 80,
00921 103, 95, 36, 32, 4, 5, 7, 8, 31, 46,
00922 47, 52, 74, 80, 90, 91, 104, 80, 91, 13,
00923 96, 7, 6, 118, 13, 14, 114, 70, 35, 12,
00924 32, 18, 86, 80, 80, 111, 10, 80, 107, 80,
00925 6, 16, 16, 76, 16, 86, 86, 86, 17, 86,
00926 86, 86, 86, 113, 100, 14, 80, 73, 73, 14,
00927 91, 6, 17, 88, 68, 17, 13, 104, 17, 17,
00928 16, 113, 102, 103, 51, 98, 7, 13, 30, 66,
00929 55, 96, 15, 17, 15, 17, 86, 100, 101, 83,
00930 81, 17, 17, 84, 17, 84, 86, 80, 17, 17,
00931 35, 51, 16, 6, 80, 14, 6, 17, 17, 14,
00932 100, 6, 109, 110, 80, 96, 90, 90, 17, 15,
00933 23, 93, 113, 17, 32, 36, 86, 86, 86, 86,
00934 17, 86, 86, 101, 6, 17, 80, 17, 17, 85,
00935 15, 13, 32, 113, 15, 93, 101, 17, 17, 86,
00936 36, 17, 17, 104, 104, 108, 110, 86, 86, 51,
00937 80, 86, 32, 15, 6, 17, 108, 80, 17
00938 };
00939
00940
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00941
# define YYSIZE_T __SIZE_TYPE__
00942
#endif
00943
#if ! defined (YYSIZE_T) && defined (size_t)
00944
# define YYSIZE_T size_t
00945
#endif
00946
#if ! defined (YYSIZE_T)
00947
# if defined (__STDC__) || defined (__cplusplus)
00948
# include <stddef.h>
00949
# define YYSIZE_T size_t
00950
# endif
00951
#endif
00952
#if ! defined (YYSIZE_T)
00953
# define YYSIZE_T unsigned int
00954
#endif
00955
00956
#define yyerrok (yyerrstatus = 0)
00957
#define yyclearin (yychar = YYEMPTY)
00958
#define YYEMPTY (-2)
00959
#define YYEOF 0
00960
00961
#define YYACCEPT goto yyacceptlab
00962
#define YYABORT goto yyabortlab
00963
#define YYERROR goto yyerrlab1
00964
00965
00966
00967
00968
00969
#define YYFAIL goto yyerrlab
00970
00971
#define YYRECOVERING() (!!yyerrstatus)
00972
00973
#define YYBACKUP(Token, Value) \
00974
do \
00975
if (yychar == YYEMPTY && yylen == 1) \
00976
{ \
00977
yychar = (Token); \
00978
yylval = (Value); \
00979
yytoken = YYTRANSLATE (yychar); \
00980
YYPOPSTACK; \
00981
goto yybackup; \
00982
} \
00983
else \
00984
{ \
00985
yyerror ("syntax error: cannot back up");\
00986
YYERROR; \
00987
} \
00988
while (0)
00989
00990
#define YYTERROR 1
00991
#define YYERRCODE 256
00992
00993
00994
00995
00996
#ifndef YYLLOC_DEFAULT
00997
# define YYLLOC_DEFAULT(Current, Rhs, N) \
00998
Current.first_line = Rhs[1].first_line; \
00999
Current.first_column = Rhs[1].first_column; \
01000
Current.last_line = Rhs[N].last_line; \
01001
Current.last_column = Rhs[N].last_column;
01002
#endif
01003
01004
01005
01006
#ifdef YYLEX_PARAM
01007
# define YYLEX yylex (YYLEX_PARAM)
01008
#else
01009
# define YYLEX yylex ()
01010
#endif
01011
01012
01013
#if YYDEBUG
01014
01015
# ifndef YYFPRINTF
01016
# include <stdio.h>
01017
# define YYFPRINTF fprintf
01018
# endif
01019
01020
# define YYDPRINTF(Args) \
01021
do { \
01022
if (yydebug) \
01023
YYFPRINTF Args; \
01024
} while (0)
01025
01026
# define YYDSYMPRINT(Args) \
01027
do { \
01028
if (yydebug) \
01029
yysymprint Args; \
01030
} while (0)
01031
01032
# define YYDSYMPRINTF(Title, Token, Value, Location) \
01033
do { \
01034
if (yydebug) \
01035
{ \
01036
YYFPRINTF (stderr, "%s ", Title); \
01037
yysymprint (stderr, \
01038
Token, Value); \
01039
YYFPRINTF (stderr, "\n"); \
01040
} \
01041
} while (0)
01042
01043
01044
01045
01046
01047
01048
#if defined (__STDC__) || defined (__cplusplus)
01049
static void
01050 yy_stack_print (
short *bottom,
short *top)
01051 #
else
01052
static void
01053 yy_stack_print (bottom, top)
01054 short *bottom;
01055
short *top;
01056 #endif
01057 {
01058 YYFPRINTF (stderr,
"Stack now");
01059
for (; bottom <= top; ++bottom)
01060 YYFPRINTF (stderr,
" %d", *bottom);
01061 YYFPRINTF (stderr,
"\n");
01062 }
01063
01064
# define YY_STACK_PRINT(Bottom, Top) \
01065
do { \
01066
if (yydebug) \
01067
yy_stack_print ((Bottom), (Top)); \
01068
} while (0)
01069
01070
01071
01072
01073
01074
01075
#if defined (__STDC__) || defined (__cplusplus)
01076
static void
01077 yy_reduce_print (
int yyrule)
01078 #
else
01079
static void
01080 yy_reduce_print (yyrule)
01081 int yyrule;
01082 #endif
01083 {
01084
int yyi;
01085
unsigned int yylineno = yyrline[yyrule];
01086 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %u), ",
01087 yyrule - 1, yylineno);
01088
01089
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
01090 YYFPRINTF (stderr,
"%s ", yytname [yyrhs[yyi]]);
01091 YYFPRINTF (stderr,
"-> %s\n", yytname [yyr1[yyrule]]);
01092 }
01093
01094
# define YY_REDUCE_PRINT(Rule) \
01095
do { \
01096
if (yydebug) \
01097
yy_reduce_print (Rule); \
01098
} while (0)
01099
01100
01101
01102
int yydebug;
01103
#else
01104
# define YYDPRINTF(Args)
01105
# define YYDSYMPRINT(Args)
01106
# define YYDSYMPRINTF(Title, Token, Value, Location)
01107
# define YY_STACK_PRINT(Bottom, Top)
01108
# define YY_REDUCE_PRINT(Rule)
01109
#endif
01110
01111
01112
01113
#ifndef YYINITDEPTH
01114
# define YYINITDEPTH 200
01115
#endif
01116
01117
01118
01119
01120
01121
01122
01123
01124
#if YYMAXDEPTH == 0
01125
# undef YYMAXDEPTH
01126
#endif
01127
01128
#ifndef YYMAXDEPTH
01129
# define YYMAXDEPTH 10000
01130
#endif
01131
01132
01133
01134
#if YYERROR_VERBOSE
01135
01136
# ifndef yystrlen
01137
# if defined (__GLIBC__) && defined (_STRING_H)
01138
# define yystrlen strlen
01139
# else
01140
01141
static YYSIZE_T
01142
# if defined (__STDC__) || defined (__cplusplus)
01143
yystrlen (
const char *yystr)
01144 #
else
01145 yystrlen (yystr)
01146 const
char *yystr;
01147 # endif
01148 {
01149
register const char *yys = yystr;
01150
01151
while (*yys++ !=
'\0')
01152
continue;
01153
01154
return yys - yystr - 1;
01155 }
01156
# endif
01157
# endif
01158
01159
# ifndef yystpcpy
01160
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
01161
# define yystpcpy stpcpy
01162
# else
01163
01164
01165
static char *
01166
# if defined (__STDC__) || defined (__cplusplus)
01167
yystpcpy (
char *yydest,
const char *yysrc)
01168 #
else
01169 yystpcpy (yydest, yysrc)
01170 char *yydest;
01171 const
char *yysrc;
01172 # endif
01173 {
01174
register char *yyd = yydest;
01175
register const char *yys = yysrc;
01176
01177
while ((*yyd++ = *yys++) !=
'\0')
01178
continue;
01179
01180
return yyd - 1;
01181 }
01182
# endif
01183
# endif
01184
01185
#endif
01186
01187
01188
01189
#if YYDEBUG
01190
01191
01192
01193
01194
#if defined (__STDC__) || defined (__cplusplus)
01195
static void
01196 yysymprint (FILE *yyoutput,
int yytype, YYSTYPE *yyvaluep)
01197 #
else
01198
static void
01199 yysymprint (yyoutput, yytype, yyvaluep)
01200 FILE *yyoutput;
01201
int yytype;
01202 YYSTYPE *yyvaluep;
01203 #endif
01204 {
01205
01206 (
void) yyvaluep;
01207
01208
if (yytype < YYNTOKENS)
01209 {
01210 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
01211
# ifdef YYPRINT
01212
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
01213
# endif
01214
}
01215
else
01216 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
01217
01218
switch (yytype)
01219 {
01220
default:
01221
break;
01222 }
01223 YYFPRINTF (yyoutput,
")");
01224 }
01225
01226
#endif
01227
01228
01229
01230
01231
#if defined (__STDC__) || defined (__cplusplus)
01232
static void
01233 yydestruct (
int yytype, YYSTYPE *yyvaluep)
01234 #
else
01235
static void
01236 yydestruct (yytype, yyvaluep)
01237 int yytype;
01238 YYSTYPE *yyvaluep;
01239 #endif
01240 {
01241
01242 (
void) yyvaluep;
01243
01244
switch (yytype)
01245 {
01246
01247
default:
01248
break;
01249 }
01250 }
01251
01252
01253
01254
01255
#ifdef YYPARSE_PARAM
01256
# if defined (__STDC__) || defined (__cplusplus)
01257
int yyparse (
void *YYPARSE_PARAM);
01258
# else
01259
int yyparse ();
01260
# endif
01261
#else
01262
#if defined (__STDC__) || defined (__cplusplus)
01263
int yyparse (
void);
01264
#else
01265
int yyparse ();
01266
#endif
01267
#endif
01268
01269
01270
01271
01272
int yychar;
01273
01274
01275 YYSTYPE yylval;
01276
01277
01278
int yynerrs;
01279
01280
01281
01282
01283
01284
01285
01286
#ifdef YYPARSE_PARAM
01287
# if defined (__STDC__) || defined (__cplusplus)
01288
int yyparse (
void *YYPARSE_PARAM)
01289 #
else
01290
int yyparse (YYPARSE_PARAM)
01291 void *YYPARSE_PARAM;
01292 # endif
01293 #else
01294 #if defined (__STDC__) || defined (__cplusplus)
01295
int
01296 yyparse (
void)
01297 #else
01298
int
01299 yyparse ()
01300
01301 #endif
01302 #endif
01303 {
01304
01305
register int yystate;
01306
register int yyn;
01307
int yyresult;
01308
01309
int yyerrstatus;
01310
01311
int yytoken = 0;
01312
01313
01314
01315
01316
01317
01318
01319
01320
01321
01322
short yyssa[YYINITDEPTH];
01323
short *yyss = yyssa;
01324
register short *yyssp;
01325
01326
01327 YYSTYPE yyvsa[YYINITDEPTH];
01328 YYSTYPE *yyvs = yyvsa;
01329
register YYSTYPE *yyvsp;
01330
01331
01332
01333
#define YYPOPSTACK (yyvsp--, yyssp--)
01334
01335 YYSIZE_T yystacksize = YYINITDEPTH;
01336
01337
01338
01339 YYSTYPE yyval;
01340
01341
01342
01343
01344
int yylen;
01345
01346 YYDPRINTF ((stderr,
"Starting parse\n"));
01347
01348 yystate = 0;
01349 yyerrstatus = 0;
01350 yynerrs = 0;
01351 yychar = YYEMPTY;
01352
01353
01354
01355
01356
01357
01358 yyssp = yyss;
01359 yyvsp = yyvs;
01360
01361
goto yysetstate;
01362
01363
01364
01365
01366 yynewstate:
01367
01368
01369
01370 yyssp++;
01371
01372 yysetstate:
01373 *yyssp = yystate;
01374
01375
if (yyss + yystacksize - 1 <= yyssp)
01376 {
01377
01378 YYSIZE_T yysize = yyssp - yyss + 1;
01379
01380
#ifdef yyoverflow
01381
{
01382
01383
01384
01385 YYSTYPE *yyvs1 = yyvs;
01386
short *yyss1 = yyss;
01387
01388
01389
01390
01391
01392
01393 yyoverflow (
"parser stack overflow",
01394 &yyss1, yysize *
sizeof (*yyssp),
01395 &yyvs1, yysize *
sizeof (*yyvsp),
01396
01397 &yystacksize);
01398
01399 yyss = yyss1;
01400 yyvs = yyvs1;
01401 }
01402
#else
01403
# ifndef YYSTACK_RELOCATE
01404
goto yyoverflowlab;
01405
# else
01406
01407
if (YYMAXDEPTH <= yystacksize)
01408
goto yyoverflowlab;
01409 yystacksize *= 2;
01410
if (YYMAXDEPTH < yystacksize)
01411 yystacksize = YYMAXDEPTH;
01412
01413 {
01414
short *yyss1 = yyss;
01415
union yyalloc *yyptr =
01416 (
union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01417
if (! yyptr)
01418
goto yyoverflowlab;
01419 YYSTACK_RELOCATE (yyss);
01420 YYSTACK_RELOCATE (yyvs);
01421
01422
# undef YYSTACK_RELOCATE
01423
if (yyss1 != yyssa)
01424 YYSTACK_FREE (yyss1);
01425 }
01426
# endif
01427
#endif
01428
01429 yyssp = yyss + yysize - 1;
01430 yyvsp = yyvs + yysize - 1;
01431
01432
01433 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
01434 (
unsigned long int) yystacksize));
01435
01436
if (yyss + yystacksize - 1 <= yyssp)
01437 YYABORT;
01438 }
01439
01440 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
01441
01442
goto yybackup;
01443
01444
01445
01446
01447 yybackup:
01448
01449
01450
01451
01452
01453
01454
01455 yyn = yypact[yystate];
01456
if (yyn == YYPACT_NINF)
01457
goto yydefault;
01458
01459
01460
01461
01462
if (yychar == YYEMPTY)
01463 {
01464 YYDPRINTF ((stderr,
"Reading a token: "));
01465 yychar = YYLEX;
01466 }
01467
01468
if (yychar <= YYEOF)
01469 {
01470 yychar = yytoken = YYEOF;
01471 YYDPRINTF ((stderr,
"Now at end of input.\n"));
01472 }
01473
else
01474 {
01475 yytoken = YYTRANSLATE (yychar);
01476 YYDSYMPRINTF (
"Next token is", yytoken, &yylval, &yylloc);
01477 }
01478
01479
01480
01481 yyn += yytoken;
01482
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01483
goto yydefault;
01484 yyn = yytable[yyn];
01485
if (yyn <= 0)
01486 {
01487
if (yyn == 0 || yyn == YYTABLE_NINF)
01488
goto yyerrlab;
01489 yyn = -yyn;
01490
goto yyreduce;
01491 }
01492
01493
if (yyn == YYFINAL)
01494 YYACCEPT;
01495
01496
01497 YYDPRINTF ((stderr,
"Shifting token %s, ", yytname[yytoken]));
01498
01499
01500
if (yychar != YYEOF)
01501 yychar = YYEMPTY;
01502
01503 *++yyvsp = yylval;
01504
01505
01506
01507
01508
if (yyerrstatus)
01509 yyerrstatus--;
01510
01511 yystate = yyn;
01512
goto yynewstate;
01513
01514
01515
01516
01517
01518 yydefault:
01519 yyn = yydefact[yystate];
01520
if (yyn == 0)
01521
goto yyerrlab;
01522
goto yyreduce;
01523
01524
01525
01526
01527
01528 yyreduce:
01529
01530 yylen = yyr2[yyn];
01531
01532
01533
01534
01535
01536
01537
01538
01539
01540 yyval = yyvsp[1-yylen];
01541
01542
01543 YY_REDUCE_PRINT (yyn);
01544
switch (yyn)
01545 {
01546
case 2:
01547
#line 165 "yacc.yy"
01548
{
01549 ;}
01550
break;
01551
01552
case 4:
01553
#line 172 "yacc.yy"
01554
{
01555 printf(
"<INCLUDE>%s</INCLUDE>\n", yyvsp[-1]._str->latin1() );
01556 ;}
01557
break;
01558
01559
case 5:
01560
#line 176 "yacc.yy"
01561
{
01562 ;}
01563
break;
01564
01565
case 6:
01566
#line 179 "yacc.yy"
01567
{
01568 ;}
01569
break;
01570
01571
case 7:
01572
#line 184 "yacc.yy"
01573
{ yyval._int = 1; ;}
01574
break;
01575
01576
case 8:
01577
#line 185 "yacc.yy"
01578
{ yyval._int = 0; ;}
01579
break;
01580
01581
case 9:
01582
#line 190 "yacc.yy"
01583
{
01584
if (yyvsp[-2]._int)
01585 printf(
"<CLASS>\n <NAME>%s</NAME>\n%s%s</CLASS>\n", ( in_namespace + *yyvsp[-4]._str ).latin1(), yyvsp[-3]._str->latin1(), yyvsp[-1]._str->latin1() );
01586
01587 dcop_area = 0;
01588 dcop_signal_area = 0;
01589
01590 ;}
01591
break;
01592
01593
case 10:
01594
#line 199 "yacc.yy"
01595
{
01596
if (yyvsp[-2]._int)
01597 printf(
"<CLASS>\n <NAME>%s</NAME>\n <LINK_SCOPE>%s</LINK_SCOPE>\n%s%s</CLASS>\n", ( in_namespace + *yyvsp[-4]._str ).latin1(),yyvsp[-5]._str->latin1(), yyvsp[-3]._str->latin1(), yyvsp[-1]._str->latin1() );
01598
01599 dcop_area = 0;
01600 dcop_signal_area = 0;
01601
01602 ;}
01603
break;
01604
01605
case 11:
01606
#line 208 "yacc.yy"
01607
{
01608 ;}
01609
break;
01610
01611
case 12:
01612
#line 211 "yacc.yy"
01613
{
01614 ;}
01615
break;
01616
01617
case 13:
01618
#line 214 "yacc.yy"
01619
{
01620 ;}
01621
break;
01622
01623
case 14:
01624
#line 217 "yacc.yy"
01625
{
01626 in_namespace += *yyvsp[-1]._str; in_namespace +=
"::";
01627 ;}
01628
break;
01629
01630
case 15:
01631
#line 221 "yacc.yy"
01632
{
01633
int pos = in_namespace.findRev(
"::", -3 );
01634
if( pos >= 0 )
01635 in_namespace = in_namespace.left( pos + 2 );
01636
else
01637 in_namespace =
"";
01638 ;}
01639
break;
01640
01641
case 16:
01642
#line 229 "yacc.yy"
01643
{
01644 ;}
01645
break;
01646
01647
case 17:
01648
#line 232 "yacc.yy"
01649
{
01650 ;}
01651
break;
01652
01653
case 18:
01654
#line 235 "yacc.yy"
01655
{
01656 ;}
01657
break;
01658
01659
case 19:
01660
#line 238 "yacc.yy"
01661
{
01662 ;}
01663
break;
01664
01665
case 20:
01666
#line 241 "yacc.yy"
01667
{
01668 ;}
01669
break;
01670
01671
case 21:
01672
#line 244 "yacc.yy"
01673
{
01674 ;}
01675
break;
01676
01677
case 22:
01678
#line 247 "yacc.yy"
01679
{
01680 ;}
01681
break;
01682
01683
case 23:
01684
#line 250 "yacc.yy"
01685
{
01686 ;}
01687
break;
01688
01689
case 24:
01690
#line 253 "yacc.yy"
01691
{
01692 ;}
01693
break;
01694
01695
case 25:
01696
#line 256 "yacc.yy"
01697
{
01698 ;}
01699
break;
01700
01701
case 36:
01702
#line 273 "yacc.yy"
01703
{
01704 dcop_area = 0;
01705 dcop_signal_area = 0;
01706 ;}
01707
break;
01708
01709
case 37:
01710
#line 278 "yacc.yy"
01711
{
01712 dcop_area = 0;
01713 dcop_signal_area = 0;
01714 ;}
01715
break;
01716
01717
case 38:
01718
#line 286 "yacc.yy"
01719
{
01720 dcop_area = 1;
01721 dcop_signal_area = 0;
01722 ;}
01723
break;
01724
01725
case 39:
01726
#line 294 "yacc.yy"
01727
{
01728
01729
01730
01731
01732 dcop_area = 1;
01733 dcop_signal_area = 1;
01734 ;}
01735
break;
01736
01737
case 40:
01738
#line 305 "yacc.yy"
01739
{
01740 yyval._str = yyvsp[0]._str;
01741 ;}
01742
break;
01743
01744
case 41:
01745
#line 308 "yacc.yy"
01746
{
01747
QString* tmp =
new QString(
"%1::%2" );
01748 *tmp = tmp->arg(*(yyvsp[-2]._str)).arg(*(yyvsp[0]._str));
01749 yyval._str = tmp;
01750 ;}
01751
break;
01752
01753
case 42:
01754
#line 317 "yacc.yy"
01755
{
01756
QString* tmp =
new QString(
" <SUPER>%1</SUPER>\n" );
01757 *tmp = tmp->arg( *(yyvsp[0]._str) );
01758 yyval._str = tmp;
01759 ;}
01760
break;
01761
01762
case 43:
01763
#line 323 "yacc.yy"
01764
{
01765
QString* tmp =
new QString(
" <SUPER>%1</SUPER>\n" );
01766 *tmp = tmp->arg( *(yyvsp[-3]._str) +
"<" + *(yyvsp[-1]._str) +
">" );
01767 yyval._str = tmp;
01768 ;}
01769
break;
01770
01771
case 44:
01772
#line 332 "yacc.yy"
01773
{
01774 yyval._str = yyvsp[0]._str;
01775 ;}
01776
break;
01777
01778
case 45:
01779
#line 336 "yacc.yy"
01780
{
01781 yyval._str = yyvsp[0]._str;
01782 ;}
01783
break;
01784
01785
case 46:
01786
#line 343 "yacc.yy"
01787
{
01788 yyval._str = yyvsp[-1]._str;
01789 ;}
01790
break;
01791
01792
case 47:
01793
#line 347 "yacc.yy"
01794
{
01795
01796 yyval._str =
new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) );
01797 ;}
01798
break;
01799
01800
case 48:
01801
#line 355 "yacc.yy"
01802
{
01803 yyval._str = yyvsp[0]._str;
01804 ;}
01805
break;
01806
01807
case 49:
01808
#line 359 "yacc.yy"
01809
{
01810 yyval._str =
new QString(
"" );
01811 ;}
01812
break;
01813
01814
case 50:
01815
#line 366 "yacc.yy"
01816
{
01817 ;}
01818
break;
01819
01820
case 52:
01821
#line 373 "yacc.yy"
01822
{
01823 yyval._str =
new QString(
"" );
01824 ;}
01825
break;
01826
01827
case 53:
01828
#line 377 "yacc.yy"
01829
{
01830 yyval._str =
new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01831 ;}
01832
break;
01833
01834
case 54:
01835
#line 381 "yacc.yy"
01836
{
01837 yyval._str =
new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01838 ;}
01839
break;
01840
01841
case 55:
01842
#line 385 "yacc.yy"
01843
{
01844 yyval._str =
new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01845 ;}
01846
break;
01847
01848
case 56:
01849
#line 389 "yacc.yy"
01850
{
01851 yyval._str = yyvsp[0]._str;
01852 ;}
01853
break;
01854
01855
case 57:
01856
#line 393 "yacc.yy"
01857
{
01858 yyval._str = yyvsp[0]._str;
01859 ;}
01860
break;
01861
01862
case 58:
01863
#line 397 "yacc.yy"
01864
{
01865 yyval._str = yyvsp[0]._str;
01866 ;}
01867
break;
01868
01869
case 59:
01870
#line 401 "yacc.yy"
01871
{
01872 yyval._str = yyvsp[0]._str;
01873 ;}
01874
break;
01875
01876
case 60:
01877
#line 405 "yacc.yy"
01878
{
01879 yyval._str = yyvsp[0]._str;
01880 ;}
01881
break;
01882
01883
case 61:
01884
#line 409 "yacc.yy"
01885
{
01886 yyval._str = yyvsp[0]._str;
01887 ;}
01888
break;
01889
01890
case 62:
01891
#line 413 "yacc.yy"
01892
{
01893 yyval._str = yyvsp[0]._str;
01894 ;}
01895
break;
01896
01897
case 63:
01898
#line 417 "yacc.yy"
01899
{
01900 yyval._str = yyvsp[0]._str;
01901 ;}
01902
break;
01903
01904
case 64:
01905
#line 421 "yacc.yy"
01906
{
01907 yyval._str = yyvsp[0]._str;
01908 ;}
01909
break;
01910
01911
case 65:
01912
#line 425 "yacc.yy"
01913
{
01914 yyval._str = yyvsp[0]._str;
01915 ;}
01916
break;
01917
01918
case 66:
01919
#line 429 "yacc.yy"
01920
{
01921 yyval._str = yyvsp[0]._str;
01922 ;}
01923
break;
01924
01925
case 67:
01926
#line 433 "yacc.yy"
01927
{
01928 yyval._str = yyvsp[0]._str;
01929 ;}
01930
break;
01931
01932
case 68:
01933
#line 437 "yacc.yy"
01934
{
01935 yyval._str = yyvsp[0]._str;
01936 ;}
01937
break;
01938
01939
case 75:
01940
#line 455 "yacc.yy"
01941
{;}
01942
break;
01943
01944
case 76:
01945
#line 456 "yacc.yy"
01946
{;}
01947
break;
01948
01949
case 77:
01950
#line 460 "yacc.yy"
01951
{;}
01952
break;
01953
01954
case 78:
01955
#line 461 "yacc.yy"
01956
{;}
01957
break;
01958
01959
case 79:
01960
#line 462 "yacc.yy"
01961
{;}
01962
break;
01963
01964
case 80:
01965
#line 463 "yacc.yy"
01966
{;}
01967
break;
01968
01969
case 81:
01970
#line 464 "yacc.yy"
01971
{;}
01972
break;
01973
01974
case 82:
01975
#line 468 "yacc.yy"
01976
{;}
01977
break;
01978
01979
case 83:
01980
#line 469 "yacc.yy"
01981
{;}
01982
break;
01983
01984
case 84:
01985
#line 470 "yacc.yy"
01986
{;}
01987
break;
01988
01989
case 85:
01990
#line 475 "yacc.yy"
01991
{
01992
if (dcop_area) {
01993
QString* tmp =
new QString(
"<TYPEDEF name=\"%1\" template=\"%2\"><PARAM %3</TYPEDEF>\n");
01994 *tmp = tmp->arg( *(yyvsp[-1]._str) ).arg( *(yyvsp[-5]._str) ).arg( *(yyvsp[-3]._str) );
01995 yyval._str = tmp;
01996 }
else {
01997 yyval._str =
new QString(
"");
01998 }
01999 ;}
02000
break;
02001
02002
case 86:
02003
#line 485 "yacc.yy"
02004
{
02005
if (dcop_area)
02006 yyerror(
"scoped template typedefs are not supported in dcop areas!");
02007 ;}
02008
break;
02009
02010
case 87:
02011
#line 493 "yacc.yy"
02012
{
02013 yyval._int = 0;
02014 ;}
02015
break;
02016
02017
case 88:
02018
#line 497 "yacc.yy"
02019
{
02020 yyval._int = 1;
02021 ;}
02022
break;
02023
02024
case 89:
02025
#line 503 "yacc.yy"
02026
{ yyval._str =
new QString(
"signed int"); ;}
02027
break;
02028
02029
case 90:
02030
#line 504 "yacc.yy"
02031
{ yyval._str =
new QString(
"signed int"); ;}
02032
break;
02033
02034
case 91:
02035
#line 505 "yacc.yy"
02036
{ yyval._str =
new QString(
"unsigned int"); ;}
02037
break;
02038
02039
case 92:
02040
#line 506 "yacc.yy"
02041
{ yyval._str =
new QString(
"unsigned int"); ;}
02042
break;
02043
02044
case 93:
02045
#line 507 "yacc.yy"
02046
{ yyval._str =
new QString(
"signed short int"); ;}
02047
break;
02048
02049
case 94:
02050
#line 508 "yacc.yy"
02051
{ yyval._str =
new QString(
"signed short int"); ;}
02052
break;
02053
02054
case 95:
02055
#line 509 "yacc.yy"
02056
{ yyval._str =
new QString(
"signed long int"); ;}
02057
break;
02058
02059
case 96:
02060
#line 510 "yacc.yy"
02061
{ yyval._str =
new QString(
"signed long int"); ;}
02062
break;
02063
02064
case 97:
02065
#line 511 "yacc.yy"
02066
{ yyval._str =
new QString(
"unsigned short int"); ;}
02067
break;
02068
02069
case 98:
02070
#line 512 "yacc.yy"
02071
{ yyval._str =
new QString(
"unsigned short int"); ;}
02072
break;
02073
02074
case 99:
02075
#line 513 "yacc.yy"
02076
{ yyval._str =
new QString(
"unsigned long int"); ;}
02077
break;
02078
02079
case 100:
02080
#line 514 "yacc.yy"
02081
{ yyval._str =
new QString(
"unsigned long int"); ;}
02082
break;
02083
02084
case 101:
02085
#line 515 "yacc.yy"
02086
{ yyval._str =
new QString(
"int"); ;}
02087
break;
02088
02089
case 102:
02090
#line 516 "yacc.yy"
02091
{ yyval._str =
new QString(
"long int"); ;}
02092
break;
02093
02094
case 103:
02095
#line 517 "yacc.yy"
02096
{ yyval._str =
new QString(
"long int"); ;}
02097
break;
02098
02099
case 104:
02100
#line 518 "yacc.yy"
02101
{ yyval._str =
new QString(
"short int"); ;}
02102
break;
02103
02104
case 105:
02105
#line 519 "yacc.yy"
02106
{ yyval._str =
new QString(
"short int"); ;}
02107
break;
02108
02109
case 106:
02110
#line 520 "yacc.yy"
02111
{ yyval._str =
new QString(
"char"); ;}
02112
break;
02113
02114
case 107:
02115
#line 521 "yacc.yy"
02116
{ yyval._str =
new QString(
"signed char"); ;}
02117
break;
02118
02119
case 108:
02120
#line 522 "yacc.yy"
02121
{ yyval._str =
new QString(
"unsigned char"); ;}
02122
break;
02123
02124
case 111:
02125
#line 532 "yacc.yy"
02126
{
02127 yyval._str =
new QString(
"" );
02128 ;}
02129
break;
02130
02131
case 113:
02132
#line 537 "yacc.yy"
02133
{
02134 yyval._str =
new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) );
02135 ;}
02136
break;
02137
02138
case 115:
02139
#line 545 "yacc.yy"
02140
{ yyval._str = yyvsp[0]._str; ;}
02141
break;
02142
02143
case 116:
02144
#line 546 "yacc.yy"
02145
{ yyval._str = yyvsp[0]._str; ;}
02146
break;
02147
02148
case 117:
02149
#line 547 "yacc.yy"
02150
{ yyval._str = yyvsp[0]._str; ;}
02151
break;
02152
02153
case 118:
02154
#line 548 "yacc.yy"
02155
{
02156
QString *tmp =
new QString(
"%1<%2>");
02157 *tmp = tmp->arg(*(yyvsp[-3]._str));
02158 *tmp = tmp->arg(*(yyvsp[-1]._str));
02159 yyval._str = tmp;
02160 ;}
02161
break;
02162
02163
case 119:
02164
#line 554 "yacc.yy"
02165
{
02166
QString *tmp =
new QString(
"%1<%2>::%3");
02167 *tmp = tmp->arg(*(yyvsp[-5]._str));
02168 *tmp = tmp->arg(*(yyvsp[-3]._str));
02169 *tmp = tmp->arg(*(yyvsp[0]._str));
02170 yyval._str = tmp;
02171 ;}
02172
break;
02173
02174
case 120:
02175
#line 566 "yacc.yy"
02176
{
02177 yyval._str =
new QString(*(yyvsp[-2]._str) +
"," + *(yyvsp[0]._str));
02178 ;}
02179
break;
02180
02181
case 121:
02182
#line 570 "yacc.yy"
02183
{
02184 yyval._str = yyvsp[0]._str;
02185 ;}
02186
break;
02187
02188
case 122:
02189
#line 578 "yacc.yy"
02190
{
02191
if (dcop_area)
02192 yyerror(
"in dcop areas are no pointers allowed");
02193 ;}
02194
break;
02195
02196
case 123:
02197
#line 583 "yacc.yy"
02198
{
02199 yyval._str = yyvsp[0]._str;
02200 ;}
02201
break;
02202
02203
case 124:
02204
#line 592 "yacc.yy"
02205
{
02206
if (dcop_area)
02207 yyerror(
"in dcop areas are no pointers allowed");
02208 ;}
02209
break;
02210
02211
case 125:
02212
#line 596 "yacc.yy"
02213
{
02214
if (dcop_area) {
02215
QString* tmp =
new QString(
"<TYPE qleft=\"const\" qright=\"" AMP_ENTITY
"\">%1</TYPE>");
02216 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02217 yyval._str = tmp;
02218 }
02219 ;}
02220
break;
02221
02222
case 126:
02223
#line 603 "yacc.yy"
02224
{
02225
QString* tmp =
new QString(
"<TYPE>%1</TYPE>");
02226 *tmp = tmp->arg( *(yyvsp[0]._str) );
02227 yyval._str = tmp;
02228 ;}
02229
break;
02230
02231
case 127:
02232
#line 608 "yacc.yy"
02233
{
02234
if (dcop_area)
02235 yyerror(
"in dcop areas are only const references allowed!");
02236 ;}
02237
break;
02238
02239
case 128:
02240
#line 613 "yacc.yy"
02241
{
02242
QString* tmp =
new QString(
"<TYPE>%1</TYPE>");
02243 *tmp = tmp->arg( *(yyvsp[0]._str) );
02244 yyval._str = tmp;
02245 ;}
02246
break;
02247
02248
case 129:
02249
#line 619 "yacc.yy"
02250
{
02251
if (dcop_area)
02252 yyerror(
"in dcop areas are no pointers allowed");
02253 ;}
02254
break;
02255
02256
case 130:
02257
#line 627 "yacc.yy"
02258
{
02259 yyval._str =
new QString(*(yyvsp[-2]._str) +
"," + *(yyvsp[0]._str));
02260 ;}
02261
break;
02262
02263
case 131:
02264
#line 631 "yacc.yy"
02265
{
02266 yyval._str = yyvsp[0]._str;
02267 ;}
02268
break;
02269
02270
case 132:
02271
#line 638 "yacc.yy"
02272
{
02273
if (dcop_area) {
02274
QString* tmp =
new QString(
"\n <ARG>%1<NAME>%2</NAME></ARG>");
02275 *tmp = tmp->arg( *(yyvsp[-2]._str) );
02276 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02277 yyval._str = tmp;
02278 }
else yyval._str =
new QString();
02279 ;}
02280
break;
02281
02282
case 133:
02283
#line 647 "yacc.yy"
02284
{
02285
if (dcop_area) {
02286
QString* tmp =
new QString(
"\n <ARG>%1</ARG>");
02287 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02288 yyval._str = tmp;
02289 }
else yyval._str =
new QString();
02290 ;}
02291
break;
02292
02293
case 134:
02294
#line 655 "yacc.yy"
02295
{
02296
if (dcop_area)
02297 yyerror(
"variable arguments not supported in dcop area.");
02298 yyval._str =
new QString(
"");
02299 ;}
02300
break;
02301
02302
case 135:
02303
#line 664 "yacc.yy"
02304
{
02305 ;}
02306
break;
02307
02308
case 136:
02309
#line 667 "yacc.yy"
02310
{
02311 ;}
02312
break;
02313
02314
case 137:
02315
#line 670 "yacc.yy"
02316
{
02317 ;}
02318
break;
02319
02320
case 138:
02321
#line 677 "yacc.yy"
02322
{
02323 ;}
02324
break;
02325
02326
case 139:
02327
#line 680 "yacc.yy"
02328
{
02329 ;}
02330
break;
02331
02332
case 140:
02333
#line 683 "yacc.yy"
02334
{
02335 ;}
02336
break;
02337
02338
case 141:
02339
#line 686 "yacc.yy"
02340
{
02341 ;}
02342
break;
02343
02344
case 142:
02345
#line 689 "yacc.yy"
02346
{
02347 ;}
02348
break;
02349
02350
case 143:
02351
#line 694 "yacc.yy"
02352
{ yyval._int = 0; ;}
02353
break;
02354
02355
case 144:
02356
#line 695 "yacc.yy"
02357
{ yyval._int = 1; ;}
02358
break;
02359
02360
case 150:
02361
#line 704 "yacc.yy"
02362
{
02363
if (dcop_area || dcop_signal_area) {
02364
QString* tmp = 0;
02365 tmp =
new QString(
02366
" <%4>\n"
02367
" %2\n"
02368
" <NAME>%1</NAME>"
02369
"%3\n"
02370
" </%5>\n");
02371 *tmp = tmp->arg( *(yyvsp[-4]._str) );
02372 *tmp = tmp->arg( *(yyvsp[-5]._str) );
02373 *tmp = tmp->arg( *(yyvsp[-2]._str) );
02374
02375
QString tagname = (dcop_signal_area) ?
"SIGNAL" :
"FUNC";
02376
QString attr = (yyvsp[0]._int) ?
" qual=\"const\"" :
"";
02377 *tmp = tmp->arg(
QString(
"%1%2").arg(tagname).arg(attr) );
02378 *tmp = tmp->arg(
QString(
"%1").arg(tagname) );
02379 yyval._str = tmp;
02380 }
else
02381 yyval._str =
new QString(
"");
02382 ;}
02383
break;
02384
02385
case 151:
02386
#line 726 "yacc.yy"
02387
{
02388
if (dcop_area)
02389 yyerror(
"operators aren't allowed in dcop areas!");
02390 yyval._str =
new QString(
"");
02391 ;}
02392
break;
02393
02394
case 152:
02395
#line 736 "yacc.yy"
02396
{;}
02397
break;
02398
02399
case 153:
02400
#line 737 "yacc.yy"
02401
{;}
02402
break;
02403
02404
case 154:
02405
#line 738 "yacc.yy"
02406
{;}
02407
break;
02408
02409
case 155:
02410
#line 743 "yacc.yy"
02411
{;}
02412
break;
02413
02414
case 156:
02415
#line 748 "yacc.yy"
02416
{;}
02417
break;
02418
02419
case 157:
02420
#line 749 "yacc.yy"
02421
{;}
02422
break;
02423
02424
case 158:
02425
#line 754 "yacc.yy"
02426
{
02427 yyval._str = yyvsp[-1]._str;
02428 ;}
02429
break;
02430
02431
case 159:
02432
#line 758 "yacc.yy"
02433
{
02434 yyval._str = yyvsp[-3]._str;
02435 ;}
02436
break;
02437
02438
case 160:
02439
#line 762 "yacc.yy"
02440
{
02441 yyval._str = yyvsp[-1]._str;
02442 ;}
02443
break;
02444
02445
case 161:
02446
#line 766 "yacc.yy"
02447
{
02448
02449 assert(!dcop_area);
02450 yyval._str =
new QString(
"");
02451 ;}
02452
break;
02453
02454
case 162:
02455
#line 772 "yacc.yy"
02456
{
02457
02458 assert(!dcop_area);
02459 yyval._str =
new QString(
"");
02460 ;}
02461
break;
02462
02463
case 163:
02464
#line 778 "yacc.yy"
02465
{
02466
02467 assert(!dcop_area);
02468 yyval._str =
new QString(
"");
02469 ;}
02470
break;
02471
02472
case 164:
02473
#line 784 "yacc.yy"
02474
{
02475
if (dcop_area) {
02476
if (dcop_signal_area)
02477 yyerror(
"DCOP signals cannot be static");
02478
else
02479 yyerror(
"DCOP functions cannot be static");
02480 }
else {
02481 yyval._str =
new QString();
02482 }
02483 ;}
02484
break;
02485
02486
case 165:
02487
#line 797 "yacc.yy"
02488
{
02489 function_mode = 1;
02490 ;}
02491
break;
02492
02493
case 169:
02494
#line 809 "yacc.yy"
02495
{;}
02496
break;
02497
02498
case 170:
02499
#line 810 "yacc.yy"
02500
{;}
02501
break;
02502
02503
case 174:
02504
#line 822 "yacc.yy"
02505
{;}
02506
break;
02507
02508
case 175:
02509
#line 823 "yacc.yy"
02510
{;}
02511
break;
02512
02513
case 176:
02514
#line 824 "yacc.yy"
02515
{;}
02516
break;
02517
02518
case 177:
02519
#line 827 "yacc.yy"
02520
{;}
02521
break;
02522
02523
case 178:
02524
#line 831 "yacc.yy"
02525
{;}
02526
break;
02527
02528
case 179:
02529
#line 832 "yacc.yy"
02530
{;}
02531
break;
02532
02533
case 180:
02534
#line 833 "yacc.yy"
02535
{;}
02536
break;
02537
02538
case 181:
02539
#line 834 "yacc.yy"
02540
{;}
02541
break;
02542
02543
case 182:
02544
#line 835 "yacc.yy"
02545
{;}
02546
break;
02547
02548
02549 }
02550
02551
02552
#line 2552 "yacc.cc"
02553
02554 yyvsp -= yylen;
02555 yyssp -= yylen;
02556
02557
02558 YY_STACK_PRINT (yyss, yyssp);
02559
02560 *++yyvsp = yyval;
02561
02562
02563
02564
02565
02566
02567 yyn = yyr1[yyn];
02568
02569 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
02570
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
02571 yystate = yytable[yystate];
02572
else
02573 yystate = yydefgoto[yyn - YYNTOKENS];
02574
02575
goto yynewstate;
02576
02577
02578
02579
02580
02581 yyerrlab:
02582
02583
if (!yyerrstatus)
02584 {
02585 ++yynerrs;
02586
#if YYERROR_VERBOSE
02587
yyn = yypact[yystate];
02588
02589
if (YYPACT_NINF < yyn && yyn < YYLAST)
02590 {
02591 YYSIZE_T yysize = 0;
02592
int yytype = YYTRANSLATE (yychar);
02593
char *yymsg;
02594
int yyx, yycount;
02595
02596 yycount = 0;
02597
02598
02599
for (yyx = yyn < 0 ? -yyn : 0;
02600 yyx < (
int) (
sizeof (yytname) /
sizeof (
char *)); yyx++)
02601
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02602 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
02603 yysize += yystrlen (
"syntax error, unexpected ") + 1;
02604 yysize += yystrlen (yytname[yytype]);
02605 yymsg = (
char *) YYSTACK_ALLOC (yysize);
02606
if (yymsg != 0)
02607 {
02608
char *yyp = yystpcpy (yymsg,
"syntax error, unexpected ");
02609 yyp = yystpcpy (yyp, yytname[yytype]);
02610
02611
if (yycount < 5)
02612 {
02613 yycount = 0;
02614
for (yyx = yyn < 0 ? -yyn : 0;
02615 yyx < (
int) (
sizeof (yytname) /
sizeof (
char *));
02616 yyx++)
02617
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02618 {
02619
const char *yyq = ! yycount ?
", expecting " :
" or ";
02620 yyp = yystpcpy (yyp, yyq);
02621 yyp = yystpcpy (yyp, yytname[yyx]);
02622 yycount++;
02623 }
02624 }
02625 yyerror (yymsg);
02626 YYSTACK_FREE (yymsg);
02627 }
02628
else
02629 yyerror (
"syntax error; also virtual memory exhausted");
02630 }
02631
else
02632
#endif
02633 yyerror (
"syntax error");
02634 }
02635
02636
02637
02638
if (yyerrstatus == 3)
02639 {
02640
02641
02642
02643
02644
if (yychar == YYEOF)
02645 {
02646
02647 YYPOPSTACK;
02648
02649
while (yyss < yyssp)
02650 {
02651 YYDSYMPRINTF (
"Error: popping", yystos[*yyssp], yyvsp, yylsp);
02652 yydestruct (yystos[*yyssp], yyvsp);
02653 YYPOPSTACK;
02654 }
02655 YYABORT;
02656 }
02657
02658 YYDSYMPRINTF (
"Error: discarding", yytoken, &yylval, &yylloc);
02659 yydestruct (yytoken, &yylval);
02660 yychar = YYEMPTY;
02661
02662 }
02663
02664
02665
02666
goto yyerrlab2;
02667
02668
02669
02670
02671
02672 yyerrlab2:
02673 yyerrstatus = 3;
02674
02675
for (;;)
02676 {
02677 yyn = yypact[yystate];
02678
if (yyn != YYPACT_NINF)
02679 {
02680 yyn += YYTERROR;
02681
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
02682 {
02683 yyn = yytable[yyn];
02684
if (0 < yyn)
02685
break;
02686 }
02687 }
02688
02689
02690
if (yyssp == yyss)
02691 YYABORT;
02692
02693 YYDSYMPRINTF (
"Error: popping", yystos[*yyssp], yyvsp, yylsp);
02694 yydestruct (yystos[yystate], yyvsp);
02695 yyvsp--;
02696 yystate = *--yyssp;
02697
02698 YY_STACK_PRINT (yyss, yyssp);
02699 }
02700
02701
if (yyn == YYFINAL)
02702 YYACCEPT;
02703
02704 YYDPRINTF ((stderr,
"Shifting error token, "));
02705
02706 *++yyvsp = yylval;
02707
02708
02709 yystate = yyn;
02710
goto yynewstate;
02711
02712
02713
02714
02715
02716 yyacceptlab:
02717 yyresult = 0;
02718
goto yyreturn;
02719
02720
02721
02722
02723 yyabortlab:
02724 yyresult = 1;
02725
goto yyreturn;
02726
02727
#ifndef yyoverflow
02728
02729
02730
02731 yyoverflowlab:
02732 yyerror (
"parser stack overflow");
02733 yyresult = 2;
02734
02735
#endif
02736
02737 yyreturn:
02738
#ifndef yyoverflow
02739
if (yyss != yyssa)
02740 YYSTACK_FREE (yyss);
02741
#endif
02742
return yyresult;
02743 }
02744
02745
02746
#line 835 "yacc.yy"
02747
02748
02749
void dcopidlParse(
const char *_code )
02750 {
02751 dcopidlInitFlex( _code );
02752 yyparse();
02753 }
02754