yacc.cc

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.  */<