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