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