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