• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

dcop

yacc.cc

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

dcop

Skip menu "dcop"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal