dcop Library API Documentation

yacc.cc

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