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 514
00390
00391
00392 #define YYNTOKENS 67
00393
00394 #define YYNNTS 53
00395
00396 #define YYNRULES 184
00397
00398 #define YYNSTATES 371
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, 446,
00463 449, 451, 454, 458, 460, 464, 467, 469, 470, 473,
00464 479, 481, 483, 485, 487, 492, 493, 495, 497, 499,
00465 501, 503, 505, 512, 520, 522, 526, 527, 532, 534,
00466 538, 541, 547, 551, 557, 565, 572, 576, 578, 580,
00467 584, 589, 592, 593, 595, 598, 599, 601, 605, 608,
00468 611, 615, 621, 627, 633
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 23, -1, 97, 23, 37, -1, 97, 37, -1, 97,
00519 -1, 97, 95, -1, 100, 32, 101, -1, 100, -1,
00520 100, 80, 103, -1, 100, 103, -1, 45, -1, -1,
00521 50, 104, -1, 50, 13, 100, 15, 104, -1, 8,
00522 -1, 91, -1, 5, -1, 74, -1, 80, 13, 96,
00523 15, -1, -1, 22, -1, 65, -1, 66, -1, 36,
00524 -1, 35, -1, 50, -1, 100, 80, 13, 96, 15,
00525 93, -1, 100, 64, 106, 13, 96, 15, 93, -1,
00526 104, -1, 104, 32, 108, -1, -1, 6, 13, 108,
00527 15, -1, 109, -1, 109, 32, 110, -1, 107, 113,
00528 -1, 22, 107, 50, 52, 113, -1, 22, 107, 113,
00529 -1, 80, 13, 96, 15, 113, -1, 80, 13, 96,
00530 15, 16, 110, 113, -1, 105, 34, 80, 13, 15,
00531 113, -1, 48, 107, 113, -1, 12, -1, 17, -1,
00532 112, 114, 14, -1, 112, 114, 14, 17, -1, 115,
00533 114, -1, -1, 17, -1, 32, 118, -1, -1, 6,
00534 -1, 6, 50, 104, -1, 95, 6, -1, 117, 116,
00535 -1, 100, 118, 17, -1, 100, 80, 16, 7, 17,
00536 -1, 48, 100, 6, 103, 17, -1, 49, 100, 6,
00537 103, 17, -1, 100, 6, 54, 91, 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, 620,
00556 625, 630, 638, 642, 649, 658, 666, 676, 678, 681,
00557 688, 691, 694, 697, 700, 706, 707, 711, 711, 711,
00558 711, 711, 715, 737, 748, 749, 750, 755, 760, 761,
00559 765, 769, 773, 777, 783, 789, 795, 808, 815, 816,
00560 817, 821, 822, 826, 830, 831, 834, 835, 836, 839,
00561 843, 844, 845, 846, 847
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 100, 100, 101, 101, 102, 102, 102, 103, 103, 103,
00631 104, 104, 104, 104, 104, 105, 105, 106, 106, 106,
00632 106, 106, 107, 107, 108, 108, 108, 109, 110, 110,
00633 111, 111, 111, 111, 111, 111, 111, 112, 113, 113,
00634 113, 114, 114, 115, 116, 116, 117, 117, 117, 118,
00635 119, 119, 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, 3, 2,
00654 1, 2, 3, 1, 3, 2, 1, 0, 2, 5,
00655 1, 1, 1, 1, 4, 0, 1, 1, 1, 1,
00656 1, 1, 6, 7, 1, 3, 0, 4, 1, 3,
00657 2, 5, 3, 5, 7, 6, 3, 1, 1, 3,
00658 4, 2, 0, 1, 2, 0, 1, 3, 2, 2,
00659 3, 5, 5, 5, 6
00660 };
00661
00662
00663
00664
00665 static const unsigned char yydefact[] =
00666 {
00667 6, 6, 0, 0, 145, 4, 6, 1, 40, 0,
00668 0, 146, 0, 145, 0, 0, 0, 0, 0, 0,
00669 0, 101, 106, 89, 91, 102, 104, 6, 115, 25,
00670 114, 130, 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, 127, 110, 129, 131, 40, 0,
00675 0, 0, 175, 0, 0, 167, 168, 172, 160, 5,
00676 41, 0, 49, 145, 11, 8, 12, 35, 117, 116,
00677 0, 0, 162, 125, 124, 27, 116, 0, 0, 76,
00678 0, 74, 14, 0, 0, 40, 166, 137, 96, 94,
00679 100, 98, 136, 0, 137, 112, 123, 0, 121, 128,
00680 109, 0, 0, 150, 149, 151, 147, 148, 0, 111,
00681 0, 178, 0, 179, 180, 0, 173, 0, 172, 8,
00682 146, 42, 45, 0, 48, 0, 7, 35, 0, 0,
00683 52, 32, 31, 30, 145, 0, 33, 34, 0, 0,
00684 0, 0, 35, 0, 35, 35, 35, 0, 35, 35,
00685 35, 35, 0, 0, 0, 0, 27, 27, 19, 0,
00686 0, 0, 0, 6, 0, 16, 0, 0, 0, 0,
00687 0, 137, 135, 122, 118, 0, 77, 142, 78, 140,
00688 0, 28, 29, 80, 143, 81, 82, 141, 177, 81,
00689 0, 111, 0, 0, 176, 174, 0, 169, 171, 35,
00690 0, 46, 145, 0, 0, 117, 116, 35, 0, 115,
00691 0, 0, 0, 38, 39, 0, 37, 59, 58, 56,
00692 13, 57, 53, 55, 60, 161, 0, 0, 0, 26,
00693 0, 0, 75, 0, 72, 73, 0, 17, 0, 138,
00694 182, 183, 0, 163, 113, 134, 0, 120, 79, 111,
00695 0, 0, 0, 0, 87, 181, 0, 170, 0, 133,
00696 0, 47, 44, 9, 35, 35, 35, 35, 54, 117,
00697 35, 35, 0, 0, 36, 137, 0, 0, 0, 70,
00698 71, 50, 0, 0, 158, 0, 119, 0, 83, 84,
00699 184, 87, 88, 152, 165, 10, 0, 43, 64, 0,
00700 66, 0, 35, 62, 63, 0, 0, 20, 0, 69,
00701 51, 15, 0, 156, 0, 164, 144, 153, 132, 35,
00702 35, 61, 0, 35, 21, 139, 154, 0, 159, 65,
00703 67, 0, 0, 68, 156, 157, 0, 85, 155, 0,
00704 86
00705 };
00706
00707
00708 static const short yydefgoto[] =
00709 {
00710 -1, 3, 4, 157, 27, 193, 184, 214, 172, 173,
00711 174, 175, 176, 28, 152, 153, 154, 95, 341, 177,
00712 178, 110, 111, 216, 217, 179, 323, 30, 81, 123,
00713 31, 127, 128, 32, 290, 125, 197, 356, 33, 138,
00714 34, 357, 314, 315, 180, 87, 88, 147, 148, 143,
00715 82, 83, 181
00716 };
00717
00718
00719
00720 #define YYPACT_NINF -272
00721 static const short yypact[] =
00722 {
00723 74, 48, 41, 22, 239, -272, 125, -272, 43, 121,
00724 155, 389, 405, 361, 423, 218, 151, 169, 59, 389,
00725 389, -272, -272, 177, 181, 100, 185, 68, 86, -272,
00726 -272, 195, 12, 207, 148, -272, -272, 242, 155, 40,
00727 230, 248, 155, 155, 231, 26, 108, 174, 389, -272,
00728 192, 155, -272, 271, 288, 284, 246, 298, 29, 148,
00729 306, -272, -272, 250, 252, -272, -272, 265, 266, -272,
00730 -272, -272, 375, 405, 283, 289, -272, -272, 163, 119,
00731 113, 315, 292, 308, 155, -272, -272, 309, -272, -272,
00732 -272, 257, -272, 75, -272, 272, -272, 317, -272, -272,
00733 324, 278, -272, -272, -272, 56, 335, 331, 288, 300,
00734 338, 321, -272, 343, 337, 21, -272, 311, -272, -272,
00735 -272, -272, -272, 147, 42, -272, 289, 320, 327, -272,
00736 -272, 136, 54, -272, -272, -272, -272, -272, 349, 375,
00737 356, -272, 53, -272, -272, 351, -272, 354, 309, 272,
00738 -272, 334, -272, 76, -272, 364, -272, 317, 155, 155,
00739 -272, -272, -272, -272, 361, 437, -272, -272, 155, 368,
00740 371, 372, 198, 373, 317, 317, 317, 374, 317, 317,
00741 317, 317, 148, 389, 376, 67, 56, 56, -272, 378,
00742 54, 202, 288, 125, 377, -272, 449, 379, 380, 274,
00743 375, 311, -272, -272, 342, 405, -272, -272, -272, -272,
00744 394, -272, -272, -272, -272, 390, 80, -272, -272, -272,
00745 347, 375, 158, 387, 355, -272, 391, 393, -272, 317,
00746 389, -272, 75, 155, 396, 297, 299, 317, 155, 131,
00747 401, 384, 357, -272, -272, 409, -272, -272, -272, -272,
00748 -272, -272, -272, -272, -272, -272, 420, 155, 411, -272,
00749 416, 214, -272, 415, -272, -272, 425, -272, 389, -272,
00750 -272, -272, 434, -272, -272, -272, 155, -272, -272, 375,
00751 54, 54, 424, 184, 421, -272, 148, -272, 442, 431,
00752 428, -272, -272, -272, 317, 317, 317, 317, -272, 452,
00753 317, 317, 389, 464, -272, 311, 454, 155, 455, -272,
00754 -272, 456, 392, 461, 443, 148, -272, 190, -272, -272,
00755 -272, 421, -272, -272, -272, -272, 389, -272, -272, 460,
00756 -272, 465, 317, -272, -272, 445, 470, -272, 471, -272,
00757 -272, -272, 136, 136, 434, -272, -272, -272, -272, 317,
00758 317, -272, 44, 317, -272, -272, 446, 474, -272, -272,
00759 -272, 485, 475, -272, 136, -272, 155, -272, -272, 477,
00760 -272
00761 };
00762
00763
00764 static const short yypgoto[] =
00765 {
00766 -272, 10, 501, 358, -272, -272, 89, -272, -272, 332,
00767 -272, -272, -272, -9, 270, -272, 273, -35, -272, -43,
00768 502, -94, -272, -2, -88, -272, 187, -272, -23, -132,
00769 -3, 304, -272, 6, -271, 310, -77, -127, -80, -272,
00770 32, 149, -272, 167, 8, -272, -31, 366, -272, -272,
00771 -272, 370, 23
00772 };
00773
00774
00775
00776
00777
00778 #define YYTABLE_NINF -177
00779 static const short yytable[] =
00780 {
00781 40, 41, 44, 44, 218, 44, 97, 222, 77, 47,
00782 44, 44, 35, 155, 189, 102, 37, 45, 78, 45,
00783 51, 49, 7, 80, 104, 58, 60, 36, 116, 90,
00784 91, 335, 8, 98, 99, 115, 100, 71, -137, 44,
00785 198, 106, 107, 46, 220, 75, 8, 202, 8, 100,
00786 8, 59, 130, 6, 45, 348, 149, 1, 206, 224,
00787 8, 208, 8, 44, 44, 56, 42, 43, -3, 269,
00788 126, 196, 38, 78, -3, 145, 79, 1, 124, 12,
00789 59, 8, -3, 1, 151, 210, 75, 2, 231, 283,
00790 79, 38, 196, 79, 38, 361, 44, 150, 265, 72,
00791 75, 57, 262, 203, 183, 20, 213, 2, 232, 21,
00792 280, 185, 22, 2, 234, 201, 23, 24, 25, 26,
00793 85, 73, 215, 219, 275, 86, 139, 39, 186, 140,
00794 44, 247, 248, 249, 1, 251, 252, 253, 254, -3,
00795 206, 207, 8, 208, 209, 124, 281, 317, 300, 235,
00796 236, 255, 155, 69, 133, 134, 239, 53, 101, 241,
00797 85, 8, 199, 54, 2, 86, 73, 210, 273, 135,
00798 45, 45, 237, 284, 44, 55, 258, 44, 44, 200,
00799 -176, 219, 211, 212, 136, 137, 288, 215, 213, 256,
00800 200, 44, 185, 185, 298, -176, 44, 240, 8, 321,
00801 295, 297, 126, 266, 105, 346, 124, 75, 263, 186,
00802 186, 103, 44, 131, 38, 355, 200, 132, 74, 264,
00803 308, 44, 200, 151, 151, 166, 167, 124, 75, 299,
00804 61, 309, 76, 62, 65, 52, 289, 66, 70, 63,
00805 64, 84, 92, 67, 68, 8, 93, 94, 306, 9,
00806 10, 328, 329, 330, 331, 324, 89, 333, 334, 44,
00807 92, 11, 12, 13, 93, 96, 73, 316, 14, 92,
00808 44, 219, 219, 93, 312, 259, 260, 15, 318, 319,
00809 16, 17, 18, 108, 345, 124, 85, 19, 20, 351,
00810 272, 86, 21, 44, 109, 22, 112, 113, 338, 23,
00811 24, 25, 26, 118, 114, 119, 359, 360, 289, 92,
00812 363, 92, 117, 93, 294, 93, 296, 44, 120, 121,
00813 129, 141, 75, 8, 142, 144, 146, 158, 159, 156,
00814 182, 160, 289, 215, 215, 161, 162, 139, 163, 11,
00815 12, 164, 165, 362, 166, 167, 168, 187, 188, 194,
00816 190, -145, 191, 192, 195, 215, 204, 369, 16, 205,
00817 169, 196, 221, 223, 226, 19, 20, 8, 227, 230,
00818 21, 42, 43, 22, 242, 170, 171, 23, 24, 25,
00819 26, 8, 233, 11, 12, 42, 43, 243, 244, 246,
00820 257, 250, 261, 276, 267, 8, 270, 271, 12, 42,
00821 43, 278, 282, 279, 285, 131, 286, 342, 303, 48,
00822 287, 8, 12, 293, 21, 42, 43, 22, 301, 302,
00823 122, 23, 24, 25, 26, 304, 305, 140, 21, 8,
00824 307, 22, 310, 42, 50, 23, 24, 25, 26, 311,
00825 313, 320, 21, 8, 322, 22, 12, 238, 43, 23,
00826 24, 25, 26, 206, 207, 8, 208, 209, 21, 325,
00827 12, 22, 268, 326, 327, 23, 24, 25, 26, 332,
00828 336, 337, 339, 340, 343, 344, 21, 349, 364, 22,
00829 210, 352, 350, 23, 24, 25, 26, 353, 354, 365,
00830 21, 366, 367, 22, 370, 211, 212, 23, 24, 25,
00831 26, 213, 5, 292, 245, 291, 29, 229, 347, 277,
00832 274, 358, 225, 368, 228
00833 };
00834
00835 static const unsigned short yycheck[] =
00836 {
00837 9, 10, 11, 12, 131, 14, 41, 139, 31, 12,
00838 19, 20, 4, 93, 108, 46, 6, 11, 6, 13,
00839 14, 13, 0, 32, 47, 19, 20, 4, 59, 38,
00840 39, 302, 6, 42, 43, 6, 45, 27, 17, 48,
00841 117, 50, 51, 11, 132, 33, 6, 124, 6, 58,
00842 6, 19, 75, 12, 48, 326, 91, 9, 4, 6,
00843 6, 7, 6, 72, 73, 6, 10, 11, 0, 196,
00844 73, 50, 51, 6, 0, 84, 64, 9, 72, 23,
00845 48, 6, 14, 9, 93, 31, 33, 39, 12, 221,
00846 64, 51, 50, 64, 51, 51, 105, 22, 192, 13,
00847 33, 42, 190, 126, 48, 49, 52, 39, 32, 53,
00848 30, 105, 56, 39, 157, 124, 60, 61, 62, 63,
00849 12, 35, 131, 132, 201, 17, 13, 6, 105, 16,
00850 139, 174, 175, 176, 9, 178, 179, 180, 181, 14,
00851 4, 5, 6, 7, 8, 139, 66, 279, 17, 158,
00852 159, 182, 232, 53, 35, 36, 165, 6, 50, 168,
00853 12, 6, 15, 12, 39, 17, 35, 31, 199, 50,
00854 164, 165, 164, 15, 183, 6, 185, 186, 187, 32,
00855 17, 190, 46, 47, 65, 66, 229, 196, 52, 183,
00856 32, 200, 186, 187, 237, 32, 205, 165, 6, 15,
00857 235, 236, 205, 193, 12, 15, 200, 33, 6, 186,
00858 187, 37, 221, 50, 51, 342, 32, 54, 23, 17,
00859 6, 230, 32, 232, 233, 27, 28, 221, 33, 238,
00860 53, 17, 37, 56, 53, 17, 230, 56, 53, 62,
00861 63, 34, 12, 62, 63, 6, 16, 17, 257, 10,
00862 11, 294, 295, 296, 297, 286, 14, 300, 301, 268,
00863 12, 22, 23, 24, 16, 17, 35, 276, 29, 12,
00864 279, 280, 281, 16, 268, 186, 187, 38, 280, 281,
00865 41, 42, 43, 12, 315, 279, 12, 48, 49, 332,
00866 16, 17, 53, 302, 6, 56, 12, 51, 307, 60,
00867 61, 62, 63, 53, 6, 53, 349, 350, 302, 12,
00868 353, 12, 6, 16, 17, 16, 17, 326, 53, 53,
00869 37, 6, 33, 6, 32, 17, 17, 10, 11, 57,
00870 52, 14, 326, 342, 343, 18, 19, 13, 21, 22,
00871 23, 24, 25, 352, 27, 28, 29, 12, 17, 6,
00872 50, 34, 14, 32, 17, 364, 36, 366, 41, 32,
00873 43, 50, 13, 7, 13, 48, 49, 6, 14, 35,
00874 53, 10, 11, 56, 6, 58, 59, 60, 61, 62,
00875 63, 6, 18, 22, 23, 10, 11, 16, 16, 16,
00876 14, 17, 14, 51, 17, 6, 17, 17, 23, 10,
00877 11, 7, 55, 13, 17, 50, 15, 15, 51, 48,
00878 17, 6, 23, 17, 53, 10, 11, 56, 17, 35,
00879 45, 60, 61, 62, 63, 16, 6, 16, 53, 6,
00880 14, 56, 17, 10, 11, 60, 61, 62, 63, 14,
00881 6, 17, 53, 6, 23, 56, 23, 10, 11, 60,
00882 61, 62, 63, 4, 5, 6, 7, 8, 53, 17,
00883 23, 56, 13, 32, 36, 60, 61, 62, 63, 17,
00884 6, 17, 17, 17, 13, 32, 53, 17, 32, 56,
00885 31, 36, 17, 60, 61, 62, 63, 17, 17, 15,
00886 53, 6, 17, 56, 17, 46, 47, 60, 61, 62,
00887 63, 52, 1, 233, 172, 232, 4, 149, 321, 205,
00888 200, 344, 142, 364, 148
00889 };
00890
00891
00892
00893 static const unsigned char yystos[] =
00894 {
00895 0, 9, 39, 68, 69, 69, 12, 0, 6, 10,
00896 11, 22, 23, 24, 29, 38, 41, 42, 43, 48,
00897 49, 53, 56, 60, 61, 62, 63, 71, 80, 87,
00898 94, 97, 100, 105, 107, 111, 119, 68, 51, 6,
00899 80, 80, 10, 11, 80, 100, 107, 97, 48, 111,
00900 11, 100, 17, 6, 12, 6, 6, 42, 100, 107,
00901 100, 53, 56, 62, 63, 53, 56, 62, 63, 53,
00902 53, 68, 13, 35, 23, 33, 37, 95, 6, 64,
00903 80, 95, 117, 118, 34, 12, 17, 112, 113, 14,
00904 80, 80, 12, 16, 17, 84, 17, 84, 80, 80,
00905 80, 50, 113, 37, 95, 12, 80, 80, 12, 6,
00906 88, 89, 12, 51, 6, 6, 113, 6, 53, 53,
00907 53, 53, 45, 96, 100, 102, 97, 98, 99, 37,
00908 95, 50, 54, 35, 36, 50, 65, 66, 106, 13,
00909 16, 6, 32, 116, 17, 80, 17, 114, 115, 84,
00910 22, 80, 81, 82, 83, 105, 57, 70, 10, 11,
00911 14, 18, 19, 21, 24, 25, 27, 28, 29, 43,
00912 58, 59, 75, 76, 77, 78, 79, 86, 87, 92,
00913 111, 119, 52, 48, 73, 100, 119, 12, 17, 88,
00914 50, 14, 32, 72, 6, 17, 50, 103, 103, 15,
00915 32, 80, 103, 95, 36, 32, 4, 5, 7, 8,
00916 31, 46, 47, 52, 74, 80, 90, 91, 104, 80,
00917 91, 13, 96, 7, 6, 118, 13, 14, 114, 70,
00918 35, 12, 32, 18, 86, 80, 80, 111, 10, 80,
00919 107, 80, 6, 16, 16, 76, 16, 86, 86, 86,
00920 17, 86, 86, 86, 86, 113, 100, 14, 80, 73,
00921 73, 14, 91, 6, 17, 88, 68, 17, 13, 104,
00922 17, 17, 16, 113, 102, 103, 51, 98, 7, 13,
00923 30, 66, 55, 96, 15, 17, 15, 17, 86, 100,
00924 101, 83, 81, 17, 17, 84, 17, 84, 86, 80,
00925 17, 17, 35, 51, 16, 6, 80, 14, 6, 17,
00926 17, 14, 100, 6, 109, 110, 80, 96, 90, 90,
00927 17, 15, 23, 93, 113, 17, 32, 36, 86, 86,
00928 86, 86, 17, 86, 86, 101, 6, 17, 80, 17,
00929 17, 85, 15, 13, 32, 113, 15, 93, 101, 17,
00930 17, 86, 36, 17, 17, 104, 104, 108, 110, 86,
00931 86, 51, 80, 86, 32, 15, 6, 17, 108, 80,
00932 17
00933 };
00934
00935 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00936 # define YYSIZE_T __SIZE_TYPE__
00937 #endif
00938 #if ! defined (YYSIZE_T) && defined (size_t)
00939 # define YYSIZE_T size_t
00940 #endif
00941 #if ! defined (YYSIZE_T)
00942 # if defined (__STDC__) || defined (__cplusplus)
00943 # include <stddef.h>
00944 # define YYSIZE_T size_t
00945 # endif
00946 #endif
00947 #if ! defined (YYSIZE_T)
00948 # define YYSIZE_T unsigned int
00949 #endif
00950
00951 #define yyerrok (yyerrstatus = 0)
00952 #define yyclearin (yychar = YYEMPTY)
00953 #define YYEMPTY (-2)
00954 #define YYEOF 0
00955
00956 #define YYACCEPT goto yyacceptlab
00957 #define YYABORT goto yyabortlab
00958 #define YYERROR goto yyerrlab1
00959
00960
00961
00962
00963
00964 #define YYFAIL goto yyerrlab
00965
00966 #define YYRECOVERING() (!!yyerrstatus)
00967
00968 #define YYBACKUP(Token, Value) \
00969 do \
00970 if (yychar == YYEMPTY && yylen == 1) \
00971 { \
00972 yychar = (Token); \
00973 yylval = (Value); \
00974 yytoken = YYTRANSLATE (yychar); \
00975 YYPOPSTACK; \
00976 goto yybackup; \
00977 } \
00978 else \
00979 { \
00980 yyerror ("syntax error: cannot back up");\
00981 YYERROR; \
00982 } \
00983 while (0)
00984
00985 #define YYTERROR 1
00986 #define YYERRCODE 256
00987
00988
00989
00990
00991 #ifndef YYLLOC_DEFAULT
00992 # define YYLLOC_DEFAULT(Current, Rhs, N) \
00993 Current.first_line = Rhs[1].first_line; \
00994 Current.first_column = Rhs[1].first_column; \
00995 Current.last_line = Rhs[N].last_line; \
00996 Current.last_column = Rhs[N].last_column;
00997 #endif
00998
00999
01000
01001 #ifdef YYLEX_PARAM
01002 # define YYLEX yylex (YYLEX_PARAM)
01003 #else
01004 # define YYLEX yylex ()
01005 #endif
01006
01007
01008 #if YYDEBUG
01009
01010 # ifndef YYFPRINTF
01011 # include <stdio.h>
01012 # define YYFPRINTF fprintf
01013 # endif
01014
01015 # define YYDPRINTF(Args) \
01016 do { \
01017 if (yydebug) \
01018 YYFPRINTF Args; \
01019 } while (0)
01020
01021 # define YYDSYMPRINT(Args) \
01022 do { \
01023 if (yydebug) \
01024 yysymprint Args; \
01025 } while (0)
01026
01027 # define YYDSYMPRINTF(Title, Token, Value, Location) \
01028 do { \
01029 if (yydebug) \
01030 { \
01031 YYFPRINTF (stderr, "%s ", Title); \
01032 yysymprint (stderr, \
01033 Token, Value); \
01034 YYFPRINTF (stderr, "\n"); \
01035 } \
01036 } while (0)
01037
01038
01039
01040
01041
01042
01043 #if defined (__STDC__) || defined (__cplusplus)
01044 static void
01045 yy_stack_print (short *bottom, short *top)
01046 #else
01047 static void
01048 yy_stack_print (bottom, top)
01049 short *bottom;
01050 short *top;
01051 #endif
01052 {
01053 YYFPRINTF (stderr, "Stack now");
01054 for (; bottom <= top; ++bottom)
01055 YYFPRINTF (stderr, " %d", *bottom);
01056 YYFPRINTF (stderr, "\n");
01057 }
01058
01059 # define YY_STACK_PRINT(Bottom, Top) \
01060 do { \
01061 if (yydebug) \
01062 yy_stack_print ((Bottom), (Top)); \
01063 } while (0)
01064
01065
01066
01067
01068
01069
01070 #if defined (__STDC__) || defined (__cplusplus)
01071 static void
01072 yy_reduce_print (int yyrule)
01073 #else
01074 static void
01075 yy_reduce_print (yyrule)
01076 int yyrule;
01077 #endif
01078 {
01079 int yyi;
01080 unsigned int yylineno = yyrline[yyrule];
01081 YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
01082 yyrule - 1, yylineno);
01083
01084 for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
01085 YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
01086 YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
01087 }
01088
01089 # define YY_REDUCE_PRINT(Rule) \
01090 do { \
01091 if (yydebug) \
01092 yy_reduce_print (Rule); \
01093 } while (0)
01094
01095
01096
01097 int yydebug;
01098 #else
01099 # define YYDPRINTF(Args)
01100 # define YYDSYMPRINT(Args)
01101 # define YYDSYMPRINTF(Title, Token, Value, Location)
01102 # define YY_STACK_PRINT(Bottom, Top)
01103 # define YY_REDUCE_PRINT(Rule)
01104 #endif
01105
01106
01107
01108 #ifndef YYINITDEPTH
01109 # define YYINITDEPTH 200
01110 #endif
01111
01112
01113
01114
01115
01116
01117
01118
01119 #if YYMAXDEPTH == 0
01120 # undef YYMAXDEPTH
01121 #endif
01122
01123 #ifndef YYMAXDEPTH
01124 # define YYMAXDEPTH 10000
01125 #endif
01126
01127
01128
01129 #if YYERROR_VERBOSE
01130
01131 # ifndef yystrlen
01132 # if defined (__GLIBC__) && defined (_STRING_H)
01133 # define yystrlen strlen
01134 # else
01135
01136 static YYSIZE_T
01137 # if defined (__STDC__) || defined (__cplusplus)
01138 yystrlen (const char *yystr)
01139 # else
01140 yystrlen (yystr)
01141 const char *yystr;
01142 # endif
01143 {
01144 register const char *yys = yystr;
01145
01146 while (*yys++ != '\0')
01147 continue;
01148
01149 return yys - yystr - 1;
01150 }
01151 # endif
01152 # endif
01153
01154 # ifndef yystpcpy
01155 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
01156 # define yystpcpy stpcpy
01157 # else
01158
01159
01160 static char *
01161 # if defined (__STDC__) || defined (__cplusplus)
01162 yystpcpy (char *yydest, const char *yysrc)
01163 # else
01164 yystpcpy (yydest, yysrc)
01165 char *yydest;
01166 const char *yysrc;
01167 # endif
01168 {
01169 register char *yyd = yydest;
01170 register const char *yys = yysrc;
01171
01172 while ((*yyd++ = *yys++) != '\0')
01173 continue;
01174
01175 return yyd - 1;
01176 }
01177 # endif
01178 # endif
01179
01180 #endif
01181
01182
01183
01184 #if YYDEBUG
01185
01186
01187
01188
01189 #if defined (__STDC__) || defined (__cplusplus)
01190 static void
01191 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
01192 #else
01193 static void
01194 yysymprint (yyoutput, yytype, yyvaluep)
01195 FILE *yyoutput;
01196 int yytype;
01197 YYSTYPE *yyvaluep;
01198 #endif
01199 {
01200
01201 (void) yyvaluep;
01202
01203 if (yytype < YYNTOKENS)
01204 {
01205 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
01206 # ifdef YYPRINT
01207 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
01208 # endif
01209 }
01210 else
01211 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
01212
01213 switch (yytype)
01214 {
01215 default:
01216 break;
01217 }
01218 YYFPRINTF (yyoutput, ")");
01219 }
01220
01221 #endif
01222
01223
01224
01225
01226 #if defined (__STDC__) || defined (__cplusplus)
01227 static void
01228 yydestruct (int yytype, YYSTYPE *yyvaluep)
01229 #else
01230 static void
01231 yydestruct (yytype, yyvaluep)
01232 int yytype;
01233 YYSTYPE *yyvaluep;
01234 #endif
01235 {
01236
01237 (void) yyvaluep;
01238
01239 switch (yytype)
01240 {
01241
01242 default:
01243 break;
01244 }
01245 }
01246
01247
01248
01249
01250 #ifdef YYPARSE_PARAM
01251 # if defined (__STDC__) || defined (__cplusplus)
01252 int yyparse (void *YYPARSE_PARAM);
01253 # else
01254 int yyparse ();
01255 # endif
01256 #else
01257 #if defined (__STDC__) || defined (__cplusplus)
01258 int yyparse (void);
01259 #else
01260 int yyparse ();
01261 #endif
01262 #endif
01263
01264
01265
01266
01267 int yychar;
01268
01269
01270 YYSTYPE yylval;
01271
01272
01273 int yynerrs;
01274
01275
01276
01277
01278
01279
01280
01281 #ifdef YYPARSE_PARAM
01282 # if defined (__STDC__) || defined (__cplusplus)
01283 int yyparse (void *YYPARSE_PARAM)
01284 # else
01285 int yyparse (YYPARSE_PARAM)
01286 void *YYPARSE_PARAM;
01287 # endif
01288 #else
01289 #if defined (__STDC__) || defined (__cplusplus)
01290 int
01291 yyparse (void)
01292 #else
01293 int
01294 yyparse ()
01295
01296 #endif
01297 #endif
01298 {
01299
01300 register int yystate;
01301 register int yyn;
01302 int yyresult;
01303
01304 int yyerrstatus;
01305
01306 int yytoken = 0;
01307
01308
01309
01310
01311
01312
01313
01314
01315
01316
01317 short yyssa[YYINITDEPTH];
01318 short *yyss = yyssa;
01319 register short *yyssp;
01320
01321
01322 YYSTYPE yyvsa[YYINITDEPTH];
01323 YYSTYPE *yyvs = yyvsa;
01324 register YYSTYPE *yyvsp;
01325
01326
01327
01328 #define YYPOPSTACK (yyvsp--, yyssp--)
01329
01330 YYSIZE_T yystacksize = YYINITDEPTH;
01331
01332
01333
01334 YYSTYPE yyval;
01335
01336
01337
01338
01339 int yylen;
01340
01341 YYDPRINTF ((stderr, "Starting parse\n"));
01342
01343 yystate = 0;
01344 yyerrstatus = 0;
01345 yynerrs = 0;
01346 yychar = YYEMPTY;
01347
01348
01349
01350
01351
01352
01353 yyssp = yyss;
01354 yyvsp = yyvs;
01355
01356 goto yysetstate;
01357
01358
01359
01360
01361 yynewstate:
01362
01363
01364
01365 yyssp++;
01366
01367 yysetstate:
01368 *yyssp = yystate;
01369
01370 if (yyss + yystacksize - 1 <= yyssp)
01371 {
01372
01373 YYSIZE_T yysize = yyssp - yyss + 1;
01374
01375 #ifdef yyoverflow
01376 {
01377
01378
01379
01380 YYSTYPE *yyvs1 = yyvs;
01381 short *yyss1 = yyss;
01382
01383
01384
01385
01386
01387
01388 yyoverflow ("parser stack overflow",
01389 &yyss1, yysize * sizeof (*yyssp),
01390 &yyvs1, yysize * sizeof (*yyvsp),
01391
01392 &yystacksize);
01393
01394 yyss = yyss1;
01395 yyvs = yyvs1;
01396 }
01397 #else
01398 # ifndef YYSTACK_RELOCATE
01399 goto yyoverflowlab;
01400 # else
01401
01402 if (YYMAXDEPTH <= yystacksize)
01403 goto yyoverflowlab;
01404 yystacksize *= 2;
01405 if (YYMAXDEPTH < yystacksize)
01406 yystacksize = YYMAXDEPTH;
01407
01408 {
01409 short *yyss1 = yyss;
01410 union yyalloc *yyptr =
01411 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01412 if (! yyptr)
01413 goto yyoverflowlab;
01414 YYSTACK_RELOCATE (yyss);
01415 YYSTACK_RELOCATE (yyvs);
01416
01417 # undef YYSTACK_RELOCATE
01418 if (yyss1 != yyssa)
01419 YYSTACK_FREE (yyss1);
01420 }
01421 # endif
01422 #endif
01423
01424 yyssp = yyss + yysize - 1;
01425 yyvsp = yyvs + yysize - 1;
01426
01427
01428 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01429 (unsigned long int) yystacksize));
01430
01431 if (yyss + yystacksize - 1 <= yyssp)
01432 YYABORT;
01433 }
01434
01435 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01436
01437 goto yybackup;
01438
01439
01440
01441
01442 yybackup:
01443
01444
01445
01446
01447
01448
01449
01450 yyn = yypact[yystate];
01451 if (yyn == YYPACT_NINF)
01452 goto yydefault;
01453
01454
01455
01456
01457 if (yychar == YYEMPTY)
01458 {
01459 YYDPRINTF ((stderr, "Reading a token: "));
01460 yychar = YYLEX;
01461 }
01462
01463 if (yychar <= YYEOF)
01464 {
01465 yychar = yytoken = YYEOF;
01466 YYDPRINTF ((stderr, "Now at end of input.\n"));
01467 }
01468 else
01469 {
01470 yytoken = YYTRANSLATE (yychar);
01471 YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
01472 }
01473
01474
01475
01476 yyn += yytoken;
01477 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01478 goto yydefault;
01479 yyn = yytable[yyn];
01480 if (yyn <= 0)
01481 {
01482 if (yyn == 0 || yyn == YYTABLE_NINF)
01483 goto yyerrlab;
01484 yyn = -yyn;
01485 goto yyreduce;
01486 }
01487
01488 if (yyn == YYFINAL)
01489 YYACCEPT;
01490
01491
01492 YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
01493
01494
01495 if (yychar != YYEOF)
01496 yychar = YYEMPTY;
01497
01498 *++yyvsp = yylval;
01499
01500
01501
01502
01503 if (yyerrstatus)
01504 yyerrstatus--;
01505
01506 yystate = yyn;
01507 goto yynewstate;
01508
01509
01510
01511
01512
01513 yydefault:
01514 yyn = yydefact[yystate];
01515 if (yyn == 0)
01516 goto yyerrlab;
01517 goto yyreduce;
01518
01519
01520
01521
01522
01523 yyreduce:
01524
01525 yylen = yyr2[yyn];
01526
01527
01528
01529
01530
01531
01532
01533
01534
01535 yyval = yyvsp[1-yylen];
01536
01537
01538 YY_REDUCE_PRINT (yyn);
01539 switch (yyn)
01540 {
01541 case 2:
01542 #line 165 "yacc.yy"
01543 {
01544 ;}
01545 break;
01546
01547 case 4:
01548 #line 172 "yacc.yy"
01549 {
01550 printf("<INCLUDE>%s</INCLUDE>\n", yyvsp[-1]._str->latin1() );
01551 ;}
01552 break;
01553
01554 case 5:
01555 #line 176 "yacc.yy"
01556 {
01557 ;}
01558 break;
01559
01560 case 6:
01561 #line 179 "yacc.yy"
01562 {
01563 ;}
01564 break;
01565
01566 case 7:
01567 #line 184 "yacc.yy"
01568 { yyval._int = 1; ;}
01569 break;
01570
01571 case 8:
01572 #line 185 "yacc.yy"
01573 { yyval._int = 0; ;}
01574 break;
01575
01576 case 9:
01577 #line 190 "yacc.yy"
01578 {
01579 if (yyvsp[-2]._int)
01580 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() );
01581
01582 dcop_area = 0;
01583 dcop_signal_area = 0;
01584
01585 ;}
01586 break;
01587
01588 case 10:
01589 #line 199 "yacc.yy"
01590 {
01591 if (yyvsp[-2]._int)
01592 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() );
01593
01594 dcop_area = 0;
01595 dcop_signal_area = 0;
01596
01597 ;}
01598 break;
01599
01600 case 11:
01601 #line 208 "yacc.yy"
01602 {
01603 ;}
01604 break;
01605
01606 case 12:
01607 #line 211 "yacc.yy"
01608 {
01609 ;}
01610 break;
01611
01612 case 13:
01613 #line 214 "yacc.yy"
01614 {
01615 ;}
01616 break;
01617
01618 case 14:
01619 #line 217 "yacc.yy"
01620 {
01621 in_namespace += *yyvsp[-1]._str; in_namespace += "::";
01622 ;}
01623 break;
01624
01625 case 15:
01626 #line 221 "yacc.yy"
01627 {
01628 int pos = in_namespace.findRev( "::", -3 );
01629 if( pos >= 0 )
01630 in_namespace = in_namespace.left( pos + 2 );
01631 else
01632 in_namespace = "";
01633 ;}
01634 break;
01635
01636 case 16:
01637 #line 229 "yacc.yy"
01638 {
01639 ;}
01640 break;
01641
01642 case 17:
01643 #line 232 "yacc.yy"
01644 {
01645 ;}
01646 break;
01647
01648 case 18:
01649 #line 235 "yacc.yy"
01650 {
01651 ;}
01652 break;
01653
01654 case 19:
01655 #line 238 "yacc.yy"
01656 {
01657 ;}
01658 break;
01659
01660 case 20:
01661 #line 241 "yacc.yy"
01662 {
01663 ;}
01664 break;
01665
01666 case 21:
01667 #line 244 "yacc.yy"
01668 {
01669 ;}
01670 break;
01671
01672 case 22:
01673 #line 247 "yacc.yy"
01674 {
01675 ;}
01676 break;
01677
01678 case 23:
01679 #line 250 "yacc.yy"
01680 {
01681 ;}
01682 break;
01683
01684 case 24:
01685 #line 253 "yacc.yy"
01686 {
01687 ;}
01688 break;
01689
01690 case 25:
01691 #line 256 "yacc.yy"
01692 {
01693 ;}
01694 break;
01695
01696 case 36:
01697 #line 273 "yacc.yy"
01698 {
01699 dcop_area = 0;
01700 dcop_signal_area = 0;
01701 ;}
01702 break;
01703
01704 case 37:
01705 #line 278 "yacc.yy"
01706 {
01707 dcop_area = 0;
01708 dcop_signal_area = 0;
01709 ;}
01710 break;
01711
01712 case 38:
01713 #line 286 "yacc.yy"
01714 {
01715 dcop_area = 1;
01716 dcop_signal_area = 0;
01717 ;}
01718 break;
01719
01720 case 39:
01721 #line 294 "yacc.yy"
01722 {
01723
01724
01725
01726
01727 dcop_area = 1;
01728 dcop_signal_area = 1;
01729 ;}
01730 break;
01731
01732 case 40:
01733 #line 305 "yacc.yy"
01734 {
01735 yyval._str = yyvsp[0]._str;
01736 ;}
01737 break;
01738
01739 case 41:
01740 #line 308 "yacc.yy"
01741 {
01742 QString* tmp = new QString( "%1::%2" );
01743 *tmp = tmp->arg(*(yyvsp[-2]._str)).arg(*(yyvsp[0]._str));
01744 yyval._str = tmp;
01745 ;}
01746 break;
01747
01748 case 42:
01749 #line 317 "yacc.yy"
01750 {
01751 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" );
01752 *tmp = tmp->arg( *(yyvsp[0]._str) );
01753 yyval._str = tmp;
01754 ;}
01755 break;
01756
01757 case 43:
01758 #line 323 "yacc.yy"
01759 {
01760 QString* tmp = new QString( " <SUPER>%1</SUPER>\n" );
01761 *tmp = tmp->arg( *(yyvsp[-3]._str) + "<" + *(yyvsp[-1]._str) + ">" );
01762 yyval._str = tmp;
01763 ;}
01764 break;
01765
01766 case 44:
01767 #line 332 "yacc.yy"
01768 {
01769 yyval._str = yyvsp[0]._str;
01770 ;}
01771 break;
01772
01773 case 45:
01774 #line 336 "yacc.yy"
01775 {
01776 yyval._str = yyvsp[0]._str;
01777 ;}
01778 break;
01779
01780 case 46:
01781 #line 343 "yacc.yy"
01782 {
01783 yyval._str = yyvsp[-1]._str;
01784 ;}
01785 break;
01786
01787 case 47:
01788 #line 347 "yacc.yy"
01789 {
01790
01791 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) );
01792 ;}
01793 break;
01794
01795 case 48:
01796 #line 355 "yacc.yy"
01797 {
01798 yyval._str = yyvsp[0]._str;
01799 ;}
01800 break;
01801
01802 case 49:
01803 #line 359 "yacc.yy"
01804 {
01805 yyval._str = new QString( "" );
01806 ;}
01807 break;
01808
01809 case 50:
01810 #line 366 "yacc.yy"
01811 {
01812 ;}
01813 break;
01814
01815 case 52:
01816 #line 373 "yacc.yy"
01817 {
01818 yyval._str = new QString( "" );
01819 ;}
01820 break;
01821
01822 case 53:
01823 #line 377 "yacc.yy"
01824 {
01825 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01826 ;}
01827 break;
01828
01829 case 54:
01830 #line 381 "yacc.yy"
01831 {
01832 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01833 ;}
01834 break;
01835
01836 case 55:
01837 #line 385 "yacc.yy"
01838 {
01839 yyval._str = new QString( *(yyvsp[-1]._str) + *(yyvsp[0]._str) );
01840 ;}
01841 break;
01842
01843 case 56:
01844 #line 389 "yacc.yy"
01845 {
01846 yyval._str = yyvsp[0]._str;
01847 ;}
01848 break;
01849
01850 case 57:
01851 #line 393 "yacc.yy"
01852 {
01853 yyval._str = yyvsp[0]._str;
01854 ;}
01855 break;
01856
01857 case 58:
01858 #line 397 "yacc.yy"
01859 {
01860 yyval._str = yyvsp[0]._str;
01861 ;}
01862 break;
01863
01864 case 59:
01865 #line 401 "yacc.yy"
01866 {
01867 yyval._str = yyvsp[0]._str;
01868 ;}
01869 break;
01870
01871 case 60:
01872 #line 405 "yacc.yy"
01873 {
01874 yyval._str = yyvsp[0]._str;
01875 ;}
01876 break;
01877
01878 case 61:
01879 #line 409 "yacc.yy"
01880 {
01881 yyval._str = yyvsp[0]._str;
01882 ;}
01883 break;
01884
01885 case 62:
01886 #line 413 "yacc.yy"
01887 {
01888 yyval._str = yyvsp[0]._str;
01889 ;}
01890 break;
01891
01892 case 63:
01893 #line 417 "yacc.yy"
01894 {
01895 yyval._str = yyvsp[0]._str;
01896 ;}
01897 break;
01898
01899 case 64:
01900 #line 421 "yacc.yy"
01901 {
01902 yyval._str = yyvsp[0]._str;
01903 ;}
01904 break;
01905
01906 case 65:
01907 #line 425 "yacc.yy"
01908 {
01909 yyval._str = yyvsp[0]._str;
01910 ;}
01911 break;
01912
01913 case 66:
01914 #line 429 "yacc.yy"
01915 {
01916 yyval._str = yyvsp[0]._str;
01917 ;}
01918 break;
01919
01920 case 67:
01921 #line 433 "yacc.yy"
01922 {
01923 yyval._str = yyvsp[0]._str;
01924 ;}
01925 break;
01926
01927 case 68:
01928 #line 437 "yacc.yy"
01929 {
01930 yyval._str = yyvsp[0]._str;
01931 ;}
01932 break;
01933
01934 case 75:
01935 #line 455 "yacc.yy"
01936 {;}
01937 break;
01938
01939 case 76:
01940 #line 456 "yacc.yy"
01941 {;}
01942 break;
01943
01944 case 77:
01945 #line 460 "yacc.yy"
01946 {;}
01947 break;
01948
01949 case 78:
01950 #line 461 "yacc.yy"
01951 {;}
01952 break;
01953
01954 case 79:
01955 #line 462 "yacc.yy"
01956 {;}
01957 break;
01958
01959 case 80:
01960 #line 463 "yacc.yy"
01961 {;}
01962 break;
01963
01964 case 81:
01965 #line 464 "yacc.yy"
01966 {;}
01967 break;
01968
01969 case 82:
01970 #line 468 "yacc.yy"
01971 {;}
01972 break;
01973
01974 case 83:
01975 #line 469 "yacc.yy"
01976 {;}
01977 break;
01978
01979 case 84:
01980 #line 470 "yacc.yy"
01981 {;}
01982 break;
01983
01984 case 85:
01985 #line 475 "yacc.yy"
01986 {
01987 if (dcop_area) {
01988 QString* tmp = new QString("<TYPEDEF name=\"%1\" template=\"%2\"><PARAM %3</TYPEDEF>\n");
01989 *tmp = tmp->arg( *(yyvsp[-1]._str) ).arg( *(yyvsp[-5]._str) ).arg( *(yyvsp[-3]._str) );
01990 yyval._str = tmp;
01991 } else {
01992 yyval._str = new QString("");
01993 }
01994 ;}
01995 break;
01996
01997 case 86:
01998 #line 485 "yacc.yy"
01999 {
02000 if (dcop_area)
02001 yyerror("scoped template typedefs are not supported in dcop areas!");
02002 ;}
02003 break;
02004
02005 case 87:
02006 #line 493 "yacc.yy"
02007 {
02008 yyval._int = 0;
02009 ;}
02010 break;
02011
02012 case 88:
02013 #line 497 "yacc.yy"
02014 {
02015 yyval._int = 1;
02016 ;}
02017 break;
02018
02019 case 89:
02020 #line 503 "yacc.yy"
02021 { yyval._str = new QString("signed int"); ;}
02022 break;
02023
02024 case 90:
02025 #line 504 "yacc.yy"
02026 { yyval._str = new QString("signed int"); ;}
02027 break;
02028
02029 case 91:
02030 #line 505 "yacc.yy"
02031 { yyval._str = new QString("unsigned int"); ;}
02032 break;
02033
02034 case 92:
02035 #line 506 "yacc.yy"
02036 { yyval._str = new QString("unsigned int"); ;}
02037 break;
02038
02039 case 93:
02040 #line 507 "yacc.yy"
02041 { yyval._str = new QString("signed short int"); ;}
02042 break;
02043
02044 case 94:
02045 #line 508 "yacc.yy"
02046 { yyval._str = new QString("signed short int"); ;}
02047 break;
02048
02049 case 95:
02050 #line 509 "yacc.yy"
02051 { yyval._str = new QString("signed long int"); ;}
02052 break;
02053
02054 case 96:
02055 #line 510 "yacc.yy"
02056 { yyval._str = new QString("signed long int"); ;}
02057 break;
02058
02059 case 97:
02060 #line 511 "yacc.yy"
02061 { yyval._str = new QString("unsigned short int"); ;}
02062 break;
02063
02064 case 98:
02065 #line 512 "yacc.yy"
02066 { yyval._str = new QString("unsigned short int"); ;}
02067 break;
02068
02069 case 99:
02070 #line 513 "yacc.yy"
02071 { yyval._str = new QString("unsigned long int"); ;}
02072 break;
02073
02074 case 100:
02075 #line 514 "yacc.yy"
02076 { yyval._str = new QString("unsigned long int"); ;}
02077 break;
02078
02079 case 101:
02080 #line 515 "yacc.yy"
02081 { yyval._str = new QString("int"); ;}
02082 break;
02083
02084 case 102:
02085 #line 516 "yacc.yy"
02086 { yyval._str = new QString("long int"); ;}
02087 break;
02088
02089 case 103:
02090 #line 517 "yacc.yy"
02091 { yyval._str = new QString("long int"); ;}
02092 break;
02093
02094 case 104:
02095 #line 518 "yacc.yy"
02096 { yyval._str = new QString("short int"); ;}
02097 break;
02098
02099 case 105:
02100 #line 519 "yacc.yy"
02101 { yyval._str = new QString("short int"); ;}
02102 break;
02103
02104 case 106:
02105 #line 520 "yacc.yy"
02106 { yyval._str = new QString("char"); ;}
02107 break;
02108
02109 case 107:
02110 #line 521 "yacc.yy"
02111 { yyval._str = new QString("signed char"); ;}
02112 break;
02113
02114 case 108:
02115 #line 522 "yacc.yy"
02116 { yyval._str = new QString("unsigned char"); ;}
02117 break;
02118
02119 case 111:
02120 #line 532 "yacc.yy"
02121 {
02122 yyval._str = new QString( "" );
02123 ;}
02124 break;
02125
02126 case 113:
02127 #line 537 "yacc.yy"
02128 {
02129 yyval._str = new QString( *(yyvsp[-2]._str) + *(yyvsp[0]._str) );
02130 ;}
02131 break;
02132
02133 case 115:
02134 #line 545 "yacc.yy"
02135 { yyval._str = yyvsp[0]._str; ;}
02136 break;
02137
02138 case 116:
02139 #line 546 "yacc.yy"
02140 { yyval._str = yyvsp[0]._str; ;}
02141 break;
02142
02143 case 117:
02144 #line 547 "yacc.yy"
02145 { yyval._str = yyvsp[0]._str; ;}
02146 break;
02147
02148 case 118:
02149 #line 548 "yacc.yy"
02150 {
02151 QString *tmp = new QString("%1<%2>");
02152 *tmp = tmp->arg(*(yyvsp[-3]._str));
02153 *tmp = tmp->arg(*(yyvsp[-1]._str));
02154 yyval._str = tmp;
02155 ;}
02156 break;
02157
02158 case 119:
02159 #line 554 "yacc.yy"
02160 {
02161 QString *tmp = new QString("%1<%2>::%3");
02162 *tmp = tmp->arg(*(yyvsp[-5]._str));
02163 *tmp = tmp->arg(*(yyvsp[-3]._str));
02164 *tmp = tmp->arg(*(yyvsp[0]._str));
02165 yyval._str = tmp;
02166 ;}
02167 break;
02168
02169 case 120:
02170 #line 566 "yacc.yy"
02171 {
02172 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str));
02173 ;}
02174 break;
02175
02176 case 121:
02177 #line 570 "yacc.yy"
02178 {
02179 yyval._str = yyvsp[0]._str;
02180 ;}
02181 break;
02182
02183 case 122:
02184 #line 578 "yacc.yy"
02185 {
02186 if (dcop_area)
02187 yyerror("in dcop areas are no pointers allowed");
02188 ;}
02189 break;
02190
02191 case 123:
02192 #line 583 "yacc.yy"
02193 {
02194 yyval._str = yyvsp[0]._str;
02195 ;}
02196 break;
02197
02198 case 124:
02199 #line 592 "yacc.yy"
02200 {
02201 if (dcop_area)
02202 yyerror("in dcop areas are no pointers allowed");
02203 ;}
02204 break;
02205
02206 case 125:
02207 #line 596 "yacc.yy"
02208 {
02209 if (dcop_area) {
02210 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>");
02211 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02212 yyval._str = tmp;
02213 }
02214 ;}
02215 break;
02216
02217 case 126:
02218 #line 603 "yacc.yy"
02219 {
02220 QString* tmp = new QString("<TYPE>%1</TYPE>");
02221 *tmp = tmp->arg( *(yyvsp[0]._str) );
02222 yyval._str = tmp;
02223 ;}
02224 break;
02225
02226 case 127:
02227 #line 608 "yacc.yy"
02228 {
02229 QString* tmp = new QString("<TYPE>%1</TYPE>");
02230 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02231 yyval._str = tmp;
02232 ;}
02233 break;
02234
02235 case 128:
02236 #line 613 "yacc.yy"
02237 {
02238 if (dcop_area) {
02239 QString* tmp = new QString("<TYPE qleft=\"const\" qright=\"" AMP_ENTITY "\">%1</TYPE>");
02240 *tmp = tmp->arg( *(yyvsp[-2]._str) );
02241 yyval._str = tmp;
02242 }
02243 ;}
02244 break;
02245
02246 case 129:
02247 #line 620 "yacc.yy"
02248 {
02249 if (dcop_area)
02250 yyerror("in dcop areas are only const references allowed!");
02251 ;}
02252 break;
02253
02254 case 130:
02255 #line 625 "yacc.yy"
02256 {
02257 QString* tmp = new QString("<TYPE>%1</TYPE>");
02258 *tmp = tmp->arg( *(yyvsp[0]._str) );
02259 yyval._str = tmp;
02260 ;}
02261 break;
02262
02263 case 131:
02264 #line 631 "yacc.yy"
02265 {
02266 if (dcop_area)
02267 yyerror("in dcop areas are no pointers allowed");
02268 ;}
02269 break;
02270
02271 case 132:
02272 #line 639 "yacc.yy"
02273 {
02274 yyval._str = new QString(*(yyvsp[-2]._str) + "," + *(yyvsp[0]._str));
02275 ;}
02276 break;
02277
02278 case 133:
02279 #line 643 "yacc.yy"
02280 {
02281 yyval._str = yyvsp[0]._str;
02282 ;}
02283 break;
02284
02285 case 134:
02286 #line 650 "yacc.yy"
02287 {
02288 if (dcop_area) {
02289 QString* tmp = new QString("\n <ARG>%1<NAME>%2</NAME></ARG>");
02290 *tmp = tmp->arg( *(yyvsp[-2]._str) );
02291 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02292 yyval._str = tmp;
02293 } else yyval._str = new QString();
02294 ;}
02295 break;
02296
02297 case 135:
02298 #line 659 "yacc.yy"
02299 {
02300 if (dcop_area) {
02301 QString* tmp = new QString("\n <ARG>%1</ARG>");
02302 *tmp = tmp->arg( *(yyvsp[-1]._str) );
02303 yyval._str = tmp;
02304 } else yyval._str = new QString();
02305 ;}
02306 break;
02307
02308 case 136:
02309 #line 667 "yacc.yy"
02310 {
02311 if (dcop_area)
02312 yyerror("variable arguments not supported in dcop area.");
02313 yyval._str = new QString("");
02314 ;}
02315 break;
02316
02317 case 137:
02318 #line 676 "yacc.yy"
02319 {
02320 ;}
02321 break;
02322
02323 case 138:
02324 #line 679 "yacc.yy"
02325 {
02326 ;}
02327 break;
02328
02329 case 139:
02330 #line 682 "yacc.yy"
02331 {
02332 ;}
02333 break;
02334
02335 case 140:
02336 #line 689 "yacc.yy"
02337 {
02338 ;}
02339 break;
02340
02341 case 141:
02342 #line 692 "yacc.yy"
02343 {
02344 ;}
02345 break;
02346
02347 case 142:
02348 #line 695 "yacc.yy"
02349 {
02350 ;}
02351 break;
02352
02353 case 143:
02354 #line 698 "yacc.yy"
02355 {
02356 ;}
02357 break;
02358
02359 case 144:
02360 #line 701 "yacc.yy"
02361 {
02362 ;}
02363 break;
02364
02365 case 145:
02366 #line 706 "yacc.yy"
02367 { yyval._int = 0; ;}
02368 break;
02369
02370 case 146:
02371 #line 707 "yacc.yy"
02372 { yyval._int = 1; ;}
02373 break;
02374
02375 case 152:
02376 #line 716 "yacc.yy"
02377 {
02378 if (dcop_area || dcop_signal_area) {
02379 QString* tmp = 0;
02380 tmp = new QString(
02381 " <%4>\n"
02382 " %2\n"
02383 " <NAME>%1</NAME>"
02384 "%3\n"
02385 " </%5>\n");
02386 *tmp = tmp->arg( *(yyvsp[-4]._str) );
02387 *tmp = tmp->arg( *(yyvsp[-5]._str) );
02388 *tmp = tmp->arg( *(yyvsp[-2]._str) );
02389
02390 QString tagname = (dcop_signal_area) ? "SIGNAL" : "FUNC";
02391 QString attr = (yyvsp[0]._int) ? " qual=\"const\"" : "";
02392 *tmp = tmp->arg( QString("%1%2").arg(tagname).arg(attr) );
02393 *tmp = tmp->arg( QString("%1").arg(tagname) );
02394 yyval._str = tmp;
02395 } else
02396 yyval._str = new QString("");
02397 ;}
02398 break;
02399
02400 case 153:
02401 #line 738 "yacc.yy"
02402 {
02403 if (dcop_area)
02404 yyerror("operators aren't allowed in dcop areas!");
02405 yyval._str = new QString("");
02406 ;}
02407 break;
02408
02409 case 154:
02410 #line 748 "yacc.yy"
02411 {;}
02412 break;
02413
02414 case 155:
02415 #line 749 "yacc.yy"
02416 {;}
02417 break;
02418
02419 case 156:
02420 #line 750 "yacc.yy"
02421 {;}
02422 break;
02423
02424 case 157:
02425 #line 755 "yacc.yy"
02426 {;}
02427 break;
02428
02429 case 158:
02430 #line 760 "yacc.yy"
02431 {;}
02432 break;
02433
02434 case 159:
02435 #line 761 "yacc.yy"
02436 {;}
02437 break;
02438
02439 case 160:
02440 #line 766 "yacc.yy"
02441 {
02442 yyval._str = yyvsp[-1]._str;
02443 ;}
02444 break;
02445
02446 case 161:
02447 #line 770 "yacc.yy"
02448 {
02449 yyval._str = yyvsp[-3]._str;
02450 ;}
02451 break;
02452
02453 case 162:
02454 #line 774 "yacc.yy"
02455 {
02456 yyval._str = yyvsp[-1]._str;
02457 ;}
02458 break;
02459
02460 case 163:
02461 #line 778 "yacc.yy"
02462 {
02463
02464 assert(!dcop_area);
02465 yyval._str = new QString("");
02466 ;}
02467 break;
02468
02469 case 164:
02470 #line 784 "yacc.yy"
02471 {
02472
02473 assert(!dcop_area);
02474 yyval._str = new QString("");
02475 ;}
02476 break;
02477
02478 case 165:
02479 #line 790 "yacc.yy"
02480 {
02481
02482 assert(!dcop_area);
02483 yyval._str = new QString("");
02484 ;}
02485 break;
02486
02487 case 166:
02488 #line 796 "yacc.yy"
02489 {
02490 if (dcop_area) {
02491 if (dcop_signal_area)
02492 yyerror("DCOP signals cannot be static");
02493 else
02494 yyerror("DCOP functions cannot be static");
02495 } else {
02496 yyval._str = new QString();
02497 }
02498 ;}
02499 break;
02500
02501 case 167:
02502 #line 809 "yacc.yy"
02503 {
02504 function_mode = 1;
02505 ;}
02506 break;
02507
02508 case 171:
02509 #line 821 "yacc.yy"
02510 {;}
02511 break;
02512
02513 case 172:
02514 #line 822 "yacc.yy"
02515 {;}
02516 break;
02517
02518 case 176:
02519 #line 834 "yacc.yy"
02520 {;}
02521 break;
02522
02523 case 177:
02524 #line 835 "yacc.yy"
02525 {;}
02526 break;
02527
02528 case 178:
02529 #line 836 "yacc.yy"
02530 {;}
02531 break;
02532
02533 case 179:
02534 #line 839 "yacc.yy"
02535 {;}
02536 break;
02537
02538 case 180:
02539 #line 843 "yacc.yy"
02540 {;}
02541 break;
02542
02543 case 181:
02544 #line 844 "yacc.yy"
02545 {;}
02546 break;
02547
02548 case 182:
02549 #line 845 "yacc.yy"
02550 {;}
02551 break;
02552
02553 case 183:
02554 #line 846 "yacc.yy"
02555 {;}
02556 break;
02557
02558 case 184:
02559 #line 847 "yacc.yy"
02560 {;}
02561 break;
02562
02563
02564 }
02565
02566
02567 #line 2567 "yacc.cc"
02568
02569 yyvsp -= yylen;
02570 yyssp -= yylen;
02571
02572
02573 YY_STACK_PRINT (yyss, yyssp);
02574
02575 *++yyvsp = yyval;
02576
02577
02578
02579
02580
02581
02582 yyn = yyr1[yyn];
02583
02584 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
02585 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
02586 yystate = yytable[yystate];
02587 else
02588 yystate = yydefgoto[yyn - YYNTOKENS];
02589
02590 goto yynewstate;
02591
02592
02593
02594
02595
02596 yyerrlab:
02597
02598 if (!yyerrstatus)
02599 {
02600 ++yynerrs;
02601 #if YYERROR_VERBOSE
02602 yyn = yypact[yystate];
02603
02604 if (YYPACT_NINF < yyn && yyn < YYLAST)
02605 {
02606 YYSIZE_T yysize = 0;
02607 int yytype = YYTRANSLATE (yychar);
02608 char *yymsg;
02609 int yyx, yycount;
02610
02611 yycount = 0;
02612
02613
02614 for (yyx = yyn < 0 ? -yyn : 0;
02615 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
02616 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02617 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
02618 yysize += yystrlen ("syntax error, unexpected ") + 1;
02619 yysize += yystrlen (yytname[yytype]);
02620 yymsg = (char *) YYSTACK_ALLOC (yysize);
02621 if (yymsg != 0)
02622 {
02623 char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
02624 yyp = yystpcpy (yyp, yytname[yytype]);
02625
02626 if (yycount < 5)
02627 {
02628 yycount = 0;
02629 for (yyx = yyn < 0 ? -yyn : 0;
02630 yyx < (int) (sizeof (yytname) / sizeof (char *));
02631 yyx++)
02632 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
02633 {
02634 const char *yyq = ! yycount ? ", expecting " : " or ";
02635 yyp = yystpcpy (yyp, yyq);
02636 yyp = yystpcpy (yyp, yytname[yyx]);
02637 yycount++;
02638 }
02639 }
02640 yyerror (yymsg);
02641 YYSTACK_FREE (yymsg);
02642 }
02643 else
02644 yyerror ("syntax error; also virtual memory exhausted");
02645 }
02646 else
02647 #endif
02648 yyerror ("syntax error");
02649 }
02650
02651
02652
02653 if (yyerrstatus == 3)
02654 {
02655
02656
02657
02658
02659 if (yychar == YYEOF)
02660 {
02661
02662 YYPOPSTACK;
02663
02664 while (yyss < yyssp)
02665 {
02666 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
02667 yydestruct (yystos[*yyssp], yyvsp);
02668 YYPOPSTACK;
02669 }
02670 YYABORT;
02671 }
02672
02673 YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
02674 yydestruct (yytoken, &yylval);
02675 yychar = YYEMPTY;
02676
02677 }
02678
02679
02680
02681 goto yyerrlab2;
02682
02683
02684
02685
02686
02687 yyerrlab1:
02688
02689
02690
02691 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
02692 && !defined __cplusplus
02693 __attribute__ ((__unused__))
02694 #endif
02695
02696
02697 goto yyerrlab2;
02698
02699
02700
02701
02702
02703 yyerrlab2:
02704 yyerrstatus = 3;
02705
02706 for (;;)
02707 {
02708 yyn = yypact[yystate];
02709 if (yyn != YYPACT_NINF)
02710 {
02711 yyn += YYTERROR;
02712 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
02713 {
02714 yyn = yytable[yyn];
02715 if (0 < yyn)
02716 break;
02717 }
02718 }
02719
02720
02721 if (yyssp == yyss)
02722 YYABORT;
02723
02724 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
02725 yydestruct (yystos[yystate], yyvsp);
02726 yyvsp--;
02727 yystate = *--yyssp;
02728
02729 YY_STACK_PRINT (yyss, yyssp);
02730 }
02731
02732 if (yyn == YYFINAL)
02733 YYACCEPT;
02734
02735 YYDPRINTF ((stderr, "Shifting error token, "));
02736
02737 *++yyvsp = yylval;
02738
02739
02740 yystate = yyn;
02741 goto yynewstate;
02742
02743
02744
02745
02746
02747 yyacceptlab:
02748 yyresult = 0;
02749 goto yyreturn;
02750
02751
02752
02753
02754 yyabortlab:
02755 yyresult = 1;
02756 goto yyreturn;
02757
02758 #ifndef yyoverflow
02759
02760
02761
02762 yyoverflowlab:
02763 yyerror ("parser stack overflow");
02764 yyresult = 2;
02765
02766 #endif
02767
02768 yyreturn:
02769 #ifndef yyoverflow
02770 if (yyss != yyssa)
02771 YYSTACK_FREE (yyss);
02772 #endif
02773 return yyresult;
02774 }
02775
02776
02777 #line 850 "yacc.yy"
02778
02779
02780 void dcopidlParse( const char *_code )
02781 {
02782 dcopidlInitFlex( _code );
02783 yyparse();
02784 }
02785