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