grammar.cpp

00001 /* A Bison parser, made by GNU Bison 2.1.  */
00002 
00003 /* Skeleton parser for Yacc-like parsing with Bison,
00004    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 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 /* Bison version.  */
00040 #define YYBISON_VERSION "2.1"
00041 
00042 /* Skeleton name.  */
00043 #define YYSKELETON_NAME "yacc.c"
00044 
00045 /* Pure parsers.  */
00046 #define YYPURE 0
00047 
00048 /* Using locations.  */
00049 #define YYLSP_NEEDED 1
00050 
00051 /* Substitute the variable and function names.  */
00052 #define yyparse kjsyyparse
00053 #define yylex   kjsyylex
00054 #define yyerror kjsyyerror
00055 #define yylval  kjsyylval
00056 #define yychar  kjsyychar
00057 #define yydebug kjsyydebug
00058 #define yynerrs kjsyynerrs
00059 #define yylloc kjsyylloc
00060 
00061 /* Tokens.  */
00062 #ifndef YYTOKENTYPE
00063 # define YYTOKENTYPE
00064    /* Put the tokens into the symbol table, so that GDB and other debuggers
00065       know about them.  */
00066    enum yytokentype {
00067      NULLTOKEN = 258,
00068      TRUETOKEN = 259,
00069      FALSETOKEN = 260,
00070      STRING = 261,
00071      NUMBER = 262,
00072      BREAK = 263,
00073      CASE = 264,
00074      DEFAULT = 265,
00075      FOR = 266,
00076      NEW = 267,
00077      VAR = 268,
00078      CONST = 269,
00079      CONTINUE = 270,
00080      FUNCTION = 271,
00081      RETURN = 272,
00082      VOID = 273,
00083      DELETE = 274,
00084      IF = 275,
00085      THIS = 276,
00086      DO = 277,
00087      WHILE = 278,
00088      ELSE = 279,
00089      IN = 280,
00090      INSTANCEOF = 281,
00091      TYPEOF = 282,
00092      SWITCH = 283,
00093      WITH = 284,
00094      RESERVED = 285,
00095      THROW = 286,
00096      TRY = 287,
00097      CATCH = 288,
00098      FINALLY = 289,
00099      DEBUGGER = 290,
00100      EQEQ = 291,
00101      NE = 292,
00102      STREQ = 293,
00103      STRNEQ = 294,
00104      LE = 295,
00105      GE = 296,
00106      OR = 297,
00107      AND = 298,
00108      PLUSPLUS = 299,
00109      MINUSMINUS = 300,
00110      LSHIFT = 301,
00111      RSHIFT = 302,
00112      URSHIFT = 303,
00113      PLUSEQUAL = 304,
00114      MINUSEQUAL = 305,
00115      MULTEQUAL = 306,
00116      DIVEQUAL = 307,
00117      LSHIFTEQUAL = 308,
00118      RSHIFTEQUAL = 309,
00119      URSHIFTEQUAL = 310,
00120      ANDEQUAL = 311,
00121      MODEQUAL = 312,
00122      XOREQUAL = 313,
00123      OREQUAL = 314,
00124      IDENT = 315,
00125      AUTOPLUSPLUS = 316,
00126      AUTOMINUSMINUS = 317
00127    };
00128 #endif
00129 /* Tokens.  */
00130 #define NULLTOKEN 258
00131 #define TRUETOKEN 259
00132 #define FALSETOKEN 260
00133 #define STRING 261
00134 #define NUMBER 262
00135 #define BREAK 263
00136 #define CASE 264
00137 #define DEFAULT 265
00138 #define FOR 266
00139 #define NEW 267
00140 #define VAR 268
00141 #define CONST 269
00142 #define CONTINUE 270
00143 #define FUNCTION 271
00144 #define RETURN 272
00145 #define VOID 273
00146 #define DELETE 274
00147 #define IF 275
00148 #define THIS 276
00149 #define DO 277
00150 #define WHILE 278
00151 #define ELSE 279
00152 #define IN 280
00153 #define INSTANCEOF 281
00154 #define TYPEOF 282
00155 #define SWITCH 283
00156 #define WITH 284
00157 #define RESERVED 285
00158 #define THROW 286
00159 #define TRY 287
00160 #define CATCH 288
00161 #define FINALLY 289
00162 #define DEBUGGER 290
00163 #define EQEQ 291
00164 #define NE 292
00165 #define STREQ 293
00166 #define STRNEQ 294
00167 #define LE 295
00168 #define GE 296
00169 #define OR 297
00170 #define AND 298
00171 #define PLUSPLUS 299
00172 #define MINUSMINUS 300
00173 #define LSHIFT 301
00174 #define RSHIFT 302
00175 #define URSHIFT 303
00176 #define PLUSEQUAL 304
00177 #define MINUSEQUAL 305
00178 #define MULTEQUAL 306
00179 #define DIVEQUAL 307
00180 #define LSHIFTEQUAL 308
00181 #define RSHIFTEQUAL 309
00182 #define URSHIFTEQUAL 310
00183 #define ANDEQUAL 311
00184 #define MODEQUAL 312
00185 #define XOREQUAL 313
00186 #define OREQUAL 314
00187 #define IDENT 315
00188 #define AUTOPLUSPLUS 316
00189 #define AUTOMINUSMINUS 317
00190 
00191 
00192 
00193 
00194 /* Copy the first part of user declarations.  */
00195 #line 1 "grammar.y"
00196 
00197 
00198 /*
00199  *  This file is part of the KDE libraries
00200  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
00201  *
00202  *  This library is free software; you can redistribute it and/or
00203  *  modify it under the terms of the GNU Lesser General Public
00204  *  License as published by the Free Software Foundation; either
00205  *  version 2 of the License, or (at your option) any later version.
00206  *
00207  *  This library is distributed in the hope that it will be useful,
00208  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00209  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00210  *  Lesser General Public License for more details.
00211  *
00212  *  You should have received a copy of the GNU Lesser General Public
00213  *  License along with this library; if not, write to the Free Software
00214  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00215  *
00216  */
00217 
00218 #ifdef HAVE_CONFIG_H
00219 #include <config.h>
00220 #endif
00221 #include <string.h>
00222 #include <stdlib.h>
00223 #include "value.h"
00224 #include "object.h"
00225 #include "types.h"
00226 #include "interpreter.h"
00227 #include "nodes.h"
00228 #include "lexer.h"
00229 #include "internal.h"
00230 
00231 /* default values for bison */
00232 #define YYDEBUG 0
00233 #ifdef YYMAXDEPTH
00234 #undef YYMAXDEPTH
00235 #endif
00236 #define YYERROR_VERBOSE
00237 #define DBG(l, s, e) { l->setLoc(s.first_line, e.last_line, Parser::source); } // location
00238 
00239 extern int yylex();
00240 static int yyerror (const char *);
00241 static bool automatic();
00242 
00243 using namespace KJS;
00244 
00245 
00246 
00247 /* Enabling traces.  */
00248 #ifndef YYDEBUG
00249 # define YYDEBUG 0
00250 #endif
00251 
00252 /* Enabling verbose error messages.  */
00253 #ifdef YYERROR_VERBOSE
00254 # undef YYERROR_VERBOSE
00255 # define YYERROR_VERBOSE 1
00256 #else
00257 # define YYERROR_VERBOSE 0
00258 #endif
00259 
00260 /* Enabling the token table.  */
00261 #ifndef YYTOKEN_TABLE
00262 # define YYTOKEN_TABLE 0
00263 #endif
00264 
00265 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
00266 #line 52 "grammar.y"
00267 typedef union YYSTYPE {
00268   int                 ival;
00269   double              dval;
00270   UString             *ustr;
00271   Identifier          *ident;
00272   Node                *node;
00273   StatementNode       *stat;
00274   ParameterNode       *param;
00275   FunctionBodyNode    *body;
00276   FuncDeclNode        *func;
00277   FunctionBodyNode    *prog;
00278   AssignExprNode      *init;
00279   SourceElementsNode  *srcs;
00280   StatListNode        *slist;
00281   ArgumentsNode       *args;
00282   ArgumentListNode    *alist;
00283   VarDeclNode         *decl;
00284   VarDeclListNode     *vlist;
00285   CaseBlockNode       *cblk;
00286   ClauseListNode      *clist;
00287   CaseClauseNode      *ccl;
00288   ElementNode         *elm;
00289   Operator            op;
00290   PropertyValueNode   *plist;
00291   PropertyNode        *pnode;
00292   CatchNode           *cnode;
00293   FinallyNode         *fnode;
00294 } YYSTYPE;
00295 /* Line 196 of yacc.c.  */
00296 #line 297 "grammar.tab.c"
00297 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00298 # define YYSTYPE_IS_DECLARED 1
00299 # define YYSTYPE_IS_TRIVIAL 1
00300 #endif
00301 
00302 #if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED)
00303 typedef struct YYLTYPE
00304 {
00305   int first_line;
00306   int first_column;
00307   int last_line;
00308   int last_column;
00309 } YYLTYPE;
00310 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
00311 # define YYLTYPE_IS_DECLARED 1
00312 # define YYLTYPE_IS_TRIVIAL 1
00313 #endif
00314 
00315 
00316 /* Copy the second part of user declarations.  */
00317 
00318 
00319 /* Line 219 of yacc.c.  */
00320 #line 321 "grammar.tab.c"
00321 
00322 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
00323 # define YYSIZE_T __SIZE_TYPE__
00324 #endif
00325 #if ! defined (YYSIZE_T) && defined (size_t)
00326 # define YYSIZE_T size_t
00327 #endif
00328 #if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
00329 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00330 # define YYSIZE_T size_t
00331 #endif
00332 #if ! defined (YYSIZE_T)
00333 # define YYSIZE_T unsigned int
00334 #endif
00335 
00336 #ifndef YY_
00337 # if YYENABLE_NLS
00338 #  if ENABLE_NLS
00339 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
00340 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00341 #  endif
00342 # endif
00343 # ifndef YY_
00344 #  define YY_(msgid) msgid
00345 # endif
00346 #endif
00347 
00348 #if ! defined (yyoverflow) || YYERROR_VERBOSE
00349 
00350 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00351 
00352 # ifdef YYSTACK_USE_ALLOCA
00353 #  if YYSTACK_USE_ALLOCA
00354 #   ifdef __GNUC__
00355 #    define YYSTACK_ALLOC __builtin_alloca
00356 #   else
00357 #    define YYSTACK_ALLOC alloca
00358 #    if defined (__STDC__) || defined (__cplusplus)
00359 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00360 #     define YYINCLUDED_STDLIB_H
00361 #    endif
00362 #   endif
00363 #  endif
00364 # endif
00365 
00366 # ifdef YYSTACK_ALLOC
00367    /* Pacify GCC's `empty if-body' warning. */
00368 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
00369 #  ifndef YYSTACK_ALLOC_MAXIMUM
00370     /* The OS might guarantee only one guard page at the bottom of the stack,
00371        and a page size can be as small as 4096 bytes.  So we cannot safely
00372        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
00373        to allow for a few compiler-allocated temporary stack slots.  */
00374 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
00375 #  endif
00376 # else
00377 #  define YYSTACK_ALLOC YYMALLOC
00378 #  define YYSTACK_FREE YYFREE
00379 #  ifndef YYSTACK_ALLOC_MAXIMUM
00380 #   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
00381 #  endif
00382 #  ifdef __cplusplus
00383 extern "C" {
00384 #  endif
00385 #  ifndef YYMALLOC
00386 #   define YYMALLOC malloc
00387 #   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
00388     && (defined (__STDC__) || defined (__cplusplus)))
00389 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
00390 #   endif
00391 #  endif
00392 #  ifndef YYFREE
00393 #   define YYFREE free
00394 #   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
00395     && (defined (__STDC__) || defined (__cplusplus)))
00396 void free (void *); /* INFRINGES ON USER NAME SPACE */
00397 #   endif
00398 #  endif
00399 #  ifdef __cplusplus
00400 }
00401 #  endif
00402 # endif
00403 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
00404 
00405 
00406 #if (! defined (yyoverflow) \
00407      && (! defined (__cplusplus) \
00408      || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
00409              && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
00410 
00411 /* A type that is properly aligned for any stack member.  */
00412 union yyalloc
00413 {
00414   short int yyss;
00415   YYSTYPE yyvs;
00416     YYLTYPE yyls;
00417 };
00418 
00419 /* The size of the maximum gap between one aligned stack and the next.  */
00420 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00421 
00422 /* The size of an array large to enough to hold all stacks, each with
00423    N elements.  */
00424 # define YYSTACK_BYTES(N) \
00425      ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE))  \
00426       + 2 * YYSTACK_GAP_MAXIMUM)
00427 
00428 /* Copy COUNT objects from FROM to TO.  The source and destination do
00429    not overlap.  */
00430 # ifndef YYCOPY
00431 #  if defined (__GNUC__) && 1 < __GNUC__
00432 #   define YYCOPY(To, From, Count) \
00433       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00434 #  else
00435 #   define YYCOPY(To, From, Count)      \
00436       do                    \
00437     {                   \
00438       YYSIZE_T yyi;             \
00439       for (yyi = 0; yyi < (Count); yyi++)   \
00440         (To)[yyi] = (From)[yyi];        \
00441     }                   \
00442       while (0)
00443 #  endif
00444 # endif
00445 
00446 /* Relocate STACK from its old location to the new one.  The
00447    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00448    elements in the stack, and YYPTR gives the new location of the
00449    stack.  Advance YYPTR to a properly aligned location for the next
00450    stack.  */
00451 # define YYSTACK_RELOCATE(Stack)                    \
00452     do                                  \
00453       {                                 \
00454     YYSIZE_T yynewbytes;                        \
00455     YYCOPY (&yyptr->Stack, Stack, yysize);              \
00456     Stack = &yyptr->Stack;                      \
00457     yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00458     yyptr += yynewbytes / sizeof (*yyptr);              \
00459       }                                 \
00460     while (0)
00461 
00462 #endif
00463 
00464 #if defined (__STDC__) || defined (__cplusplus)
00465    typedef signed char yysigned_char;
00466 #else
00467    typedef short int yysigned_char;
00468 #endif
00469 
00470 /* YYFINAL -- State number of the termination state. */
00471 #define YYFINAL  195
00472 /* YYLAST -- Last index in YYTABLE.  */
00473 #define YYLAST   1398
00474 
00475 /* YYNTOKENS -- Number of terminals. */
00476 #define YYNTOKENS  87
00477 /* YYNNTS -- Number of nonterminals. */
00478 #define YYNNTS  70
00479 /* YYNRULES -- Number of rules. */
00480 #define YYNRULES  210
00481 /* YYNRULES -- Number of states. */
00482 #define YYNSTATES  377
00483 
00484 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00485 #define YYUNDEFTOK  2
00486 #define YYMAXUTOK   317
00487 
00488 #define YYTRANSLATE(YYX)                        \
00489   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00490 
00491 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00492 static const unsigned char yytranslate[] =
00493 {
00494        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00495        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00496        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00497        2,     2,     2,    76,     2,     2,     2,    78,    81,     2,
00498       64,    65,    77,    73,    68,    74,    72,    63,     2,     2,
00499        2,     2,     2,     2,     2,     2,     2,     2,    71,    86,
00500       79,    85,    80,    84,     2,     2,     2,     2,     2,     2,
00501        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00502        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00503        2,    69,     2,    70,    82,     2,     2,     2,     2,     2,
00504        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00505        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00506        2,     2,     2,    66,    83,    67,    75,     2,     2,     2,
00507        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00508        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00509        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00510        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00511        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00512        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00513        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00514        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00515        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00516        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00517        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00518        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00519        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00520        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
00521       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
00522       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
00523       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
00524       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
00525       55,    56,    57,    58,    59,    60,    61,    62
00526 };
00527 
00528 #if YYDEBUG
00529 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00530    YYRHS.  */
00531 static const unsigned short int yyprhs[] =
00532 {
00533        0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
00534       19,    21,    23,    25,    29,    32,    36,    41,    45,    49,
00535       55,    58,    63,    64,    66,    68,    71,    75,    81,    83,
00536       85,    87,    89,    91,    96,   100,   104,   106,   109,   112,
00537      115,   120,   124,   127,   131,   133,   137,   139,   141,   143,
00538      146,   149,   151,   154,   157,   160,   163,   166,   169,   172,
00539      175,   178,   181,   184,   186,   190,   194,   198,   200,   204,
00540      208,   210,   214,   218,   222,   224,   228,   232,   236,   240,
00541      244,   248,   250,   254,   258,   262,   266,   268,   272,   274,
00542      278,   280,   284,   286,   290,   292,   296,   298,   304,   306,
00543      310,   312,   314,   316,   318,   320,   322,   324,   326,   328,
00544      330,   332,   334,   336,   340,   342,   344,   346,   348,   350,
00545      352,   354,   356,   358,   360,   362,   364,   366,   368,   370,
00546      372,   375,   379,   381,   384,   388,   392,   394,   398,   400,
00547      403,   407,   411,   413,   417,   419,   422,   425,   427,   430,
00548      433,   439,   447,   454,   460,   470,   481,   489,   498,   508,
00549      509,   511,   514,   517,   521,   525,   528,   531,   535,   539,
00550      542,   545,   549,   553,   559,   565,   569,   575,   576,   578,
00551      580,   583,   587,   592,   595,   599,   603,   607,   611,   615,
00552      619,   624,   627,   630,   636,   639,   641,   644,   650,   657,
00553      662,   668,   670,   674,   677,   681,   682,   684,   686,   689,
00554      691
00555 };
00556 
00557 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
00558 static const short int yyrhs[] =
00559 {
00560      154,     0,    -1,     3,    -1,     4,    -1,     5,    -1,     7,
00561       -1,     6,    -1,    63,    -1,    52,    -1,    21,    -1,    60,
00562       -1,    88,    -1,    90,    -1,    64,   117,    65,    -1,    66,
00563       67,    -1,    66,    94,    67,    -1,    66,    94,    68,    67,
00564       -1,    69,    92,    70,    -1,    69,    91,    70,    -1,    69,
00565       91,    68,    92,    70,    -1,    92,   115,    -1,    91,    68,
00566       92,   115,    -1,    -1,    93,    -1,    68,    -1,    93,    68,
00567       -1,    95,    71,   115,    -1,    94,    68,    95,    71,   115,
00568       -1,    60,    -1,     6,    -1,     7,    -1,    89,    -1,   151,
00569       -1,    96,    69,   117,    70,    -1,    96,    72,    60,    -1,
00570       12,    96,    99,    -1,    96,    -1,    12,    97,    -1,    96,
00571       99,    -1,    98,    99,    -1,    98,    69,   117,    70,    -1,
00572       98,    72,    60,    -1,    64,    65,    -1,    64,   100,    65,
00573       -1,   115,    -1,   100,    68,   115,    -1,    97,    -1,    98,
00574       -1,   101,    -1,   101,    44,    -1,   101,    45,    -1,   102,
00575       -1,    19,   103,    -1,    18,   103,    -1,    27,   103,    -1,
00576       44,   103,    -1,    61,   103,    -1,    45,   103,    -1,    62,
00577      103,    -1,    73,   103,    -1,    74,   103,    -1,    75,   103,
00578       -1,    76,   103,    -1,   103,    -1,   104,    77,   103,    -1,
00579      104,    63,   103,    -1,   104,    78,   103,    -1,   104,    -1,
00580      105,    73,   104,    -1,   105,    74,   104,    -1,   105,    -1,
00581      106,    46,   105,    -1,   106,    47,   105,    -1,   106,    48,
00582      105,    -1,   106,    -1,   107,    79,   106,    -1,   107,    80,
00583      106,    -1,   107,    40,   106,    -1,   107,    41,   106,    -1,
00584      107,    26,   106,    -1,   107,    25,   106,    -1,   107,    -1,
00585      108,    36,   107,    -1,   108,    37,   107,    -1,   108,    38,
00586      107,    -1,   108,    39,   107,    -1,   108,    -1,   109,    81,
00587      108,    -1,   109,    -1,   110,    82,   109,    -1,   110,    -1,
00588      111,    83,   110,    -1,   111,    -1,   112,    43,   111,    -1,
00589      112,    -1,   113,    42,   112,    -1,   113,    -1,   113,    84,
00590      115,    71,   115,    -1,   114,    -1,   101,   116,   115,    -1,
00591       85,    -1,    49,    -1,    50,    -1,    51,    -1,    52,    -1,
00592       53,    -1,    54,    -1,    55,    -1,    56,    -1,    58,    -1,
00593       59,    -1,    57,    -1,   115,    -1,   117,    68,   115,    -1,
00594      119,    -1,   121,    -1,   124,    -1,   128,    -1,   129,    -1,
00595      130,    -1,   131,    -1,   133,    -1,   134,    -1,   135,    -1,
00596      136,    -1,   137,    -1,   143,    -1,   144,    -1,   145,    -1,
00597      146,    -1,    66,    67,    -1,    66,   155,    67,    -1,   118,
00598       -1,   120,   118,    -1,    13,   122,    86,    -1,    13,   122,
00599        1,    -1,   123,    -1,   122,    68,   123,    -1,    60,    -1,
00600       60,   127,    -1,    14,   125,    86,    -1,    14,   125,     1,
00601       -1,   126,    -1,   125,    68,   123,    -1,    60,    -1,    60,
00602      127,    -1,    85,   115,    -1,    86,    -1,   117,    86,    -1,
00603      117,     1,    -1,    20,    64,   117,    65,   118,    -1,    20,
00604       64,   117,    65,   118,    24,   118,    -1,    22,   118,    23,
00605       64,   117,    65,    -1,    23,    64,   117,    65,   118,    -1,
00606       11,    64,   132,    86,   132,    86,   132,    65,   118,    -1,
00607       11,    64,    13,   122,    86,   132,    86,   132,    65,   118,
00608       -1,    11,    64,   101,    25,   117,    65,   118,    -1,    11,
00609       64,    13,    60,    25,   117,    65,   118,    -1,    11,    64,
00610       13,    60,   127,    25,   117,    65,   118,    -1,    -1,   117,
00611       -1,    15,    86,    -1,    15,     1,    -1,    15,    60,    86,
00612       -1,    15,    60,     1,    -1,     8,    86,    -1,     8,     1,
00613       -1,     8,    60,    86,    -1,     8,    60,     1,    -1,    17,
00614       86,    -1,    17,     1,    -1,    17,   117,    86,    -1,    17,
00615      117,     1,    -1,    29,    64,   117,    65,   118,    -1,    28,
00616       64,   117,    65,   138,    -1,    66,   139,    67,    -1,    66,
00617      139,   142,   139,    67,    -1,    -1,   140,    -1,   141,    -1,
00618      140,   141,    -1,     9,   117,    71,    -1,     9,   117,    71,
00619      120,    -1,    10,    71,    -1,    10,    71,   120,    -1,    60,
00620       71,   118,    -1,    31,   117,    86,    -1,    31,   117,     1,
00621       -1,    32,   119,   147,    -1,    32,   119,   148,    -1,    32,
00622      119,   147,   148,    -1,    35,    86,    -1,    35,     1,    -1,
00623       33,    64,    60,    65,   119,    -1,    34,   119,    -1,   150,
00624       -1,    18,   150,    -1,    16,    60,    64,    65,   153,    -1,
00625       16,    60,    64,   152,    65,   153,    -1,    16,    64,    65,
00626      153,    -1,    16,    64,   152,    65,   153,    -1,    60,    -1,
00627      152,    68,    60,    -1,    66,    67,    -1,    66,   155,    67,
00628       -1,    -1,   155,    -1,   156,    -1,   155,   156,    -1,   118,
00629       -1,   149,    -1
00630 };
00631 
00632 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
00633 static const unsigned short int yyrline[] =
00634 {
00635        0,   169,   169,   170,   171,   172,   173,   174,   177,   184,
00636      185,   186,   187,   188,   189,   190,   191,   195,   196,   197,
00637      201,   202,   207,   208,   212,   213,   217,   218,   223,   224,
00638      225,   229,   230,   231,   232,   233,   237,   238,   242,   243,
00639      244,   245,   249,   250,   254,   255,   259,   260,   264,   265,
00640      266,   270,   271,   272,   273,   274,   275,   276,   277,   278,
00641      279,   280,   281,   285,   286,   287,   288,   292,   293,   294,
00642      298,   299,   300,   301,   305,   306,   308,   310,   312,   314,
00643      316,   321,   322,   323,   324,   325,   329,   330,   334,   335,
00644      339,   340,   344,   345,   350,   351,   356,   357,   362,   363,
00645      368,   369,   370,   371,   372,   373,   374,   375,   376,   377,
00646      378,   379,   383,   384,   388,   389,   390,   391,   392,   393,
00647      394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
00648      407,   408,   412,   413,   417,   419,   429,   430,   435,   436,
00649      440,   442,   452,   453,   458,   459,   463,   467,   471,   473,
00650      481,   482,   487,   488,   489,   492,   495,   498,   501,   507,
00651      508,   512,   513,   517,   518,   525,   526,   530,   531,   539,
00652      540,   544,   545,   553,   558,   563,   564,   569,   570,   574,
00653      575,   579,   580,   584,   585,   589,   594,   595,   602,   603,
00654      604,   608,   609,   618,   623,   627,   629,   633,   634,   639,
00655      640,   646,   647,   651,   653,   658,   661,   666,   667,   671,
00656      672
00657 };
00658 #endif
00659 
00660 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00661 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
00662    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
00663 static const char *const yytname[] =
00664 {
00665   "$end", "error", "$undefined", "NULLTOKEN", "TRUETOKEN", "FALSETOKEN",
00666   "STRING", "NUMBER", "BREAK", "CASE", "DEFAULT", "FOR", "NEW", "VAR",
00667   "CONST", "CONTINUE", "FUNCTION", "RETURN", "VOID", "DELETE", "IF",
00668   "THIS", "DO", "WHILE", "ELSE", "IN", "INSTANCEOF", "TYPEOF", "SWITCH",
00669   "WITH", "RESERVED", "THROW", "TRY", "CATCH", "FINALLY", "DEBUGGER",
00670   "EQEQ", "NE", "STREQ", "STRNEQ", "LE", "GE", "OR", "AND", "PLUSPLUS",
00671   "MINUSMINUS", "LSHIFT", "RSHIFT", "URSHIFT", "PLUSEQUAL", "MINUSEQUAL",
00672   "MULTEQUAL", "DIVEQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", "URSHIFTEQUAL",
00673   "ANDEQUAL", "MODEQUAL", "XOREQUAL", "OREQUAL", "IDENT", "AUTOPLUSPLUS",
00674   "AUTOMINUSMINUS", "'/'", "'('", "')'", "'{'", "'}'", "','", "'['", "']'",
00675   "':'", "'.'", "'+'", "'-'", "'~'", "'!'", "'*'", "'%'", "'<'", "'>'",
00676   "'&'", "'^'", "'|'", "'?'", "'='", "';'", "$accept", "Literal",
00677   "PrimaryExpr", "ArrayLiteral", "ElementList", "ElisionOpt", "Elision",
00678   "PropertyNameAndValueList", "PropertyName", "MemberExpr", "NewExpr",
00679   "CallExpr", "Arguments", "ArgumentList", "LeftHandSideExpr",
00680   "PostfixExpr", "UnaryExpr", "MultiplicativeExpr", "AdditiveExpr",
00681   "ShiftExpr", "RelationalExpr", "EqualityExpr", "BitwiseANDExpr",
00682   "BitwiseXORExpr", "BitwiseORExpr", "LogicalANDExpr", "LogicalORExpr",
00683   "ConditionalExpr", "AssignmentExpr", "AssignmentOperator", "Expr",
00684   "Statement", "Block", "StatementList", "VariableStatement",
00685   "VariableDeclarationList", "VariableDeclaration", "ConstStatement",
00686   "ConstDeclarationList", "ConstDeclaration", "Initializer",
00687   "EmptyStatement", "ExprStatement", "IfStatement", "IterationStatement",
00688   "ExprOpt", "ContinueStatement", "BreakStatement", "ReturnStatement",
00689   "WithStatement", "SwitchStatement", "CaseBlock", "CaseClausesOpt",
00690   "CaseClauses", "CaseClause", "DefaultClause", "LabelledStatement",
00691   "ThrowStatement", "TryStatement", "DebuggerStatement", "Catch",
00692   "Finally", "FunctionDeclaration", "FunctionDeclarationInternal",
00693   "FunctionExpr", "FormalParameterList", "FunctionBody", "Program",
00694   "SourceElements", "SourceElement", 0
00695 };
00696 #endif
00697 
00698 # ifdef YYPRINT
00699 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
00700    token YYLEX-NUM.  */
00701 static const unsigned short int yytoknum[] =
00702 {
00703        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
00704      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
00705      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
00706      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
00707      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
00708      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
00709      315,   316,   317,    47,    40,    41,   123,   125,    44,    91,
00710       93,    58,    46,    43,    45,   126,    33,    42,    37,    60,
00711       62,    38,    94,   124,    63,    61,    59
00712 };
00713 # endif
00714 
00715 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
00716 static const unsigned char yyr1[] =
00717 {
00718        0,    87,    88,    88,    88,    88,    88,    88,    88,    89,
00719       89,    89,    89,    89,    89,    89,    89,    90,    90,    90,
00720       91,    91,    92,    92,    93,    93,    94,    94,    95,    95,
00721       95,    96,    96,    96,    96,    96,    97,    97,    98,    98,
00722       98,    98,    99,    99,   100,   100,   101,   101,   102,   102,
00723      102,   103,   103,   103,   103,   103,   103,   103,   103,   103,
00724      103,   103,   103,   104,   104,   104,   104,   105,   105,   105,
00725      106,   106,   106,   106,   107,   107,   107,   107,   107,   107,
00726      107,   108,   108,   108,   108,   108,   109,   109,   110,   110,
00727      111,   111,   112,   112,   113,   113,   114,   114,   115,   115,
00728      116,   116,   116,   116,   116,   116,   116,   116,   116,   116,
00729      116,   116,   117,   117,   118,   118,   118,   118,   118,   118,
00730      118,   118,   118,   118,   118,   118,   118,   118,   118,   118,
00731      119,   119,   120,   120,   121,   121,   122,   122,   123,   123,
00732      124,   124,   125,   125,   126,   126,   127,   128,   129,   129,
00733      130,   130,   131,   131,   131,   131,   131,   131,   131,   132,
00734      132,   133,   133,   133,   133,   134,   134,   134,   134,   135,
00735      135,   135,   135,   136,   137,   138,   138,   139,   139,   140,
00736      140,   141,   141,   142,   142,   143,   144,   144,   145,   145,
00737      145,   146,   146,   147,   148,   149,   149,   150,   150,   151,
00738      151,   152,   152,   153,   153,   154,   154,   155,   155,   156,
00739      156
00740 };
00741 
00742 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
00743 static const unsigned char yyr2[] =
00744 {
00745        0,     2,     1,     1,     1,     1,     1,     1,     1,     1,
00746        1,     1,     1,     3,     2,     3,     4,     3,     3,     5,
00747        2,     4,     0,     1,     1,     2,     3,     5,     1,     1,
00748        1,     1,     1,     4,     3,     3,     1,     2,     2,     2,
00749        4,     3,     2,     3,     1,     3,     1,     1,     1,     2,
00750        2,     1,     2,     2,     2,     2,     2,     2,     2,     2,
00751        2,     2,     2,     1,     3,     3,     3,     1,     3,     3,
00752        1,     3,     3,     3,     1,     3,     3,     3,     3,     3,
00753        3,     1,     3,     3,     3,     3,     1,     3,     1,     3,
00754        1,     3,     1,     3,     1,     3,     1,     5,     1,     3,
00755        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00756        1,     1,     1,     3,     1,     1,     1,     1,     1,     1,
00757        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00758        2,     3,     1,     2,     3,     3,     1,     3,     1,     2,
00759        3,     3,     1,     3,     1,     2,     2,     1,     2,     2,
00760        5,     7,     6,     5,     9,    10,     7,     8,     9,     0,
00761        1,     2,     2,     3,     3,     2,     2,     3,     3,     2,
00762        2,     3,     3,     5,     5,     3,     5,     0,     1,     1,
00763        2,     3,     4,     2,     3,     3,     3,     3,     3,     3,
00764        4,     2,     2,     5,     2,     1,     2,     5,     6,     4,
00765        5,     1,     3,     2,     3,     0,     1,     1,     2,     1,
00766        1
00767 };
00768 
00769 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
00770    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
00771    means the default is an error.  */
00772 static const unsigned char yydefact[] =
00773 {
00774      205,     2,     3,     4,     6,     5,     0,     0,     0,     0,
00775        0,     0,     0,     0,     0,     0,     0,     9,     0,     0,
00776        0,     0,     0,     0,     0,     0,     0,     0,     8,    10,
00777        0,     0,     7,     0,     0,    22,     0,     0,     0,     0,
00778      147,    11,    31,    12,    36,    46,    47,    48,    51,    63,
00779       67,    70,    74,    81,    86,    88,    90,    92,    94,    96,
00780       98,   112,     0,   209,   114,   115,   116,   117,   118,   119,
00781      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
00782      210,   195,    32,     0,   206,   207,   166,     0,   165,   159,
00783        0,    10,     0,    36,    37,   138,     0,   136,   144,     0,
00784      142,   162,     0,   161,     0,     0,   170,     0,   169,     0,
00785       48,    53,   196,    52,     0,     0,     0,    54,     0,     0,
00786        0,     0,     0,   192,   191,    55,    57,     0,    56,    58,
00787        0,     6,     5,    10,    14,     0,     0,     0,    24,     0,
00788        0,    23,    59,    60,    61,    62,     0,     0,     0,    38,
00789        0,     0,    39,    49,    50,   101,   102,   103,   104,   105,
00790      106,   107,   108,   111,   109,   110,   100,     0,     0,     0,
00791        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
00792        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
00793        0,     0,   149,     0,   148,     1,   208,   168,   167,     0,
00794       48,   160,     0,    29,    30,    28,    14,    35,     0,   139,
00795      135,     0,   134,   145,   141,     0,   140,   164,   163,     0,
00796      201,     0,     0,   172,   171,     0,     0,     0,     0,     0,
00797      187,   186,   130,     0,     0,   188,   189,   185,    13,    15,
00798        0,     0,   131,    22,    18,    17,    20,    25,    42,     0,
00799       44,     0,    34,     0,    41,    99,    65,    64,    66,    68,
00800       69,    71,    72,    73,    80,    79,    77,    78,    75,    76,
00801       82,    83,    84,    85,    87,    89,    91,    93,    95,     0,
00802      113,   138,     0,     0,   159,   146,   137,   143,     0,     0,
00803        0,   199,     0,     0,     0,     0,     0,     0,     0,     0,
00804      194,   190,    16,     0,    26,     0,    43,     0,    33,    40,
00805        0,     0,   139,   159,     0,     0,   197,     0,   203,     0,
00806      200,   202,   150,     0,   153,   177,   174,   173,     0,     0,
00807       19,    21,    45,    97,     0,     0,     0,     0,   159,   198,
00808      204,     0,   152,     0,     0,   178,   179,     0,    27,     0,
00809        0,   159,   156,     0,   151,     0,     0,   175,   177,   180,
00810      193,   157,     0,     0,     0,   181,   183,     0,   158,     0,
00811      154,   132,   182,   184,   176,   155,   133
00812 };
00813 
00814 /* YYDEFGOTO[NTERM-NUM]. */
00815 static const short int yydefgoto[] =
00816 {
00817       -1,    41,    42,    43,   139,   140,   141,   135,   136,    44,
00818       45,    46,   149,   249,    47,    48,    49,    50,    51,    52,
00819       53,    54,    55,    56,    57,    58,    59,    60,    61,   167,
00820       62,    63,    64,   372,    65,    96,    97,    66,    99,   100,
00821      209,    67,    68,    69,    70,   202,    71,    72,    73,    74,
00822       75,   326,   344,   345,   346,   358,    76,    77,    78,    79,
00823      235,   236,    80,    81,    82,   222,   291,    83,   137,    85
00824 };
00825 
00826 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
00827    STATE-NUM.  */
00828 #define YYPACT_NINF -271
00829 static const short int yypact[] =
00830 {
00831      756,  -271,  -271,  -271,  -271,  -271,     6,    21,   180,   -19,
00832       -7,     7,    -9,    83,  1248,  1322,    84,  -271,   832,   110,
00833     1322,   117,   135,  1322,   165,    26,  1322,  1322,  -271,     3,
00834     1322,  1322,  -271,  1322,   376,    51,  1322,  1322,  1322,  1322,
00835     -271,  -271,  -271,  -271,   -10,  -271,    53,   254,  -271,  -271,
00836      -14,   143,   107,   125,    94,   126,   163,   167,   208,   -32,
00837     -271,  -271,     8,  -271,  -271,  -271,  -271,  -271,  -271,  -271,
00838     -271,  -271,  -271,  -271,  -271,  -271,  -271,  -271,  -271,  -271,
00839     -271,  -271,  -271,   263,   756,  -271,  -271,    27,  -271,   952,
00840      200,  -271,    10,   -10,  -271,   181,    12,  -271,   181,    14,
00841     -271,  -271,    32,  -271,   201,   -23,  -271,  1322,  -271,    29,
00842      176,  -271,  -271,  -271,  1322,   244,  1322,  -271,  1322,  1322,
00843       43,   452,   189,  -271,  -271,  -271,  -271,   832,  -271,  -271,
00844      -34,   197,   198,     3,   916,   162,   199,   528,  -271,    56,
00845     1026,   206,  -271,  -271,  -271,  -271,  1100,  1322,   211,  -271,
00846     1322,   215,  -271,  -271,  -271,  -271,  -271,  -271,  -271,  -271,
00847     -271,  -271,  -271,  -271,  -271,  -271,  -271,  1322,  1322,  1322,
00848     1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,
00849     1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,  1322,
00850     1322,  1322,  -271,  1322,  -271,  -271,  -271,  -271,  -271,   219,
00851      203,   213,   196,  -271,  -271,  -271,  -271,  -271,  1322,  -271,
00852     -271,   -19,  -271,  -271,  -271,   -19,  -271,  -271,  -271,    31,
00853     -271,   217,     4,  -271,  -271,    55,   221,    69,    73,    99,
00854     -271,  -271,  -271,   222,   165,   253,  -271,  -271,  -271,  -271,
00855       54,  1322,  -271,    51,  -271,  -271,  -271,  -271,  -271,   103,
00856     -271,    72,  -271,   112,  -271,  -271,  -271,  -271,  -271,   -14,
00857      -14,   143,   143,   143,   107,   107,   107,   107,   107,   107,
00858      125,   125,   125,   125,    94,   126,   163,   167,   208,   218,
00859     -271,    -6,   -48,  1322,  1322,  -271,  -271,  -271,   217,   108,
00860      604,  -271,   217,   230,   832,  1322,   832,   226,   832,   233,
00861     -271,  -271,  -271,   223,  -271,  1174,  -271,  1322,  -271,  -271,
00862     1322,  1322,   271,  1322,   123,   228,  -271,   217,  -271,   680,
00863     -271,  -271,   273,   130,  -271,   292,  -271,  -271,   250,  1322,
00864     -271,  -271,  -271,  -271,   132,  1322,   231,   832,  1322,  -271,
00865     -271,   832,  -271,  1322,    16,   292,  -271,   165,  -271,   832,
00866      141,  1322,  -271,   251,  -271,   122,   247,  -271,   292,  -271,
00867     -271,  -271,   832,   255,   832,   832,   832,   258,  -271,   832,
00868     -271,  -271,   832,   832,  -271,  -271,  -271
00869 };
00870 
00871 /* YYPGOTO[NTERM-NUM].  */
00872 static const short int yypgoto[] =
00873 {
00874     -271,  -271,  -271,  -271,  -271,    78,  -271,  -271,    82,   320,
00875      321,  -271,   -28,  -271,   188,  -271,     9,    70,    37,    57,
00876      -22,   144,   146,   147,   145,   148,  -271,  -271,  -135,  -271,
00877      -11,   -18,   -21,   -30,  -271,   138,  -140,  -271,  -271,  -271,
00878      -92,  -271,  -271,  -271,  -271,  -270,  -271,  -271,  -271,  -271,
00879     -271,  -271,   -17,  -271,    -3,  -271,  -271,  -271,  -271,  -271,
00880     -271,   114,  -271,   329,  -271,   131,  -267,  -271,     1,   -80
00881 };
00882 
00883 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
00884    positive, shift that token.  If negative, reduce the rule which
00885    number is the opposite.  If zero, do what YYDEFACT says.
00886    If YYTABLE_NINF, syntax error.  */
00887 #define YYTABLE_NINF -131
00888 static const short int yytable[] =
00889 {
00890      115,    84,   109,   122,   196,   246,   213,    86,   101,   192,
00891      190,   250,   120,   210,   315,   214,   203,   204,   152,   311,
00892      211,   316,   130,   111,   113,   320,   356,   123,   197,   117,
00893      223,   238,   255,   217,   193,   125,   126,   220,   313,   128,
00894      129,    95,   221,   336,   230,   142,   143,   144,   145,   168,
00895      339,   104,   191,    98,   146,   105,   279,   196,   280,   147,
00896      203,   204,   148,   169,   170,   207,    87,   102,   353,   292,
00897      205,   286,   293,   285,   127,   287,   193,   206,   201,   208,
00898      211,   363,   215,   357,   106,    89,     1,     2,     3,     4,
00899        5,   220,    88,   103,   194,     8,   288,   193,   212,    90,
00900      216,   107,    15,   225,    17,   227,   304,   228,   229,   237,
00901       20,   193,   124,   198,   205,   224,   111,   146,   218,   138,
00902      294,   302,   150,   193,   243,   151,   244,    26,    27,   231,
00903      182,   183,   184,   185,   296,    28,   251,   193,   297,   253,
00904      193,   193,   308,    91,    30,    31,    32,    33,   114,    92,
00905      176,   177,    35,   173,   174,   175,    36,    37,    38,    39,
00906      270,   271,   272,   273,   298,   178,   179,   193,   306,   108,
00907      331,   307,   332,   317,   116,   333,   293,   256,   257,   258,
00908      193,   118,   309,     1,     2,     3,     4,     5,   337,   312,
00909      193,   193,     8,   365,   348,   342,    90,   349,   193,   119,
00910      193,    17,   110,   110,   180,   181,   362,   186,   110,   193,
00911      261,   262,   263,   300,   110,   110,   171,   172,   110,   110,
00912      153,   154,   233,   234,   110,   110,   110,   110,   283,   239,
00913      240,   121,    28,   264,   265,   266,   267,   268,   269,   196,
00914       91,   259,   260,    32,    33,   187,    92,   153,   154,    35,
00915      188,   189,   155,   156,   157,   158,   159,   160,   161,   162,
00916      163,   164,   165,   195,   105,   219,   208,   226,   -29,   -30,
00917      241,   252,   314,   201,   247,   254,   322,   200,   324,   281,
00918      327,   193,   284,   290,   323,   295,   299,   234,   166,   310,
00919      321,   319,   325,   328,   329,   110,   335,   341,   153,   154,
00920      334,   343,   201,   155,   156,   157,   158,   159,   160,   161,
00921      162,   163,   164,   165,   338,   347,   364,   351,   366,   352,
00922      369,   305,   303,   354,   350,   374,   360,   201,    93,    94,
00923      274,   361,   355,   275,   277,   276,   373,   282,   278,   166,
00924      201,   367,   359,   112,   368,     0,   370,   371,   371,   301,
00925      289,   375,     0,     0,   376,   376,   110,   110,   110,   110,
00926      110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
00927      110,   110,   110,   110,   110,   110,   110,   110,   110,     1,
00928        2,     3,   131,   132,     6,     0,     0,     7,     8,     9,
00929       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
00930        0,     0,     0,    20,    21,    22,     0,    23,    24,     0,
00931        0,    25,     0,     0,     0,     0,     0,     0,     0,     0,
00932       26,    27,     0,     0,     0,     0,     0,     0,    28,     0,
00933        0,     0,     0,     0,     0,     0,   133,    30,    31,    32,
00934       33,     0,    34,   134,     0,    35,     0,     0,     0,    36,
00935       37,    38,    39,     0,     0,     1,     2,     3,     4,     5,
00936        6,     0,    40,     7,     8,     9,    10,    11,    12,    13,
00937       14,    15,    16,    17,    18,    19,     0,     0,     0,    20,
00938       21,    22,     0,    23,    24,     0,     0,    25,     0,     0,
00939        0,     0,     0,     0,     0,     0,    26,    27,     0,     0,
00940        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
00941        0,     0,    29,    30,    31,    32,    33,     0,    34,   232,
00942        0,    35,     0,     0,     0,    36,    37,    38,    39,     0,
00943        0,     1,     2,     3,     4,     5,     6,     0,    40,     7,
00944        8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
00945       18,    19,     0,     0,     0,    20,    21,    22,     0,    23,
00946       24,     0,     0,    25,     0,     0,     0,     0,     0,     0,
00947        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
00948       28,     0,     0,     0,     0,     0,     0,     0,    29,    30,
00949       31,    32,    33,     0,    34,   242,     0,    35,     0,     0,
00950        0,    36,    37,    38,    39,     0,     0,     1,     2,     3,
00951        4,     5,     6,     0,    40,     7,     8,     9,    10,    11,
00952       12,    13,    14,    15,    16,    17,    18,    19,     0,     0,
00953        0,    20,    21,    22,     0,    23,    24,     0,     0,    25,
00954        0,     0,     0,     0,     0,     0,     0,     0,    26,    27,
00955        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
00956        0,     0,     0,     0,    29,    30,    31,    32,    33,     0,
00957       34,   318,     0,    35,     0,     0,     0,    36,    37,    38,
00958       39,     0,     0,     1,     2,     3,     4,     5,     6,     0,
00959       40,     7,     8,     9,    10,    11,    12,    13,    14,    15,
00960       16,    17,    18,    19,     0,     0,     0,    20,    21,    22,
00961        0,    23,    24,     0,     0,    25,     0,     0,     0,     0,
00962        0,     0,     0,     0,    26,    27,     0,     0,     0,     0,
00963        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
00964       29,    30,    31,    32,    33,     0,    34,   340,     0,    35,
00965        0,     0,     0,    36,    37,    38,    39,     0,     0,     1,
00966        2,     3,     4,     5,     6,     0,    40,     7,     8,     9,
00967       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
00968        0,     0,     0,    20,    21,    22,     0,    23,    24,     0,
00969        0,    25,     0,     0,     0,     0,     0,     0,     0,     0,
00970       26,    27,     0,     0,     0,     0,     0,     0,    28,     0,
00971        0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
00972       33,     0,    34,     0,     0,    35,     0,     0,     0,    36,
00973       37,    38,    39,     0,     0,     1,     2,     3,     4,     5,
00974        6,     0,    40,     7,     8,     9,    10,    11,    90,    13,
00975      107,    15,    16,    17,    18,    19,     0,     0,     0,    20,
00976       21,    22,     0,    23,    24,     0,     0,    25,     0,     0,
00977        0,     0,     0,     0,     0,     0,    26,    27,     0,     0,
00978        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
00979        0,     0,    29,    30,    31,    32,    33,     0,    34,     0,
00980        0,    35,     0,     0,     0,    36,    37,    38,    39,     0,
00981        0,     0,     0,     0,     0,     0,  -130,     0,    40,  -130,
00982     -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,
00983     -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,
00984     -130,     0,     0,  -130,  -130,  -130,     0,  -130,  -130,     0,
00985        0,  -130,     0,     0,     0,     1,     2,     3,     4,     5,
00986        0,     0,     0,     0,     8,   199,     0,     0,    90,     0,
00987      107,    15,     0,    17,     0,     0,  -130,  -130,  -130,    20,
00988        0,     0,  -130,  -130,     0,     0,     0,     0,     0,     0,
00989        0,  -130,  -130,     0,     0,     0,    26,    27,     0,     0,
00990        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
00991        0,     0,    91,    30,    31,    32,    33,     0,    92,     0,
00992        0,    35,     0,     0,     0,    36,    37,    38,    39,     1,
00993        2,     3,     4,     5,     0,     0,     0,     0,     8,     0,
00994        0,     0,    90,     0,   107,    15,     0,    17,     0,     0,
00995        0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
00996        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
00997       26,    27,     0,     0,     0,     0,     0,     0,    28,     0,
00998        0,     0,     0,     0,     0,     0,    91,    30,    31,    32,
00999       33,     0,    92,     0,     0,    35,   245,     0,     0,    36,
01000       37,    38,    39,     1,     2,     3,     4,     5,     0,     0,
01001        0,     0,     8,     0,     0,     0,    90,     0,   107,    15,
01002        0,    17,     0,     0,     0,     0,     0,    20,     0,     0,
01003        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01004        0,     0,     0,     0,    26,    27,     0,     0,     0,     0,
01005        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
01006       91,    30,    31,    32,    33,   248,    92,     0,     0,    35,
01007        0,     0,     0,    36,    37,    38,    39,     1,     2,     3,
01008        4,     5,     0,     0,     0,     0,     8,     0,     0,     0,
01009       90,     0,   107,    15,     0,    17,     0,     0,     0,     0,
01010        0,    20,     0,     0,     0,     0,     0,     0,     0,     0,
01011        0,     0,     0,     0,     0,     0,     0,     0,    26,    27,
01012        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
01013        0,     0,     0,     0,    91,    30,    31,    32,    33,     0,
01014       92,     0,     0,    35,   330,     0,     0,    36,    37,    38,
01015       39,     1,     2,     3,     4,     5,     0,     0,     0,     0,
01016        8,     0,     0,     0,    12,     0,   107,    15,     0,    17,
01017        0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
01018        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01019        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
01020       28,     0,     0,     0,     0,     0,     0,     0,    91,    30,
01021       31,    32,    33,     0,    92,     0,     0,    35,     0,     0,
01022        0,    36,    37,    38,    39,     1,     2,     3,     4,     5,
01023        0,     0,     0,     0,     8,     0,     0,     0,    90,     0,
01024      107,    15,     0,    17,     0,     0,     0,     0,     0,    20,
01025        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01026        0,     0,     0,     0,     0,     0,    26,    27,     0,     0,
01027        0,     0,     0,     0,    28,     0,     0,     0,     0,     0,
01028        0,     0,    91,    30,    31,    32,    33,     0,    92,     0,
01029        0,    35,     0,     0,     0,    36,    37,    38,    39
01030 };
01031 
01032 static const short int yycheck[] =
01033 {
01034       18,     0,    13,    24,    84,   140,    98,     1,     1,     1,
01035       42,   146,    23,     1,   284,     1,     6,     7,    46,    25,
01036       68,   288,    33,    14,    15,   292,    10,     1,     1,    20,
01037        1,    65,   167,     1,    68,    26,    27,    60,    86,    30,
01038       31,    60,    65,   313,     1,    36,    37,    38,    39,    63,
01039      317,    60,    84,    60,    64,    64,   191,   137,   193,    69,
01040        6,     7,    72,    77,    78,    93,    60,    60,   338,    65,
01041       60,   211,    68,   208,    71,   215,    68,    67,    89,    85,
01042       68,   351,    68,    67,     1,    64,     3,     4,     5,     6,
01043        7,    60,    86,    86,    86,    12,    65,    68,    86,    16,
01044       86,    18,    19,   114,    21,   116,   241,   118,   119,   127,
01045       27,    68,    86,    86,    60,    86,   107,    64,    86,    68,
01046       65,    67,    69,    68,    68,    72,    70,    44,    45,    86,
01047       36,    37,    38,    39,    65,    52,   147,    68,    65,   150,
01048       68,    68,    70,    60,    61,    62,    63,    64,    64,    66,
01049       25,    26,    69,    46,    47,    48,    73,    74,    75,    76,
01050      182,   183,   184,   185,    65,    40,    41,    68,    65,    86,
01051      305,    68,   307,    65,    64,   310,    68,   168,   169,   170,
01052       68,    64,    70,     3,     4,     5,     6,     7,    65,   281,
01053       68,    68,    12,    71,   329,    65,    16,    65,    68,    64,
01054       68,    21,    14,    15,    79,    80,    65,    81,    20,    68,
01055      173,   174,   175,   234,    26,    27,    73,    74,    30,    31,
01056       44,    45,    33,    34,    36,    37,    38,    39,    25,    67,
01057       68,    66,    52,   176,   177,   178,   179,   180,   181,   319,
01058       60,   171,   172,    63,    64,    82,    66,    44,    45,    69,
01059       83,    43,    49,    50,    51,    52,    53,    54,    55,    56,
01060       57,    58,    59,     0,    64,    64,    85,    23,    71,    71,
01061       71,    60,   283,   284,    68,    60,   294,    89,   296,    60,
01062      298,    68,    86,    66,   295,    64,    64,    34,    85,    71,
01063       60,   290,    66,    60,    71,   107,    25,    24,    44,    45,
01064      311,     9,   313,    49,    50,    51,    52,    53,    54,    55,
01065       56,    57,    58,    59,    86,    65,    65,    86,    71,   337,
01066       65,   243,   240,   341,   335,    67,   347,   338,     8,     8,
01067      186,   349,   343,   187,   189,   188,   366,   199,   190,    85,
01068      351,   358,   345,    14,   362,    -1,   364,   365,   366,   235,
01069      219,   369,    -1,    -1,   372,   373,   168,   169,   170,   171,
01070      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
01071      182,   183,   184,   185,   186,   187,   188,   189,   190,     3,
01072        4,     5,     6,     7,     8,    -1,    -1,    11,    12,    13,
01073       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01074       -1,    -1,    -1,    27,    28,    29,    -1,    31,    32,    -1,
01075       -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01076       44,    45,    -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,
01077       -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
01078       64,    -1,    66,    67,    -1,    69,    -1,    -1,    -1,    73,
01079       74,    75,    76,    -1,    -1,     3,     4,     5,     6,     7,
01080        8,    -1,    86,    11,    12,    13,    14,    15,    16,    17,
01081       18,    19,    20,    21,    22,    23,    -1,    -1,    -1,    27,
01082       28,    29,    -1,    31,    32,    -1,    -1,    35,    -1,    -1,
01083       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
01084       -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
01085       -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
01086       -1,    69,    -1,    -1,    -1,    73,    74,    75,    76,    -1,
01087       -1,     3,     4,     5,     6,     7,     8,    -1,    86,    11,
01088       12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
01089       22,    23,    -1,    -1,    -1,    27,    28,    29,    -1,    31,
01090       32,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,
01091       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
01092       52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,
01093       62,    63,    64,    -1,    66,    67,    -1,    69,    -1,    -1,
01094       -1,    73,    74,    75,    76,    -1,    -1,     3,     4,     5,
01095        6,     7,     8,    -1,    86,    11,    12,    13,    14,    15,
01096       16,    17,    18,    19,    20,    21,    22,    23,    -1,    -1,
01097       -1,    27,    28,    29,    -1,    31,    32,    -1,    -1,    35,
01098       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
01099       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,
01100       -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,
01101       66,    67,    -1,    69,    -1,    -1,    -1,    73,    74,    75,
01102       76,    -1,    -1,     3,     4,     5,     6,     7,     8,    -1,
01103       86,    11,    12,    13,    14,    15,    16,    17,    18,    19,
01104       20,    21,    22,    23,    -1,    -1,    -1,    27,    28,    29,
01105       -1,    31,    32,    -1,    -1,    35,    -1,    -1,    -1,    -1,
01106       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
01107       -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01108       60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
01109       -1,    -1,    -1,    73,    74,    75,    76,    -1,    -1,     3,
01110        4,     5,     6,     7,     8,    -1,    86,    11,    12,    13,
01111       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01112       -1,    -1,    -1,    27,    28,    29,    -1,    31,    32,    -1,
01113       -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01114       44,    45,    -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,
01115       -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
01116       64,    -1,    66,    -1,    -1,    69,    -1,    -1,    -1,    73,
01117       74,    75,    76,    -1,    -1,     3,     4,     5,     6,     7,
01118        8,    -1,    86,    11,    12,    13,    14,    15,    16,    17,
01119       18,    19,    20,    21,    22,    23,    -1,    -1,    -1,    27,
01120       28,    29,    -1,    31,    32,    -1,    -1,    35,    -1,    -1,
01121       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
01122       -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
01123       -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    -1,
01124       -1,    69,    -1,    -1,    -1,    73,    74,    75,    76,    -1,
01125       -1,    -1,    -1,    -1,    -1,    -1,     0,    -1,    86,     3,
01126        4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
01127       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01128       24,    -1,    -1,    27,    28,    29,    -1,    31,    32,    -1,
01129       -1,    35,    -1,    -1,    -1,     3,     4,     5,     6,     7,
01130       -1,    -1,    -1,    -1,    12,    13,    -1,    -1,    16,    -1,
01131       18,    19,    -1,    21,    -1,    -1,    60,    61,    62,    27,
01132       -1,    -1,    66,    67,    -1,    -1,    -1,    -1,    -1,    -1,
01133       -1,    75,    76,    -1,    -1,    -1,    44,    45,    -1,    -1,
01134       -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
01135       -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    -1,
01136       -1,    69,    -1,    -1,    -1,    73,    74,    75,    76,     3,
01137        4,     5,     6,     7,    -1,    -1,    -1,    -1,    12,    -1,
01138       -1,    -1,    16,    -1,    18,    19,    -1,    21,    -1,    -1,
01139       -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,
01140       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01141       44,    45,    -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,
01142       -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
01143       64,    -1,    66,    -1,    -1,    69,    70,    -1,    -1,    73,
01144       74,    75,    76,     3,     4,     5,     6,     7,    -1,    -1,
01145       -1,    -1,    12,    -1,    -1,    -1,    16,    -1,    18,    19,
01146       -1,    21,    -1,    -1,    -1,    -1,    -1,    27,    -1,    -1,
01147       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01148       -1,    -1,    -1,    -1,    44,    45,    -1,    -1,    -1,    -1,
01149       -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01150       60,    61,    62,    63,    64,    65,    66,    -1,    -1,    69,
01151       -1,    -1,    -1,    73,    74,    75,    76,     3,     4,     5,
01152        6,     7,    -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,
01153       16,    -1,    18,    19,    -1,    21,    -1,    -1,    -1,    -1,
01154       -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01155       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    44,    45,
01156       -1,    -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,
01157       -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,
01158       66,    -1,    -1,    69,    70,    -1,    -1,    73,    74,    75,
01159       76,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
01160       12,    -1,    -1,    -1,    16,    -1,    18,    19,    -1,    21,
01161       -1,    -1,    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,
01162       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01163       -1,    -1,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
01164       52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,
01165       62,    63,    64,    -1,    66,    -1,    -1,    69,    -1,    -1,
01166       -1,    73,    74,    75,    76,     3,     4,     5,     6,     7,
01167       -1,    -1,    -1,    -1,    12,    -1,    -1,    -1,    16,    -1,
01168       18,    19,    -1,    21,    -1,    -1,    -1,    -1,    -1,    27,
01169       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01170       -1,    -1,    -1,    -1,    -1,    -1,    44,    45,    -1,    -1,
01171       -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,    -1,
01172       -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    -1,
01173       -1,    69,    -1,    -1,    -1,    73,    74,    75,    76
01174 };
01175 
01176 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
01177    symbol of state STATE-NUM.  */
01178 static const unsigned char yystos[] =
01179 {
01180        0,     3,     4,     5,     6,     7,     8,    11,    12,    13,
01181       14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
01182       27,    28,    29,    31,    32,    35,    44,    45,    52,    60,
01183       61,    62,    63,    64,    66,    69,    73,    74,    75,    76,
01184       86,    88,    89,    90,    96,    97,    98,   101,   102,   103,
01185      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
01186      114,   115,   117,   118,   119,   121,   124,   128,   129,   130,
01187      131,   133,   134,   135,   136,   137,   143,   144,   145,   146,
01188      149,   150,   151,   154,   155,   156,     1,    60,    86,    64,
01189       16,    60,    66,    96,    97,    60,   122,   123,    60,   125,
01190      126,     1,    60,    86,    60,    64,     1,    18,    86,   117,
01191      101,   103,   150,   103,    64,   118,    64,   103,    64,    64,
01192      117,    66,   119,     1,    86,   103,   103,    71,   103,   103,
01193      117,     6,     7,    60,    67,    94,    95,   155,    68,    91,
01194       92,    93,   103,   103,   103,   103,    64,    69,    72,    99,
01195       69,    72,    99,    44,    45,    49,    50,    51,    52,    53,
01196       54,    55,    56,    57,    58,    59,    85,   116,    63,    77,
01197       78,    73,    74,    46,    47,    48,    25,    26,    40,    41,
01198       79,    80,    36,    37,    38,    39,    81,    82,    83,    43,
01199       42,    84,     1,    68,    86,     0,   156,     1,    86,    13,
01200      101,   117,   132,     6,     7,    60,    67,    99,    85,   127,
01201        1,    68,    86,   127,     1,    68,    86,     1,    86,    64,
01202       60,    65,   152,     1,    86,   117,    23,   117,   117,   117,
01203        1,    86,    67,    33,    34,   147,   148,   118,    65,    67,
01204       68,    71,    67,    68,    70,    70,   115,    68,    65,   100,
01205      115,   117,    60,   117,    60,   115,   103,   103,   103,   104,
01206      104,   105,   105,   105,   106,   106,   106,   106,   106,   106,
01207      107,   107,   107,   107,   108,   109,   110,   111,   112,   115,
01208      115,    60,   122,    25,    86,   115,   123,   123,    65,   152,
01209       66,   153,    65,    68,    65,    64,    65,    65,    65,    64,
01210      119,   148,    67,    95,   115,    92,    65,    68,    70,    70,
01211       71,    25,   127,    86,   117,   132,   153,    65,    67,   155,
01212      153,    60,   118,   117,   118,    66,   138,   118,    60,    71,
01213       70,   115,   115,   115,   117,    25,   132,    65,    86,   153,
01214       67,    24,    65,     9,   139,   140,   141,    65,   115,    65,
01215      117,    86,   118,   132,   118,   117,    10,    67,   142,   141,
01216      119,   118,    65,   132,    65,    71,    71,   139,   118,    65,
01217      118,   118,   120,   120,    67,   118,   118
01218 };
01219 
01220 #define yyerrok     (yyerrstatus = 0)
01221 #define yyclearin   (yychar = YYEMPTY)
01222 #define YYEMPTY     (-2)
01223 #define YYEOF       0
01224 
01225 #define YYACCEPT    goto yyacceptlab
01226 #define YYABORT     goto yyabortlab
01227 #define YYERROR     goto yyerrorlab
01228 
01229 
01230 /* Like YYERROR except do call yyerror.  This remains here temporarily
01231    to ease the transition to the new meaning of YYERROR, for GCC.
01232    Once GCC version 2 has supplanted version 1, this can go.  */
01233 
01234 #define YYFAIL      goto yyerrlab
01235 
01236 #define YYRECOVERING()  (!!yyerrstatus)
01237 
01238 #define YYBACKUP(Token, Value)                  \
01239 do                              \
01240   if (yychar == YYEMPTY && yylen == 1)              \
01241     {                               \
01242       yychar = (Token);                     \
01243       yylval = (Value);                     \
01244       yytoken = YYTRANSLATE (yychar);               \
01245       YYPOPSTACK;                       \
01246       goto yybackup;                        \
01247     }                               \
01248   else                              \
01249     {                               \
01250       yyerror (YY_("syntax error: cannot back up")); \
01251       YYERROR;                          \
01252     }                               \
01253 while (0)
01254 
01255 
01256 #define YYTERROR    1
01257 #define YYERRCODE   256
01258 
01259 
01260 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
01261    If N is 0, then set CURRENT to the empty location which ends
01262    the previous symbol: RHS[0] (always defined).  */
01263 
01264 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
01265 #ifndef YYLLOC_DEFAULT
01266 # define YYLLOC_DEFAULT(Current, Rhs, N)                \
01267     do                                  \
01268       if (N)                                \
01269     {                               \
01270       (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;    \
01271       (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \
01272       (Current).last_line    = YYRHSLOC (Rhs, N).last_line;     \
01273       (Current).last_column  = YYRHSLOC (Rhs, N).last_column;   \
01274     }                               \
01275       else                              \
01276     {                               \
01277       (Current).first_line   = (Current).last_line   =      \
01278         YYRHSLOC (Rhs, 0).last_line;                \
01279