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