LCOV - code coverage report
Current view: top level - libreoffice/workdir/unxlngi6.pro/YaccTarget/connectivity/source/parse - sqlbison.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 218 2397 9.1 %
Date: 2012-12-17 Functions: 17 35 48.6 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* A Bison parser, made by GNU Bison 2.5.  */
       2             : 
       3             : /* Bison implementation for Yacc-like parsers in C
       4             :    
       5             :       Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
       6             :    
       7             :    This program is free software: you can redistribute it and/or modify
       8             :    it under the terms of the GNU General Public License as published by
       9             :    the Free Software Foundation, either version 3 of the License, or
      10             :    (at your option) any later version.
      11             :    
      12             :    This program is distributed in the hope that it will be useful,
      13             :    but WITHOUT ANY WARRANTY; without even the implied warranty of
      14             :    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      15             :    GNU General Public License for more details.
      16             :    
      17             :    You should have received a copy of the GNU General Public License
      18             :    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
      19             : 
      20             : /* As a special exception, you may create a larger work that contains
      21             :    part or all of the Bison parser skeleton and distribute that work
      22             :    under terms of your choice, so long as that work isn't itself a
      23             :    parser generator using the skeleton or a modified version thereof
      24             :    as a parser skeleton.  Alternatively, if you modify or redistribute
      25             :    the parser skeleton itself, you may (at your option) remove this
      26             :    special exception, which will cause the skeleton and the resulting
      27             :    Bison output files to be licensed under the GNU General Public
      28             :    License without this special exception.
      29             :    
      30             :    This special exception was added by the Free Software Foundation in
      31             :    version 2.2 of Bison.  */
      32             : 
      33             : /* C LALR(1) parser skeleton written by Richard Stallman, by
      34             :    simplifying the original so-called "semantic" parser.  */
      35             : 
      36             : /* All symbols defined below should begin with yy or YY, to avoid
      37             :    infringing on user name space.  This should be done even for local
      38             :    variables, as they might otherwise be expanded by user macros.
      39             :    There are some unavoidable exceptions within include files to
      40             :    define necessary library symbols; they are noted "INFRINGES ON
      41             :    USER NAME SPACE" below.  */
      42             : 
      43             : /* Identify Bison output.  */
      44             : #define YYBISON 1
      45             : 
      46             : /* Bison version.  */
      47             : #define YYBISON_VERSION "2.5"
      48             : 
      49             : /* Skeleton name.  */
      50             : #define YYSKELETON_NAME "yacc.c"
      51             : 
      52             : /* Pure parsers.  */
      53             : #define YYPURE 0
      54             : 
      55             : /* Push parsers.  */
      56             : #define YYPUSH 0
      57             : 
      58             : /* Pull parsers.  */
      59             : #define YYPULL 1
      60             : 
      61             : /* Using locations.  */
      62             : #define YYLSP_NEEDED 0
      63             : 
      64             : /* Substitute the variable and function names.  */
      65             : #define yyparse         SQLyyparse
      66             : #define yylex           SQLyylex
      67             : #define yyerror         SQLyyerror
      68             : #define yylval          SQLyylval
      69             : #define yychar          SQLyychar
      70             : #define yydebug         SQLyydebug
      71             : #define yynerrs         SQLyynerrs
      72             : 
      73             : 
      74             : /* Copy the first part of user declarations.  */
      75             : 
      76             : 
      77             : /*
      78             :  * This file is part of the LibreOffice project.
      79             :  *
      80             :  * This Source Code Form is subject to the terms of the Mozilla Public
      81             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
      82             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
      83             :  *
      84             :  * This file incorporates work covered by the following license notice:
      85             :  *
      86             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      87             :  *   contributor license agreements. See the NOTICE file distributed
      88             :  *   with this work for additional information regarding copyright
      89             :  *   ownership. The ASF licenses this file to you under the Apache
      90             :  *   License, Version 2.0 (the "License"); you may not use this file
      91             :  *   except in compliance with the License. You may obtain a copy of
      92             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      93             :  */
      94             : 
      95             : #include <vector>
      96             : #include <string.h>
      97             : #include "parse/sqlbison_exports.hxx"
      98             : 
      99             : #ifndef _CONNECTIVITY_SQLNODE_HXX
     100             : #include <connectivity/sqlnode.hxx>
     101             : #endif
     102             : #ifndef _CONNECTIVITY_SQLPARSE_HXX
     103             : #include <connectivity/sqlparse.hxx>
     104             : #endif
     105             : #ifndef _CONNECTIVITY_SQLINTERNALNODE_HXX
     106             : #include <internalnode.hxx>
     107             : #endif
     108             : #ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
     109             : #include <com/sun/star/lang/Locale.hpp>
     110             : #endif
     111             : #ifndef _COM_SUN_STAR_SDBC_DATATYPE_HPP_
     112             : #include <com/sun/star/sdbc/DataType.hpp>
     113             : #endif
     114             : #ifndef _COM_SUN_STAR_UTIL_DATE_HPP_
     115             : #include <com/sun/star/util/Date.hpp>
     116             : #endif
     117             : #ifndef _COM_SUN_STAR_UTIL_DATETIME_HPP_
     118             : #include <com/sun/star/util/DateTime.hpp>
     119             : #endif
     120             : #ifndef _COM_SUN_STAR_UTIL_TIME_HPP_
     121             : #include <com/sun/star/util/Time.hpp>
     122             : #endif
     123             : #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_
     124             : #include <com/sun/star/util/XNumberFormatter.hpp>
     125             : #endif
     126             : #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATSSUPPLIER_HPP_
     127             : #include <com/sun/star/util/XNumberFormatsSupplier.hpp>
     128             : #endif
     129             : #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATS_HPP_
     130             : #include <com/sun/star/util/XNumberFormats.hpp>
     131             : #endif
     132             : #ifndef _COM_SUN_STAR_UTIL_NUMBERFORMAT_HPP_
     133             : #include <com/sun/star/util/NumberFormat.hpp>
     134             : #endif
     135             : #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTYPES_HPP_
     136             : #include <com/sun/star/util/XNumberFormatTypes.hpp>
     137             : #endif
     138             : #ifndef _COM_SUN_STAR_BEANS_XPROPERTYSET_HPP_
     139             : #include <com/sun/star/beans/XPropertySet.hpp>
     140             : #endif
     141             : #ifndef _COM_SUN_STAR_I18N_KPARSETYPE_HPP_
     142             : #include <com/sun/star/i18n/KParseType.hpp>
     143             : #endif
     144             : #ifndef _COM_SUN_STAR_I18N_KPARSETOKENS_HPP_
     145             : #include <com/sun/star/i18n/KParseTokens.hpp>
     146             : #endif
     147             : #ifndef _CONNECTIVITY_SQLSCAN_HXX
     148             : #include "sqlscan.hxx"
     149             : #endif
     150             : #ifndef _OSL_DIAGNOSE_H_
     151             : #include <osl/diagnose.h>
     152             : #endif
     153             : #ifndef _DBHELPER_DBCONVERSION_HXX_
     154             : #include "connectivity/dbconversion.hxx"
     155             : #endif
     156             : #include <rtl/ustrbuf.hxx>
     157             : #include <sal/macros.h>
     158             : 
     159             : #if defined __SUNPRO_CC
     160             : #pragma disable_warn
     161             : #elif defined _MSC_VER
     162             : #pragma warning(push, 1)
     163             : #pragma warning(disable:4273 4701 4706)
     164             : #endif
     165             : 
     166          25 : static ::rtl::OUString aEmptyString;
     167             : 
     168           0 : static connectivity::OSQLInternalNode* newNode(const sal_Char* pNewValue,
     169             :                                                              const connectivity::SQLNodeType eNodeType,
     170             :                                                                  const sal_uInt32 nNodeID = 0)
     171             : {
     172           0 :         return new connectivity::OSQLInternalNode(pNewValue, eNodeType, nNodeID);
     173             : }
     174             : 
     175           0 : static connectivity::OSQLInternalNode* newNode(const ::rtl::OString& _NewValue,
     176             :                                                             const connectivity::SQLNodeType eNodeType,
     177             :                                                                 const sal_uInt32 nNodeID = 0)
     178             : {
     179           0 :         return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
     180             : }
     181             : 
     182          98 : static connectivity::OSQLInternalNode* newNode(const ::rtl::OUString& _NewValue,
     183             :                                                             const connectivity::SQLNodeType eNodeType,
     184             :                                                                 const sal_uInt32 nNodeID = 0)
     185             : {
     186          98 :         return new connectivity::OSQLInternalNode(_NewValue, eNodeType, nNodeID);
     187             : }
     188             : 
     189             : 
     190             : // yyi ist die interne Nr. der Regel, die gerade reduziert wird.
     191             : // Ueber die Mapping-Tabelle yyrmap wird daraus eine externe Regel-Nr.
     192             : #define SQL_NEW_RULE                    newNode(aEmptyString, SQL_NODE_RULE, yyr1[yyn])
     193             : #define SQL_NEW_LISTRULE                newNode(aEmptyString, SQL_NODE_LISTRULE, yyr1[yyn])
     194             : #define SQL_NEW_COMMALISTRULE   newNode(aEmptyString, SQL_NODE_COMMALISTRULE, yyr1[yyn])
     195             : 
     196             : 
     197             : connectivity::OSQLParser* xxx_pGLOBAL_SQLPARSER;
     198             : 
     199             : #if !(defined MACOSX && defined PPC)
     200             : #define YYERROR_VERBOSE
     201             : #endif
     202             : 
     203             : #define SQLyyerror(s)                                           \
     204             : {                                                                                       \
     205             :         xxx_pGLOBAL_SQLPARSER->error(s);             \
     206             : }
     207             : 
     208             : using namespace connectivity;
     209             : #define SQLyylex xxx_pGLOBAL_SQLPARSER->SQLlex
     210             : 
     211             : 
     212             : 
     213             : /* Enabling traces.  */
     214             : #ifndef YYDEBUG
     215             : # define YYDEBUG 0
     216             : #endif
     217             : 
     218             : /* Enabling verbose error messages.  */
     219             : #ifdef YYERROR_VERBOSE
     220             : # undef YYERROR_VERBOSE
     221             : # define YYERROR_VERBOSE 1
     222             : #else
     223             : # define YYERROR_VERBOSE 0
     224             : #endif
     225             : 
     226             : /* Enabling the token table.  */
     227             : #ifndef YYTOKEN_TABLE
     228             : # define YYTOKEN_TABLE 1
     229             : #endif
     230             : 
     231             : 
     232             : /* Tokens.  */
     233             : #ifndef YYTOKENTYPE
     234             : # define YYTOKENTYPE
     235             :    /* Put the tokens into the symbol table, so that GDB and other debuggers
     236             :       know about them.  */
     237             :    enum yytokentype {
     238             :      SQL_TOKEN_STRING = 258,
     239             :      SQL_TOKEN_ACCESS_DATE = 259,
     240             :      SQL_TOKEN_INT = 260,
     241             :      SQL_TOKEN_REAL_NUM = 261,
     242             :      SQL_TOKEN_INTNUM = 262,
     243             :      SQL_TOKEN_APPROXNUM = 263,
     244             :      SQL_TOKEN_NOT = 264,
     245             :      SQL_TOKEN_NAME = 265,
     246             :      SQL_TOKEN_UMINUS = 266,
     247             :      SQL_TOKEN_ALL = 267,
     248             :      SQL_TOKEN_ALTER = 268,
     249             :      SQL_TOKEN_AMMSC = 269,
     250             :      SQL_TOKEN_ANY = 270,
     251             :      SQL_TOKEN_AS = 271,
     252             :      SQL_TOKEN_ASC = 272,
     253             :      SQL_TOKEN_AT = 273,
     254             :      SQL_TOKEN_AUTHORIZATION = 274,
     255             :      SQL_TOKEN_AVG = 275,
     256             :      SQL_TOKEN_BETWEEN = 276,
     257             :      SQL_TOKEN_BIT = 277,
     258             :      SQL_TOKEN_BOTH = 278,
     259             :      SQL_TOKEN_BY = 279,
     260             :      SQL_TOKEN_CAST = 280,
     261             :      SQL_TOKEN_CHARACTER = 281,
     262             :      SQL_TOKEN_CHECK = 282,
     263             :      SQL_TOKEN_COLLATE = 283,
     264             :      SQL_TOKEN_COMMIT = 284,
     265             :      SQL_TOKEN_CONTINUE = 285,
     266             :      SQL_TOKEN_CONVERT = 286,
     267             :      SQL_TOKEN_COUNT = 287,
     268             :      SQL_TOKEN_CREATE = 288,
     269             :      SQL_TOKEN_CROSS = 289,
     270             :      SQL_TOKEN_CURRENT = 290,
     271             :      SQL_TOKEN_CURSOR = 291,
     272             :      SQL_TOKEN_DATE = 292,
     273             :      SQL_TOKEN_DATEVALUE = 293,
     274             :      SQL_TOKEN_DAY = 294,
     275             :      SQL_TOKEN_DEC = 295,
     276             :      SQL_TOKEN_DECIMAL = 296,
     277             :      SQL_TOKEN_DECLARE = 297,
     278             :      SQL_TOKEN_DEFAULT = 298,
     279             :      SQL_TOKEN_DELETE = 299,
     280             :      SQL_TOKEN_DESC = 300,
     281             :      SQL_TOKEN_DISTINCT = 301,
     282             :      SQL_TOKEN_DOUBLE = 302,
     283             :      SQL_TOKEN_DROP = 303,
     284             :      SQL_TOKEN_ESCAPE = 304,
     285             :      SQL_TOKEN_EXCEPT = 305,
     286             :      SQL_TOKEN_EXISTS = 306,
     287             :      SQL_TOKEN_FALSE = 307,
     288             :      SQL_TOKEN_FETCH = 308,
     289             :      SQL_TOKEN_FLOAT = 309,
     290             :      SQL_TOKEN_FOR = 310,
     291             :      SQL_TOKEN_FOREIGN = 311,
     292             :      SQL_TOKEN_FOUND = 312,
     293             :      SQL_TOKEN_FROM = 313,
     294             :      SQL_TOKEN_FULL = 314,
     295             :      SQL_TOKEN_GRANT = 315,
     296             :      SQL_TOKEN_GROUP = 316,
     297             :      SQL_TOKEN_HAVING = 317,
     298             :      SQL_TOKEN_IN = 318,
     299             :      SQL_TOKEN_INDICATOR = 319,
     300             :      SQL_TOKEN_INNER = 320,
     301             :      SQL_TOKEN_INTEGER = 321,
     302             :      SQL_TOKEN_INTO = 322,
     303             :      SQL_TOKEN_IS = 323,
     304             :      SQL_TOKEN_INTERSECT = 324,
     305             :      SQL_TOKEN_JOIN = 325,
     306             :      SQL_TOKEN_KEY = 326,
     307             :      SQL_TOKEN_LEADING = 327,
     308             :      SQL_TOKEN_LIKE = 328,
     309             :      SQL_TOKEN_LOCAL = 329,
     310             :      SQL_TOKEN_LOWER = 330,
     311             :      SQL_TOKEN_MAX = 331,
     312             :      SQL_TOKEN_MIN = 332,
     313             :      SQL_TOKEN_NATURAL = 333,
     314             :      SQL_TOKEN_NCHAR = 334,
     315             :      SQL_TOKEN_NULL = 335,
     316             :      SQL_TOKEN_NUMERIC = 336,
     317             :      SQL_TOKEN_OCTET_LENGTH = 337,
     318             :      SQL_TOKEN_OF = 338,
     319             :      SQL_TOKEN_ON = 339,
     320             :      SQL_TOKEN_OPTION = 340,
     321             :      SQL_TOKEN_ORDER = 341,
     322             :      SQL_TOKEN_OUTER = 342,
     323             :      SQL_TOKEN_PRECISION = 343,
     324             :      SQL_TOKEN_PRIMARY = 344,
     325             :      SQL_TOKEN_PRIVILEGES = 345,
     326             :      SQL_TOKEN_PROCEDURE = 346,
     327             :      SQL_TOKEN_PUBLIC = 347,
     328             :      SQL_TOKEN_REAL = 348,
     329             :      SQL_TOKEN_REFERENCES = 349,
     330             :      SQL_TOKEN_ROLLBACK = 350,
     331             :      SQL_TOKEN_SCHEMA = 351,
     332             :      SQL_TOKEN_SELECT = 352,
     333             :      SQL_TOKEN_SET = 353,
     334             :      SQL_TOKEN_SIZE = 354,
     335             :      SQL_TOKEN_SMALLINT = 355,
     336             :      SQL_TOKEN_SOME = 356,
     337             :      SQL_TOKEN_SQLCODE = 357,
     338             :      SQL_TOKEN_SQLERROR = 358,
     339             :      SQL_TOKEN_SUM = 359,
     340             :      SQL_TOKEN_TABLE = 360,
     341             :      SQL_TOKEN_TIME = 361,
     342             :      SQL_TOKEN_TIMESTAMP = 362,
     343             :      SQL_TOKEN_TIMEZONE_HOUR = 363,
     344             :      SQL_TOKEN_TIMEZONE_MINUTE = 364,
     345             :      SQL_TOKEN_TO = 365,
     346             :      SQL_TOKEN_TRAILING = 366,
     347             :      SQL_TOKEN_TRANSLATE = 367,
     348             :      SQL_TOKEN_TRIM = 368,
     349             :      SQL_TOKEN_TRUE = 369,
     350             :      SQL_TOKEN_UNION = 370,
     351             :      SQL_TOKEN_UNIQUE = 371,
     352             :      SQL_TOKEN_UNKNOWN = 372,
     353             :      SQL_TOKEN_UPDATE = 373,
     354             :      SQL_TOKEN_UPPER = 374,
     355             :      SQL_TOKEN_USAGE = 375,
     356             :      SQL_TOKEN_USER = 376,
     357             :      SQL_TOKEN_USING = 377,
     358             :      SQL_TOKEN_VALUES = 378,
     359             :      SQL_TOKEN_VIEW = 379,
     360             :      SQL_TOKEN_WHERE = 380,
     361             :      SQL_TOKEN_WITH = 381,
     362             :      SQL_TOKEN_WORK = 382,
     363             :      SQL_TOKEN_ZONE = 383,
     364             :      SQL_TOKEN_CALL = 384,
     365             :      SQL_TOKEN_D = 385,
     366             :      SQL_TOKEN_FN = 386,
     367             :      SQL_TOKEN_T = 387,
     368             :      SQL_TOKEN_TS = 388,
     369             :      SQL_TOKEN_OJ = 389,
     370             :      SQL_TOKEN_ASCII = 390,
     371             :      SQL_TOKEN_BIT_LENGTH = 391,
     372             :      SQL_TOKEN_CHAR = 392,
     373             :      SQL_TOKEN_CHAR_LENGTH = 393,
     374             :      SQL_TOKEN_SQL_TOKEN_INTNUM = 394,
     375             :      SQL_TOKEN_CONCAT = 395,
     376             :      SQL_TOKEN_DIFFERENCE = 396,
     377             :      SQL_TOKEN_INSERT = 397,
     378             :      SQL_TOKEN_LCASE = 398,
     379             :      SQL_TOKEN_LEFT = 399,
     380             :      SQL_TOKEN_LENGTH = 400,
     381             :      SQL_TOKEN_LOCATE = 401,
     382             :      SQL_TOKEN_LOCATE_2 = 402,
     383             :      SQL_TOKEN_LTRIM = 403,
     384             :      SQL_TOKEN_POSITION = 404,
     385             :      SQL_TOKEN_REPEAT = 405,
     386             :      SQL_TOKEN_REPLACE = 406,
     387             :      SQL_TOKEN_RIGHT = 407,
     388             :      SQL_TOKEN_RTRIM = 408,
     389             :      SQL_TOKEN_SOUNDEX = 409,
     390             :      SQL_TOKEN_SPACE = 410,
     391             :      SQL_TOKEN_SUBSTRING = 411,
     392             :      SQL_TOKEN_UCASE = 412,
     393             :      SQL_TOKEN_CURRENT_DATE = 413,
     394             :      SQL_TOKEN_CURRENT_TIME = 414,
     395             :      SQL_TOKEN_CURRENT_TIMESTAMP = 415,
     396             :      SQL_TOKEN_CURDATE = 416,
     397             :      SQL_TOKEN_CURTIME = 417,
     398             :      SQL_TOKEN_DAYNAME = 418,
     399             :      SQL_TOKEN_DAYOFMONTH = 419,
     400             :      SQL_TOKEN_DAYOFWEEK = 420,
     401             :      SQL_TOKEN_DAYOFYEAR = 421,
     402             :      SQL_TOKEN_EXTRACT = 422,
     403             :      SQL_TOKEN_HOUR = 423,
     404             :      SQL_TOKEN_MINUTE = 424,
     405             :      SQL_TOKEN_MONTH = 425,
     406             :      SQL_TOKEN_MONTHNAME = 426,
     407             :      SQL_TOKEN_NOW = 427,
     408             :      SQL_TOKEN_QUARTER = 428,
     409             :      SQL_TOKEN_DATEDIFF = 429,
     410             :      SQL_TOKEN_SECOND = 430,
     411             :      SQL_TOKEN_TIMESTAMPADD = 431,
     412             :      SQL_TOKEN_TIMESTAMPDIFF = 432,
     413             :      SQL_TOKEN_TIMEVALUE = 433,
     414             :      SQL_TOKEN_WEEK = 434,
     415             :      SQL_TOKEN_YEAR = 435,
     416             :      SQL_TOKEN_ABS = 436,
     417             :      SQL_TOKEN_ACOS = 437,
     418             :      SQL_TOKEN_ASIN = 438,
     419             :      SQL_TOKEN_ATAN = 439,
     420             :      SQL_TOKEN_ATAN2 = 440,
     421             :      SQL_TOKEN_CEILING = 441,
     422             :      SQL_TOKEN_COS = 442,
     423             :      SQL_TOKEN_COT = 443,
     424             :      SQL_TOKEN_DEGREES = 444,
     425             :      SQL_TOKEN_EXP = 445,
     426             :      SQL_TOKEN_FLOOR = 446,
     427             :      SQL_TOKEN_LOGF = 447,
     428             :      SQL_TOKEN_LOG = 448,
     429             :      SQL_TOKEN_LN = 449,
     430             :      SQL_TOKEN_LOG10 = 450,
     431             :      SQL_TOKEN_MOD = 451,
     432             :      SQL_TOKEN_PI = 452,
     433             :      SQL_TOKEN_POWER = 453,
     434             :      SQL_TOKEN_RADIANS = 454,
     435             :      SQL_TOKEN_RAND = 455,
     436             :      SQL_TOKEN_ROUNDMAGIC = 456,
     437             :      SQL_TOKEN_ROUND = 457,
     438             :      SQL_TOKEN_SIGN = 458,
     439             :      SQL_TOKEN_SIN = 459,
     440             :      SQL_TOKEN_SQRT = 460,
     441             :      SQL_TOKEN_TAN = 461,
     442             :      SQL_TOKEN_TRUNCATE = 462,
     443             :      SQL_TOKEN_EVERY = 463,
     444             :      SQL_TOKEN_INTERSECTION = 464,
     445             :      SQL_TOKEN_FUSION = 465,
     446             :      SQL_TOKEN_COLLECT = 466,
     447             :      SQL_TOKEN_VAR_POP = 467,
     448             :      SQL_TOKEN_VAR_SAMP = 468,
     449             :      SQL_TOKEN_STDDEV_SAMP = 469,
     450             :      SQL_TOKEN_STDDEV_POP = 470,
     451             :      SQL_TOKEN_RANK = 471,
     452             :      SQL_TOKEN_DENSE_RANK = 472,
     453             :      SQL_TOKEN_PERCENT_RANK = 473,
     454             :      SQL_TOKEN_CUME_DIST = 474,
     455             :      SQL_TOKEN_PERCENTILE_CONT = 475,
     456             :      SQL_TOKEN_PERCENTILE_DISC = 476,
     457             :      SQL_TOKEN_WITHIN = 477,
     458             :      SQL_TOKEN_ARRAY_AGG = 478,
     459             :      SQL_TOKEN_CASE = 479,
     460             :      SQL_TOKEN_THEN = 480,
     461             :      SQL_TOKEN_END = 481,
     462             :      SQL_TOKEN_NULLIF = 482,
     463             :      SQL_TOKEN_COALESCE = 483,
     464             :      SQL_TOKEN_WHEN = 484,
     465             :      SQL_TOKEN_ELSE = 485,
     466             :      SQL_TOKEN_BEFORE = 486,
     467             :      SQL_TOKEN_AFTER = 487,
     468             :      SQL_TOKEN_INSTEAD = 488,
     469             :      SQL_TOKEN_EACH = 489,
     470             :      SQL_TOKEN_REFERENCING = 490,
     471             :      SQL_TOKEN_BEGIN = 491,
     472             :      SQL_TOKEN_ATOMIC = 492,
     473             :      SQL_TOKEN_TRIGGER = 493,
     474             :      SQL_TOKEN_ROW = 494,
     475             :      SQL_TOKEN_STATEMENT = 495,
     476             :      SQL_TOKEN_NEW = 496,
     477             :      SQL_TOKEN_OLD = 497,
     478             :      SQL_TOKEN_VALUE = 498,
     479             :      SQL_TOKEN_CURRENT_CATALOG = 499,
     480             :      SQL_TOKEN_CURRENT_DEFAULT_TRANSFORM_GROUP = 500,
     481             :      SQL_TOKEN_CURRENT_PATH = 501,
     482             :      SQL_TOKEN_CURRENT_ROLE = 502,
     483             :      SQL_TOKEN_CURRENT_SCHEMA = 503,
     484             :      SQL_TOKEN_CURRENT_USER = 504,
     485             :      SQL_TOKEN_SESSION_USER = 505,
     486             :      SQL_TOKEN_SYSTEM_USER = 506,
     487             :      SQL_TOKEN_VARCHAR = 507,
     488             :      SQL_TOKEN_VARBINARY = 508,
     489             :      SQL_TOKEN_VARYING = 509,
     490             :      SQL_TOKEN_OBJECT = 510,
     491             :      SQL_TOKEN_NCLOB = 511,
     492             :      SQL_TOKEN_NATIONAL = 512,
     493             :      SQL_TOKEN_LARGE = 513,
     494             :      SQL_TOKEN_CLOB = 514,
     495             :      SQL_TOKEN_BLOB = 515,
     496             :      SQL_TOKEN_BIGINT = 516,
     497             :      SQL_TOKEN_BINARY = 517,
     498             :      SQL_TOKEN_WITHOUT = 518,
     499             :      SQL_TOKEN_BOOLEAN = 519,
     500             :      SQL_TOKEN_INTERVAL = 520,
     501             :      SQL_TOKEN_OVER = 521,
     502             :      SQL_TOKEN_ROW_NUMBER = 522,
     503             :      SQL_TOKEN_NTILE = 523,
     504             :      SQL_TOKEN_LEAD = 524,
     505             :      SQL_TOKEN_LAG = 525,
     506             :      SQL_TOKEN_RESPECT = 526,
     507             :      SQL_TOKEN_IGNORE = 527,
     508             :      SQL_TOKEN_NULLS = 528,
     509             :      SQL_TOKEN_FIRST_VALUE = 529,
     510             :      SQL_TOKEN_LAST_VALUE = 530,
     511             :      SQL_TOKEN_NTH_VALUE = 531,
     512             :      SQL_TOKEN_FIRST = 532,
     513             :      SQL_TOKEN_LAST = 533,
     514             :      SQL_TOKEN_EXCLUDE = 534,
     515             :      SQL_TOKEN_OTHERS = 535,
     516             :      SQL_TOKEN_TIES = 536,
     517             :      SQL_TOKEN_FOLLOWING = 537,
     518             :      SQL_TOKEN_UNBOUNDED = 538,
     519             :      SQL_TOKEN_PRECEDING = 539,
     520             :      SQL_TOKEN_RANGE = 540,
     521             :      SQL_TOKEN_ROWS = 541,
     522             :      SQL_TOKEN_PARTITION = 542,
     523             :      SQL_TOKEN_WINDOW = 543,
     524             :      SQL_TOKEN_NO = 544,
     525             :      SQL_TOKEN_LIMIT = 545,
     526             :      SQL_TOKEN_OFFSET = 546,
     527             :      SQL_TOKEN_NEXT = 547,
     528             :      SQL_TOKEN_ONLY = 548,
     529             :      SQL_TOKEN_OR = 549,
     530             :      SQL_TOKEN_AND = 550,
     531             :      SQL_EQUAL = 551,
     532             :      SQL_GREAT = 552,
     533             :      SQL_LESS = 553,
     534             :      SQL_NOTEQUAL = 554,
     535             :      SQL_GREATEQ = 555,
     536             :      SQL_LESSEQ = 556,
     537             :      SQL_CONCAT = 557,
     538             :      SQL_TOKEN_INVALIDSYMBOL = 558
     539             :    };
     540             : #endif
     541             : 
     542             : 
     543             : 
     544             : #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
     545             : typedef union YYSTYPE
     546             : {
     547             : 
     548             : 
     549             :         connectivity::OSQLParseNode * pParseNode;
     550             : 
     551             : 
     552             : 
     553             : } YYSTYPE;
     554             : # define YYSTYPE_IS_TRIVIAL 1
     555             : # define yystype YYSTYPE /* obsolescent; will be withdrawn */
     556             : # define YYSTYPE_IS_DECLARED 1
     557             : #endif
     558             : 
     559             : 
     560             : /* Copy the second part of user declarations.  */
     561             : 
     562             : 
     563             : 
     564             : #ifdef short
     565             : # undef short
     566             : #endif
     567             : 
     568             : #ifdef YYTYPE_UINT8
     569             : typedef YYTYPE_UINT8 yytype_uint8;
     570             : #else
     571             : typedef unsigned char yytype_uint8;
     572             : #endif
     573             : 
     574             : #ifdef YYTYPE_INT8
     575             : typedef YYTYPE_INT8 yytype_int8;
     576             : #elif (defined __STDC__ || defined __C99__FUNC__ \
     577             :      || defined __cplusplus || defined _MSC_VER)
     578             : typedef signed char yytype_int8;
     579             : #else
     580             : typedef short int yytype_int8;
     581             : #endif
     582             : 
     583             : #ifdef YYTYPE_UINT16
     584             : typedef YYTYPE_UINT16 yytype_uint16;
     585             : #else
     586             : typedef unsigned short int yytype_uint16;
     587             : #endif
     588             : 
     589             : #ifdef YYTYPE_INT16
     590             : typedef YYTYPE_INT16 yytype_int16;
     591             : #else
     592             : typedef short int yytype_int16;
     593             : #endif
     594             : 
     595             : #ifndef YYSIZE_T
     596             : # ifdef __SIZE_TYPE__
     597             : #  define YYSIZE_T __SIZE_TYPE__
     598             : # elif defined size_t
     599             : #  define YYSIZE_T size_t
     600             : # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     601             :      || defined __cplusplus || defined _MSC_VER)
     602             : #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
     603             : #  define YYSIZE_T size_t
     604             : # else
     605             : #  define YYSIZE_T unsigned int
     606             : # endif
     607             : #endif
     608             : 
     609             : #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
     610             : 
     611             : #ifndef YY_
     612             : # if defined YYENABLE_NLS && YYENABLE_NLS
     613             : #  if ENABLE_NLS
     614             : #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
     615             : #   define YY_(msgid) dgettext ("bison-runtime", msgid)
     616             : #  endif
     617             : # endif
     618             : # ifndef YY_
     619             : #  define YY_(msgid) msgid
     620             : # endif
     621             : #endif
     622             : 
     623             : /* Suppress unused-variable warnings by "using" E.  */
     624             : #if ! defined lint || defined __GNUC__
     625             : # define YYUSE(e) ((void) (e))
     626             : #else
     627             : # define YYUSE(e) /* empty */
     628             : #endif
     629             : 
     630             : /* Identity function, used to suppress warnings about constant conditions.  */
     631             : #ifndef lint
     632             : # define YYID(n) (n)
     633             : #else
     634             : #if (defined __STDC__ || defined __C99__FUNC__ \
     635             :      || defined __cplusplus || defined _MSC_VER)
     636             : static int
     637             : YYID (int yyi)
     638             : #else
     639             : static int
     640             : YYID (yyi)
     641             :     int yyi;
     642             : #endif
     643             : {
     644             :   return yyi;
     645             : }
     646             : #endif
     647             : 
     648             : #if ! defined yyoverflow || YYERROR_VERBOSE
     649             : 
     650             : /* The parser invokes alloca or malloc; define the necessary symbols.  */
     651             : 
     652             : # ifdef YYSTACK_USE_ALLOCA
     653             : #  if YYSTACK_USE_ALLOCA
     654             : #   ifdef __GNUC__
     655             : #    define YYSTACK_ALLOC __builtin_alloca
     656             : #   elif defined __BUILTIN_VA_ARG_INCR
     657             : #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
     658             : #   elif defined _AIX
     659             : #    define YYSTACK_ALLOC __alloca
     660             : #   elif defined _MSC_VER
     661             : #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
     662             : #    define alloca _alloca
     663             : #   else
     664             : #    define YYSTACK_ALLOC alloca
     665             : #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     666             :      || defined __cplusplus || defined _MSC_VER)
     667             : #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     668             : #     ifndef EXIT_SUCCESS
     669             : #      define EXIT_SUCCESS 0
     670             : #     endif
     671             : #    endif
     672             : #   endif
     673             : #  endif
     674             : # endif
     675             : 
     676             : # ifdef YYSTACK_ALLOC
     677             :    /* Pacify GCC's `empty if-body' warning.  */
     678             : #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
     679             : #  ifndef YYSTACK_ALLOC_MAXIMUM
     680             :     /* The OS might guarantee only one guard page at the bottom of the stack,
     681             :        and a page size can be as small as 4096 bytes.  So we cannot safely
     682             :        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
     683             :        to allow for a few compiler-allocated temporary stack slots.  */
     684             : #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
     685             : #  endif
     686             : # else
     687             : #  define YYSTACK_ALLOC YYMALLOC
     688             : #  define YYSTACK_FREE YYFREE
     689             : #  ifndef YYSTACK_ALLOC_MAXIMUM
     690             : #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
     691             : #  endif
     692             : #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
     693             :        && ! ((defined YYMALLOC || defined malloc) \
     694             :              && (defined YYFREE || defined free)))
     695             : #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
     696             : #   ifndef EXIT_SUCCESS
     697             : #    define EXIT_SUCCESS 0
     698             : #   endif
     699             : #  endif
     700             : #  ifndef YYMALLOC
     701             : #   define YYMALLOC malloc
     702             : #   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     703             :      || defined __cplusplus || defined _MSC_VER)
     704             : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
     705             : #   endif
     706             : #  endif
     707             : #  ifndef YYFREE
     708             : #   define YYFREE free
     709             : #   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
     710             :      || defined __cplusplus || defined _MSC_VER)
     711             : void free (void *); /* INFRINGES ON USER NAME SPACE */
     712             : #   endif
     713             : #  endif
     714             : # endif
     715             : #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
     716             : 
     717             : 
     718             : #if (! defined yyoverflow \
     719             :      && (! defined __cplusplus \
     720             :          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
     721             : 
     722             : /* A type that is properly aligned for any stack member.  */
     723             : union yyalloc
     724             : {
     725             :   yytype_int16 yyss_alloc;
     726             :   YYSTYPE yyvs_alloc;
     727             : };
     728             : 
     729             : /* The size of the maximum gap between one aligned stack and the next.  */
     730             : # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
     731             : 
     732             : /* The size of an array large to enough to hold all stacks, each with
     733             :    N elements.  */
     734             : # define YYSTACK_BYTES(N) \
     735             :      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
     736             :       + YYSTACK_GAP_MAXIMUM)
     737             : 
     738             : # define YYCOPY_NEEDED 1
     739             : 
     740             : /* Relocate STACK from its old location to the new one.  The
     741             :    local variables YYSIZE and YYSTACKSIZE give the old and new number of
     742             :    elements in the stack, and YYPTR gives the new location of the
     743             :    stack.  Advance YYPTR to a properly aligned location for the next
     744             :    stack.  */
     745             : # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
     746             :     do                                                                  \
     747             :       {                                                                 \
     748             :         YYSIZE_T yynewbytes;                                            \
     749             :         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                     \
     750             :         Stack = &yyptr->Stack_alloc;                                     \
     751             :         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
     752             :         yyptr += yynewbytes / sizeof (*yyptr);                          \
     753             :       }                                                                 \
     754             :     while (YYID (0))
     755             : 
     756             : #endif
     757             : 
     758             : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
     759             : /* Copy COUNT objects from FROM to TO.  The source and destination do
     760             :    not overlap.  */
     761             : # ifndef YYCOPY
     762             : #  if defined __GNUC__ && 1 < __GNUC__
     763             : #   define YYCOPY(To, From, Count) \
     764             :       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
     765             : #  else
     766             : #   define YYCOPY(To, From, Count)              \
     767             :       do                                        \
     768             :         {                                       \
     769             :           YYSIZE_T yyi;                         \
     770             :           for (yyi = 0; yyi < (Count); yyi++)        \
     771             :             (To)[yyi] = (From)[yyi];            \
     772             :         }                                       \
     773             :       while (YYID (0))
     774             : #  endif
     775             : # endif
     776             : #endif /* !YYCOPY_NEEDED */
     777             : 
     778             : /* YYFINAL -- State number of the termination state.  */
     779             : #define YYFINAL  373
     780             : /* YYLAST -- Last index in YYTABLE.  */
     781             : #define YYLAST   8637
     782             : 
     783             : /* YYNTOKENS -- Number of terminals.  */
     784             : #define YYNTOKENS  325
     785             : /* YYNNTS -- Number of nonterminals.  */
     786             : #define YYNNTS  345
     787             : /* YYNRULES -- Number of rules.  */
     788             : #define YYNRULES  791
     789             : /* YYNRULES -- Number of states.  */
     790             : #define YYNSTATES  1310
     791             : 
     792             : /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
     793             : #define YYUNDEFTOK  2
     794             : #define YYMAXUTOK   558
     795             : 
     796             : #define YYTRANSLATE(YYX)                                                \
     797             :   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
     798             : 
     799             : /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
     800             : static const yytype_uint16 yytranslate[] =
     801             : {
     802             :        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     803             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     804             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     805             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     806             :        3,     4,   321,   318,     5,   319,    13,   322,     2,     2,
     807             :        2,     2,     2,     2,     2,     2,     2,     2,     6,     7,
     808             :        2,   323,     2,     8,     2,     2,     2,     2,     2,     2,
     809             :        2,    16,     2,     2,     2,    14,     2,    15,     2,     2,
     810             :       18,     2,     2,     2,    17,     2,     2,     2,     2,     2,
     811             :        2,     9,     2,    10,     2,     2,     2,     2,     2,     2,
     812             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     813             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     814             :        2,     2,     2,    11,     2,    12,     2,     2,     2,     2,
     815             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     816             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     817             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     818             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     819             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     820             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     821             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     822             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     823             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     824             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     825             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     826             :        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     827             :        2,     2,     2,     2,     2,     2,     1,     2,    19,    20,
     828             :       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     829             :       31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
     830             :       41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
     831             :       51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
     832             :       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
     833             :       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
     834             :       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
     835             :       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
     836             :      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
     837             :      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
     838             :      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
     839             :      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
     840             :      141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
     841             :      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
     842             :      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
     843             :      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
     844             :      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
     845             :      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
     846             :      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
     847             :      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
     848             :      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
     849             :      231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
     850             :      241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
     851             :      251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
     852             :      261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     853             :      271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
     854             :      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
     855             :      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
     856             :      301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
     857             :      311,   312,   313,   314,   315,   316,   317,   320,   324
     858             : };
     859             : 
     860             : #if YYDEBUG
     861             : /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
     862             :    YYRHS.  */
     863             : static const yytype_uint16 yyprhs[] =
     864             : {
     865             :        0,     0,     3,     5,     8,    10,    12,    14,    16,    18,
     866             :       20,    27,    29,    33,    35,    37,    41,    42,    45,    47,
     867             :       49,    52,    55,    57,    60,    63,    66,    69,    71,    76,
     868             :       79,    85,    90,    98,   109,   114,   115,   119,   123,   125,
     869             :      133,   134,   138,   139,   143,   151,   152,   156,   159,   161,
     870             :      163,   167,   169,   172,   174,   177,   180,   182,   184,   188,
     871             :      190,   192,   193,   197,   199,   203,   206,   209,   210,   212,
     872             :      214,   215,   217,   219,   221,   223,   225,   227,   229,   231,
     873             :      233,   237,   239,   244,   247,   252,   257,   263,   268,   270,
     874             :      274,   276,   278,   280,   283,   290,   291,   293,   295,   297,
     875             :      301,   305,   307,   309,   315,   317,   321,   323,   324,   326,
     876             :      328,   333,   335,   337,   338,   340,   344,   345,   347,   349,
     877             :      351,   353,   355,   356,   358,   364,   366,   368,   369,   371,
     878             :      372,   375,   379,   389,   392,   394,   398,   399,   401,   402,
     879             :      404,   405,   409,   412,   416,   418,   423,   427,   430,   431,
     880             :      435,   437,   439,   443,   447,   448,   451,   453,   455,   457,
     881             :      459,   461,   465,   467,   471,   473,   478,   480,   483,   485,
     882             :      489,   491,   495,   497,   499,   501,   503,   505,   507,   509,
     883             :      511,   514,   518,   521,   523,   525,   527,   529,   531,   533,
     884             :      538,   541,   547,   550,   552,   557,   562,   565,   568,   570,
     885             :      572,   573,   576,   581,   585,   588,   590,   592,   596,   600,
     886             :      603,   605,   609,   612,   614,   616,   618,   620,   623,   626,
     887             :      630,   632,   636,   638,   640,   642,   644,   646,   648,   650,
     888             :      653,   656,   659,   662,   663,   666,   668,   675,   680,   682,
     889             :      684,   686,   691,   696,   701,   706,   708,   710,   712,   714,
     890             :      716,   718,   720,   722,   724,   726,   733,   735,   737,   739,
     891             :      741,   743,   745,   747,   749,   751,   753,   755,   757,   759,
     892             :      761,   763,   765,   767,   771,   775,   779,   784,   789,   794,
     893             :      799,   804,   809,   814,   816,   818,   820,   822,   824,   826,
     894             :      828,   830,   832,   834,   836,   838,   840,   842,   844,   846,
     895             :      848,   850,   852,   854,   856,   858,   860,   862,   864,   866,
     896             :      868,   870,   872,   874,   876,   878,   880,   882,   884,   886,
     897             :      888,   890,   892,   894,   896,   898,   900,   902,   904,   906,
     898             :      908,   910,   912,   914,   916,   918,   920,   922,   924,   926,
     899             :      928,   930,   932,   934,   936,   938,   940,   942,   944,   946,
     900             :      948,   950,   952,   954,   956,   958,   960,   962,   964,   966,
     901             :      968,   970,   974,   978,   982,   984,   986,   988,   990,   992,
     902             :      997,   999,  1001,  1003,  1005,  1006,  1009,  1014,  1015,  1017,
     903             :     1024,  1026,  1028,  1030,  1032,  1034,  1037,  1040,  1046,  1048,
     904             :     1050,  1051,  1053,  1062,  1064,  1066,  1069,  1072,  1074,  1076,
     905             :     1078,  1080,  1081,  1083,  1086,  1090,  1092,  1096,  1098,  1102,
     906             :     1103,  1105,  1106,  1108,  1109,  1111,  1116,  1118,  1122,  1126,
     907             :     1128,  1131,  1132,  1134,  1138,  1140,  1142,  1144,  1146,  1149,
     908             :     1151,  1154,  1157,  1162,  1164,  1166,  1168,  1171,  1173,  1176,
     909             :     1180,  1183,  1186,  1190,  1191,  1194,  1199,  1200,  1204,  1206,
     910             :     1210,  1211,  1213,  1215,  1218,  1221,  1223,  1225,  1227,  1233,
     911             :     1238,  1244,  1246,  1248,  1250,  1252,  1254,  1256,  1258,  1260,
     912             :     1262,  1264,  1266,  1268,  1270,  1272,  1274,  1276,  1278,  1280,
     913             :     1286,  1294,  1295,  1301,  1303,  1309,  1311,  1313,  1315,  1321,
     914             :     1323,  1325,  1327,  1329,  1331,  1333,  1335,  1338,  1340,  1342,
     915             :     1343,  1345,  1347,  1350,  1355,  1361,  1367,  1369,  1371,  1376,
     916             :     1378,  1380,  1382,  1386,  1388,  1393,  1395,  1397,  1402,  1407,
     917             :     1408,  1410,  1412,  1414,  1416,  1418,  1420,  1427,  1429,  1431,
     918             :     1433,  1435,  1437,  1439,  1443,  1445,  1447,  1449,  1451,  1454,
     919             :     1457,  1459,  1463,  1467,  1469,  1473,  1477,  1479,  1481,  1483,
     920             :     1485,  1488,  1490,  1492,  1495,  1497,  1499,  1501,  1503,  1505,
     921             :     1507,  1509,  1512,  1514,  1517,  1520,  1523,  1527,  1529,  1533,
     922             :     1539,  1547,  1549,  1553,  1557,  1559,  1563,  1569,  1573,  1575,
     923             :     1579,  1583,  1585,  1587,  1589,  1591,  1593,  1595,  1599,  1603,
     924             :     1605,  1607,  1610,  1612,  1615,  1617,  1619,  1621,  1629,  1631,
     925             :     1633,  1634,  1636,  1638,  1640,  1642,  1644,  1645,  1648,  1656,
     926             :     1661,  1663,  1665,  1670,  1677,  1684,  1691,  1696,  1701,  1705,
     927             :     1709,  1712,  1714,  1716,  1718,  1720,  1723,  1725,  1727,  1729,
     928             :     1733,  1737,  1741,  1743,  1745,  1749,  1755,  1763,  1771,  1773,
     929             :     1775,  1777,  1778,  1782,  1783,  1785,  1789,  1792,  1794,  1796,
     930             :     1798,  1800,  1802,  1805,  1808,  1812,  1816,  1819,  1821,  1822,
     931             :     1824,  1828,  1829,  1831,  1835,  1838,  1839,  1841,  1843,  1845,
     932             :     1847,  1849,  1854,  1859,  1862,  1866,  1870,  1873,  1878,  1883,
     933             :     1887,  1889,  1895,  1900,  1903,  1906,  1910,  1913,  1915,  1920,
     934             :     1923,  1925,  1927,  1928,  1932,  1938,  1941,  1944,  1947,  1949,
     935             :     1951,  1953,  1955,  1960,  1962,  1964,  1966,  1969,  1971,  1973,
     936             :     1977,  1981,  1982,  1986,  1990,  1993,  1995,  1997,  1999,  2001,
     937             :     2003,  2005,  2010,  2015,  2020,  2022,  2024,  2030,  2035,  2037,
     938             :     2040,  2045,  2047,  2051,  2053,  2055,  2057,  2059,  2061,  2063,
     939             :     2065,  2068,  2073,  2074,  2077,  2079,  2081,  2083,  2085,  2088,
     940             :     2090,  2094,  2095,  2098,  2100,  2102,  2106,  2116,  2117,  2120,
     941             :     2122,  2124,  2127,  2129,  2131,  2134,  2135,  2138,  2140,  2144,
     942             :     2145,  2149,  2151,  2153,  2154,  2157,  2159,  2165,  2167,  2171,
     943             :     2173,  2175,  2178,  2183,  2188,  2193,  2198,  2200,  2202,  2204,
     944             :     2206,  2208
     945             : };
     946             : 
     947             : /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
     948             : static const yytype_int16 yyrhs[] =
     949             : {
     950             :      326,     0,    -1,   327,    -1,   327,     7,    -1,   355,    -1,
     951             :      328,    -1,   329,    -1,   340,    -1,   343,    -1,   649,    -1,
     952             :       49,   121,   599,     3,   330,     4,    -1,   331,    -1,   330,
     953             :        5,   331,    -1,   332,    -1,   337,    -1,   629,   605,   333,
     954             :       -1,    -1,   333,   336,    -1,   558,    -1,   132,    -1,   105,
     955             :       87,    -1,    25,    96,    -1,   335,    -1,    59,   432,    -1,
     956             :       59,    96,    -1,    59,   137,    -1,    59,   334,    -1,    43,
     957             :       -1,    43,     3,   407,     4,    -1,   110,   599,    -1,   110,
     958             :      599,     3,   339,     4,    -1,   335,     3,   339,     4,    -1,
     959             :       72,    87,     3,   339,     4,   110,   599,    -1,    72,    87,
     960             :        3,   339,     4,   110,   599,     3,   339,     4,    -1,    43,
     961             :        3,   407,     4,    -1,    -1,     3,   339,     4,    -1,   339,
     962             :        5,   629,    -1,   629,    -1,    49,   140,   599,   342,    32,
     963             :      376,   341,    -1,    -1,   142,    43,   101,    -1,    -1,     3,
     964             :      339,     4,    -1,    76,   345,   100,   599,   126,   348,   344,
     965             :       -1,    -1,   142,    76,   101,    -1,    28,   106,    -1,   346,
     966             :       -1,   347,    -1,   346,     5,   347,    -1,   113,    -1,   158,
     967             :      342,    -1,    60,    -1,   134,   342,    -1,   110,   342,    -1,
     968             :      136,    -1,   349,    -1,   348,     5,   349,    -1,   108,    -1,
     969             :      648,    -1,    -1,   102,    40,   351,    -1,   352,    -1,   351,
     970             :        5,   352,    -1,   408,   353,    -1,   364,   353,    -1,    -1,
     971             :       33,    -1,    61,    -1,    -1,    25,    -1,   357,    -1,   358,
     972             :       -1,   359,    -1,   360,    -1,   365,    -1,   366,    -1,   371,
     973             :       -1,   356,    -1,    11,   516,    12,    -1,   376,    -1,   356,
     974             :      131,   546,   376,    -1,    45,   143,    -1,    60,    74,   599,
     975             :      374,    -1,    69,   645,    83,   372,    -1,   158,    83,   599,
     976             :      342,   547,    -1,   139,     3,   362,     4,    -1,   363,    -1,
     977             :      362,     5,   363,    -1,   364,    -1,   575,    -1,    59,    -1,
     978             :      111,   143,    -1,   113,   367,   377,    83,   372,   390,    -1,
     979             :       -1,    28,    -1,    62,    -1,   369,    -1,   368,     5,   369,
     980             :       -1,   629,   312,   370,    -1,   575,    -1,    59,    -1,   134,
     981             :      599,   114,   368,   374,    -1,   373,    -1,   372,     5,   373,
     982             :       -1,   431,    -1,    -1,   397,    -1,   543,    -1,   113,   367,
     983             :      377,   390,    -1,   321,    -1,   429,    -1,    -1,   379,    -1,
     984             :      307,   385,   382,    -1,    -1,   386,    -1,   293,    -1,   308,
     985             :       -1,   255,    -1,   302,    -1,    -1,   384,    -1,    69,   381,
     986             :      380,   382,   309,    -1,   432,    -1,   432,    -1,    -1,   389,
     987             :       -1,    -1,   307,    23,    -1,   306,    23,   388,    -1,   391,
     988             :      374,   398,   400,   489,   350,   387,   378,   383,    -1,    74,
     989             :      392,    -1,   396,    -1,   392,     5,   396,    -1,    -1,    32,
     990             :       -1,    -1,   255,    -1,    -1,   393,    26,   338,    -1,   599,
     991             :      395,    -1,   428,   647,   338,    -1,   539,    -1,    11,   150,
     992             :      539,    12,    -1,     3,   539,     4,    -1,   141,   407,    -1,
     993             :       -1,    77,    40,   399,    -1,   603,    -1,   446,    -1,   399,
     994             :        5,   603,    -1,   399,     5,   446,    -1,    -1,    78,   407,
     995             :       -1,   130,    -1,    68,    -1,   133,    -1,    96,    -1,   408,
     996             :       -1,     3,   407,     4,    -1,   364,    -1,     3,   407,     4,
     997             :       -1,   402,    -1,   402,    84,   354,   401,    -1,   404,    -1,
     998             :       25,   404,    -1,   405,    -1,   406,   311,   405,    -1,   406,
     999             :       -1,   407,   310,   406,    -1,   410,    -1,   413,    -1,   424,
    1000             :       -1,   426,    -1,   427,    -1,   419,    -1,   422,    -1,   416,
    1001             :       -1,   411,   363,    -1,   363,   411,   363,    -1,   411,   363,
    1002             :       -1,   314,    -1,   315,    -1,   312,    -1,   313,    -1,   317,
    1003             :       -1,   316,    -1,    84,   354,    62,    74,    -1,    84,   354,
    1004             :       -1,   354,    37,   363,   311,   363,    -1,   363,   412,    -1,
    1005             :      412,    -1,   354,    89,   576,   417,    -1,   354,    89,   552,
    1006             :      417,    -1,   363,   414,    -1,   363,   415,    -1,   414,    -1,
    1007             :      415,    -1,    -1,    65,   576,    -1,    11,    65,    19,    12,
    1008             :       -1,    84,   354,    96,    -1,   363,   418,    -1,   418,    -1,
    1009             :      428,    -1,     3,   572,     4,    -1,   354,    79,   420,    -1,
    1010             :      363,   421,    -1,   421,    -1,   411,   425,   428,    -1,   363,
    1011             :      423,    -1,   423,    -1,    31,    -1,    28,    -1,   117,    -1,
    1012             :       67,   428,    -1,   132,   428,    -1,     3,   547,     4,    -1,
    1013             :      430,    -1,   429,     5,   430,    -1,   598,    -1,   646,    -1,
    1014             :       21,    -1,    22,    -1,    23,    -1,    24,    -1,    20,    -1,
    1015             :      432,    19,    -1,   432,    21,    -1,   432,    22,    -1,   432,
    1016             :       24,    -1,    -1,    32,   629,    -1,   629,    -1,   165,     3,
    1017             :      575,    79,   575,     4,    -1,   165,     3,   572,     4,    -1,
    1018             :      434,    -1,   443,    -1,   439,    -1,   154,     3,   575,     4,
    1019             :       -1,   155,     3,   575,     4,    -1,    98,     3,   575,     4,
    1020             :       -1,   152,     3,   575,     4,    -1,   436,    -1,   437,    -1,
    1021             :      438,    -1,   564,    -1,   191,    -1,   442,    -1,   440,    -1,
    1022             :      575,    -1,   124,    -1,   125,    -1,   183,     3,   441,    74,
    1023             :      575,     4,    -1,   445,    -1,   432,    -1,   646,    -1,   137,
    1024             :       -1,    96,    -1,    68,    -1,   130,    -1,   259,    -1,   260,
    1025             :       -1,   261,    -1,   262,    -1,   263,    -1,   264,    -1,   265,
    1026             :       -1,   266,    -1,   267,    -1,   522,    -1,    11,   520,    12,
    1027             :       -1,   453,     3,     4,    -1,   447,     3,     4,    -1,   448,
    1028             :        3,   573,     4,    -1,   449,     3,   569,     4,    -1,   452,
    1029             :        3,   570,     4,    -1,   457,     3,   571,     4,    -1,   453,
    1030             :        3,   574,     4,    -1,   450,     3,   574,     4,    -1,   451,
    1031             :        3,   574,     4,    -1,   459,    -1,   462,    -1,   454,    -1,
    1032             :      460,    -1,   463,    -1,   455,    -1,   464,    -1,   218,    -1,
    1033             :      195,    -1,   208,    -1,   209,    -1,   162,    -1,   190,    -1,
    1034             :      456,    -1,   458,    -1,   461,    -1,   465,    -1,    26,    -1,
    1035             :      161,    -1,   151,    -1,   159,    -1,   164,    -1,   169,    -1,
    1036             :      171,    -1,   173,    -1,   166,    -1,   160,    -1,   168,    -1,
    1037             :      167,    -1,   158,    -1,   153,    -1,   156,    -1,   157,    -1,
    1038             :      163,    -1,   170,    -1,   177,    -1,   178,    -1,   188,    -1,
    1039             :      181,    -1,   180,    -1,   182,    -1,   186,    -1,   179,    -1,
    1040             :      187,    -1,   189,    -1,   184,    -1,   185,    -1,   191,    -1,
    1041             :      196,    -1,    55,    -1,   194,    -1,    54,    -1,   192,    -1,
    1042             :      193,    -1,   213,    -1,   197,    -1,   198,    -1,   199,    -1,
    1043             :      200,    -1,   202,    -1,   203,    -1,   204,    -1,   205,    -1,
    1044             :      207,    -1,   219,    -1,   220,    -1,   221,    -1,   222,    -1,
    1045             :      206,    -1,   211,    -1,   210,    -1,   215,    -1,   217,    -1,
    1046             :      201,    -1,   212,    -1,   214,    -1,   216,    -1,   223,    -1,
    1047             :      467,   282,   487,    -1,   532,     3,     4,    -1,   283,     3,
    1048             :        4,    -1,   522,    -1,   468,    -1,   474,    -1,   480,    -1,
    1049             :      483,    -1,   284,     3,   471,     4,    -1,   646,    -1,   432,
    1050             :       -1,   470,    -1,   469,    -1,    -1,     5,   477,    -1,     5,
    1051             :      477,     5,   478,    -1,    -1,   479,    -1,   475,     3,   476,
    1052             :      472,     4,   473,    -1,   285,    -1,   286,    -1,   575,    -1,
    1053             :       23,    -1,   575,    -1,   287,   289,    -1,   288,   289,    -1,
    1054             :      481,     3,   575,     4,   473,    -1,   290,    -1,   291,    -1,
    1055             :       -1,   485,    -1,   292,     3,   575,     5,   484,     4,   482,
    1056             :      473,    -1,   470,    -1,   469,    -1,    74,   293,    -1,    74,
    1057             :      294,    -1,    26,    -1,   486,    -1,   488,    -1,   494,    -1,
    1058             :       -1,   490,    -1,   304,   491,    -1,   491,     5,   492,    -1,
    1059             :      492,    -1,   493,    32,   494,    -1,   486,    -1,     3,   498,
    1060             :        4,    -1,    -1,   499,    -1,    -1,   500,    -1,    -1,   504,
    1061             :       -1,   495,   496,   350,   497,    -1,   486,    -1,   303,    40,
    1062             :      501,    -1,   501,     5,   502,    -1,   502,    -1,   603,   607,
    1063             :       -1,    -1,   514,    -1,   505,   506,   503,    -1,   302,    -1,
    1064             :      301,    -1,   507,    -1,   509,    -1,   299,   300,    -1,   508,
    1065             :       -1,    51,   255,    -1,   444,   300,    -1,    37,   510,   311,
    1066             :      511,    -1,   512,    -1,   512,    -1,   507,    -1,   299,   298,
    1067             :       -1,   513,    -1,   444,   298,    -1,   295,    51,   255,    -1,
    1068             :      295,    77,    -1,   295,   297,    -1,   295,   305,   296,    -1,
    1069             :       -1,     8,   312,    -1,   515,   145,   599,   517,    -1,    -1,
    1070             :        3,   518,     4,    -1,   519,    -1,   518,     5,   519,    -1,
    1071             :       -1,   432,    -1,   646,    -1,   521,    19,    -1,   147,   446,
    1072             :       -1,   146,    -1,   148,    -1,   149,    -1,   523,     3,   367,
    1073             :      573,     4,    -1,    48,     3,   321,     4,    -1,    48,     3,
    1074             :      367,   573,     4,    -1,   524,    -1,   531,    -1,    36,    -1,
    1075             :       92,    -1,    93,    -1,   120,    -1,   224,    -1,    31,    -1,
    1076             :      117,    -1,   231,    -1,   230,    -1,   229,    -1,   228,    -1,
    1077             :      227,    -1,   226,    -1,   225,    -1,   525,    -1,   528,    -1,
    1078             :      532,     3,   527,     4,   526,    -1,   532,     3,   527,    40,
    1079             :      572,     4,   526,    -1,    -1,   238,    77,     3,   350,     4,
    1080             :       -1,   572,    -1,   530,     3,   529,     4,   526,    -1,   556,
    1081             :       -1,   236,    -1,   237,    -1,   239,     3,   575,   350,     4,
    1082             :       -1,   232,    -1,   233,    -1,   234,    -1,   235,    -1,   160,
    1083             :       -1,   168,    -1,    75,    -1,   100,   407,    -1,   534,    -1,
    1084             :      540,    -1,    -1,    81,    -1,   533,    -1,   533,   103,    -1,
    1085             :      396,    50,    86,   396,    -1,   396,    94,   536,    86,   396,
    1086             :       -1,   396,   536,    86,   396,   535,    -1,   537,    -1,   538,
    1087             :       -1,   138,     3,   339,     4,    -1,   376,    -1,   361,    -1,
    1088             :      541,    -1,     3,   545,     4,    -1,   542,    -1,   375,    85,
    1089             :      546,   544,    -1,   542,    -1,   543,    -1,   547,   131,   546,
    1090             :      375,    -1,   547,    66,   546,   375,    -1,    -1,    28,    -1,
    1091             :      545,    -1,   428,    -1,   575,    -1,   599,    -1,   605,    -1,
    1092             :       41,     3,   549,    32,   550,     4,    -1,   444,    -1,   603,
    1093             :       -1,   446,    -1,   548,    -1,   630,    -1,   466,    -1,     3,
    1094             :      575,     4,    -1,   551,    -1,   552,    -1,   435,    -1,   553,
    1095             :       -1,   319,   553,    -1,   318,   553,    -1,   554,    -1,   555,
    1096             :      321,   554,    -1,   555,   322,   554,    -1,   555,    -1,   556,
    1097             :      318,   555,    -1,   556,   319,   555,    -1,   558,    -1,   174,
    1098             :       -1,   175,    -1,   176,    -1,    34,   560,    -1,    90,    -1,
    1099             :      557,    -1,   557,   559,    -1,   561,    -1,   562,    -1,   196,
    1100             :       -1,   186,    -1,    55,    -1,   184,    -1,   185,    -1,   564,
    1101             :      610,    -1,   564,    -1,   191,   610,    -1,   564,   610,    -1,
    1102             :      191,   622,    -1,   565,   126,   566,    -1,   567,    -1,   573,
    1103             :        5,   573,    -1,   573,     5,   573,     5,   573,    -1,   573,
    1104             :        5,   573,     5,   573,     5,   573,    -1,   575,    -1,   572,
    1105             :        5,   575,    -1,   572,     7,   575,    -1,   642,    -1,   575,
    1106             :      411,   575,    -1,   575,   138,   575,   411,   575,    -1,   575,
    1107             :       40,   572,    -1,   573,    -1,   574,     5,   573,    -1,   574,
    1108             :        7,   573,    -1,   556,    -1,   576,    -1,   563,    -1,   577,
    1109             :       -1,   581,    -1,   578,    -1,   577,   318,   581,    -1,   575,
    1110             :      320,   575,    -1,    19,    -1,   582,    -1,    44,   599,    -1,
    1111             :      579,    -1,   579,   580,    -1,   588,    -1,   583,    -1,   584,
    1112             :       -1,   172,     3,   585,    74,   576,   589,     4,    -1,   586,
    1113             :       -1,   587,    -1,    -1,   590,    -1,   592,    -1,   593,    -1,
    1114             :      594,    -1,   595,    -1,    -1,    71,   575,    -1,   172,     3,
    1115             :      575,    74,   575,   589,     4,    -1,   172,     3,   572,     4,
    1116             :       -1,   135,    -1,    91,    -1,   591,     3,   575,     4,    -1,
    1117             :       47,     3,   576,   138,   599,     4,    -1,    47,     3,   549,
    1118             :        5,   550,     4,    -1,   128,     3,   576,   138,   599,     4,
    1119             :       -1,   129,     3,   596,     4,    -1,   597,   575,    74,   575,
    1120             :       -1,   597,    74,   575,    -1,   575,    74,   575,    -1,    74,
    1121             :      575,    -1,   575,    -1,    39,    -1,    88,    -1,   127,    -1,
    1122             :      575,   433,    -1,   602,    -1,   601,    -1,   600,    -1,    26,
    1123             :       13,   601,    -1,    26,     6,   601,    -1,    26,    13,   602,
    1124             :       -1,    26,    -1,   629,    -1,    26,    13,   604,    -1,    26,
    1125             :       13,    26,    13,   604,    -1,    26,    13,    26,    13,    26,
    1126             :       13,   604,    -1,    26,     6,    26,    13,    26,    13,   604,
    1127             :       -1,   629,    -1,   321,    -1,   608,    -1,    -1,    42,   114,
    1128             :       26,    -1,    -1,   580,    -1,   609,   606,   607,    -1,   617,
    1129             :      607,    -1,   619,    -1,   621,    -1,   625,    -1,   626,    -1,
    1130             :      628,    -1,    42,   610,    -1,   153,   610,    -1,    42,   270,
    1131             :      611,    -1,   153,   270,   611,    -1,   268,   611,    -1,   616,
    1132             :       -1,    -1,   611,    -1,     3,    23,     4,    -1,    -1,   613,
    1133             :       -1,     3,   614,     4,    -1,    23,   615,    -1,    -1,    14,
    1134             :       -1,    15,    -1,    16,    -1,    17,    -1,    18,    -1,    42,
    1135             :      274,   271,   612,    -1,   153,   274,   271,   612,    -1,   275,
    1136             :      612,    -1,   273,    42,   610,    -1,   273,   153,   610,    -1,
    1137             :       95,   610,    -1,   273,    42,   270,   611,    -1,   273,   153,
    1138             :      270,   611,    -1,    95,   270,   611,    -1,   618,    -1,   273,
    1139             :       42,   274,   271,   612,    -1,    95,   274,   271,   612,    -1,
    1140             :      272,   612,    -1,   278,   610,    -1,   278,   270,   611,    -1,
    1141             :      269,   611,    -1,   620,    -1,   278,   274,   271,   612,    -1,
    1142             :      276,   612,    -1,   623,    -1,   624,    -1,    -1,     3,    23,
    1143             :        4,    -1,     3,    23,     5,    23,     4,    -1,    97,   622,
    1144             :       -1,    57,   622,    -1,    56,   622,    -1,   116,    -1,    82,
    1145             :       -1,    21,    -1,   277,    -1,    70,     3,    23,     4,    -1,
    1146             :       70,    -1,   109,    -1,    63,    -1,    63,   104,    -1,   280,
    1147             :       -1,    53,    -1,   122,   610,   627,    -1,   123,   610,   627,
    1148             :       -1,    -1,   142,   122,   144,    -1,   279,   122,   144,    -1,
    1149             :      281,   568,    -1,    26,    -1,   165,    -1,   154,    -1,   183,
    1150             :       -1,   631,    -1,   632,    -1,   243,     3,   572,     4,    -1,
    1151             :      244,     3,   575,     4,    -1,   244,     3,   572,     4,    -1,
    1152             :      633,    -1,   634,    -1,   240,   644,   635,   641,   242,    -1,
    1153             :      240,   639,   641,   242,    -1,   636,    -1,   639,   636,    -1,
    1154             :      245,   637,   241,   642,    -1,   638,    -1,   637,     5,   638,
    1155             :       -1,   364,    -1,   409,    -1,   412,    -1,   421,    -1,   414,
    1156             :       -1,   418,    -1,   640,    -1,   639,   640,    -1,   245,   407,
    1157             :      241,   642,    -1,    -1,   246,   642,    -1,   643,    -1,   575,
    1158             :       -1,   364,    -1,    26,    -1,     6,    26,    -1,     8,    -1,
    1159             :        9,    26,    10,    -1,    -1,   393,    26,    -1,    26,    -1,
    1160             :      407,    -1,     3,   327,     4,    -1,    49,   254,   669,   651,
    1161             :      652,   100,   602,   650,   655,    -1,    -1,   251,   662,    -1,
    1162             :      247,    -1,   248,    -1,   249,    99,    -1,   158,    -1,    60,
    1163             :       -1,   134,   653,    -1,    -1,    99,   654,    -1,   339,    -1,
    1164             :      656,   658,   659,    -1,    -1,    71,   250,   657,    -1,   255,
    1165             :       -1,   256,    -1,    -1,   245,   403,    -1,   661,    -1,   252,
    1166             :      253,   660,     7,   242,    -1,   661,    -1,   660,     7,   661,
    1167             :       -1,   327,    -1,   663,    -1,   662,   663,    -1,   258,   394,
    1168             :      393,   667,    -1,   257,   394,   393,   668,    -1,   258,   121,
    1169             :      393,   664,    -1,   257,   121,   393,   665,    -1,   666,    -1,
    1170             :      666,    -1,    26,    -1,    26,    -1,    26,    -1,    26,    -1
    1171             : };
    1172             : 
    1173             : /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    1174             : static const yytype_uint16 yyrline[] =
    1175             : {
    1176             :        0,   308,   308,   310,   318,   319,   377,   378,   379,   380,
    1177             :      384,   395,   398,   404,   405,   409,   418,   419,   425,   428,
    1178             :      429,   437,   441,   442,   446,   450,   454,   460,   461,   467,
    1179             :      471,   481,   487,   496,   508,   516,   517,   525,   528,   534,
    1180             :      546,   547,   555,   556,   564,   577,   578,   586,   590,   594,
    1181             :      597,   603,   604,   608,   609,   613,   617,   622,   625,   631,
    1182             :      632,   638,   639,   647,   650,   661,   666,   673,   674,   675,
    1183             :      691,   692,   698,   700,   701,   702,   703,   704,   706,   707,
    1184             :      708,   718,   719,   729,   748,   757,   766,   775,   785,   788,
    1185             :      801,   812,   813,   818,   827,   838,   839,   840,   859,   862,
    1186             :      868,   875,   876,   879,   889,   892,   898,   902,   903,   909,
    1187             :      917,   928,   933,   936,   937,   940,   949,   950,   953,   954,
    1188             :      957,   958,   961,   962,   965,   976,   979,   983,   984,   987,
    1189             :      988,   996,  1005,  1021,  1029,  1032,  1038,  1039,  1042,  1043,
    1190             :     1046,  1047,  1055,  1061,  1068,  1069,  1077,  1086,  1093,  1094,
    1191             :     1102,  1105,  1108,  1111,  1117,  1118,  1126,  1127,  1128,  1129,
    1192             :     1132,  1133,  1140,  1166,  1175,  1176,  1186,  1187,  1195,  1196,
    1193             :     1205,  1206,  1215,  1216,  1217,  1218,  1219,  1220,  1221,  1222,
    1194             :     1225,  1232,  1239,  1264,  1265,  1266,  1267,  1268,  1269,  1270,
    1195             :     1278,  1286,  1324,  1330,  1333,  1343,  1353,  1359,  1365,  1387,
    1196             :     1412,  1413,  1417,  1428,  1437,  1443,  1459,  1463,  1471,  1480,
    1197             :     1486,  1502,  1511,  1517,  1534,  1535,  1536,  1540,  1546,  1552,
    1198             :     1561,  1566,  1581,  1586,  1618,  1619,  1620,  1621,  1622,  1624,
    1199             :     1636,  1648,  1660,  1676,  1677,  1683,  1686,  1696,  1706,  1707,
    1200             :     1708,  1711,  1719,  1730,  1740,  1750,  1755,  1760,  1767,  1772,
    1201             :     1779,  1780,  1781,  1784,  1789,  1808,  1820,  1821,  1824,  1825,
    1202             :     1826,  1827,  1828,  1829,  1830,  1831,  1832,  1833,  1834,  1835,
    1203             :     1836,  1837,  1840,  1841,  1848,  1855,  1862,  1870,  1878,  1886,
    1204             :     1894,  1902,  1915,  1930,  1931,  1934,  1935,  1936,  1939,  1940,
    1205             :     1943,  1944,  1945,  1946,  1949,  1950,  1953,  1956,  1957,  1958,
    1206             :     1959,  1962,  1963,  1964,  1965,  1966,  1967,  1968,  1972,  1973,
    1207             :     1974,  1977,  1980,  1984,  1985,  1986,  1987,  1988,  1991,  1992,
    1208             :     1993,  1996,  1997,  1998,  1999,  2000,  2001,  2002,  2003,  2004,
    1209             :     2005,  2006,  2007,  2008,  2009,  2013,  2014,  2017,  2020,  2021,
    1210             :     2022,  2023,  2024,  2025,  2026,  2027,  2028,  2029,  2030,  2031,
    1211             :     2032,  2033,  2034,  2035,  2036,  2037,  2040,  2041,  2042,  2045,
    1212             :     2046,  2050,  2059,  2066,  2073,  2074,  2075,  2076,  2077,  2080,
    1213             :     2090,  2093,  2096,  2097,  2100,  2101,  2107,  2117,  2118,  2122,
    1214             :     2134,  2135,  2138,  2141,  2144,  2147,  2148,  2151,  2162,  2163,
    1215             :     2166,  2167,  2170,  2184,  2185,  2188,  2194,  2202,  2205,  2206,
    1216             :     2209,  2212,  2213,  2216,  2224,  2227,  2232,  2241,  2244,  2253,
    1217             :     2254,  2257,  2258,  2261,  2262,  2265,  2271,  2274,  2283,  2286,
    1218             :     2291,  2299,  2300,  2303,  2312,  2313,  2316,  2317,  2320,  2326,
    1219             :     2327,  2335,  2343,  2353,  2356,  2359,  2360,  2366,  2369,  2377,
    1220             :     2384,  2390,  2396,  2405,  2406,  2414,  2425,  2426,  2436,  2439,
    1221             :     2446,  2447,  2448,  2452,  2458,  2467,  2468,  2469,  2473,  2482,
    1222             :     2490,  2499,  2500,  2503,  2504,  2505,  2506,  2507,  2508,  2509,
    1223             :     2510,  2511,  2512,  2513,  2514,  2515,  2516,  2520,  2521,  2524,
    1224             :     2533,  2547,  2550,  2561,  2565,  2575,  2578,  2579,  2583,  2595,
    1225             :     2596,  2597,  2598,  2601,  2606,  2611,  2618,  2626,  2627,  2630,
    1226             :     2631,  2636,  2637,  2645,  2657,  2666,  2675,  2678,  2681,  2691,
    1227             :     2692,  2696,  2697,  2706,  2707,  2717,  2720,  2721,  2729,  2739,
    1228             :     2740,  2743,  2746,  2749,  2752,  2753,  2756,  2768,  2769,  2770,
    1229             :     2771,  2772,  2773,  2774,  2781,  2785,  2786,  2789,  2790,  2796,
    1230             :     2805,  2806,  2813,  2823,  2824,  2831,  2845,  2852,  2857,  2862,
    1231             :     2869,  2877,  2891,  2896,  2904,  2930,  2991,  2992,  2993,  2994,
    1232             :     2995,  2998,  3006,  3007,  3016,  3022,  3031,  3038,  3042,  3048,
    1233             :     3057,  3067,  3070,  3074,  3086,  3087,  3094,  3102,  3111,  3114,
    1234             :     3118,  3131,  3132,  3133,  3140,  3148,  3149,  3152,  3159,  3169,
    1235             :     3170,  3173,  3181,  3182,  3190,  3191,  3194,  3201,  3214,  3238,
    1236             :     3245,  3258,  3259,  3260,  3265,  3270,  3277,  3278,  3286,  3297,
    1237             :     3307,  3308,  3311,  3321,  3331,  3343,  3355,  3365,  3373,  3380,
    1238             :     3387,  3393,  3397,  3398,  3399,  3403,  3412,  3413,  3414,  3417,
    1239             :     3424,  3433,  3443,  3449,  3458,  3464,  3471,  3481,  3505,  3508,
    1240             :     3515,  3518,  3519,  3528,  3529,  3532,  3539,  3545,  3546,  3547,
    1241             :     3548,  3549,  3552,  3558,  3564,  3571,  3578,  3584,  3587,  3588,
    1242             :     3591,  3600,  3601,  3604,  3614,  3622,  3623,  3628,  3633,  3638,
    1243             :     3643,  3650,  3658,  3666,  3674,  3681,  3688,  3694,  3702,  3710,
    1244             :     3717,  3720,  3729,  3737,  3745,  3751,  3758,  3764,  3767,  3775,
    1245             :     3783,  3784,  3787,  3788,  3795,  3806,  3812,  3818,  3824,  3825,
    1246             :     3826,  3827,  3830,  3838,  3839,  3840,  3841,  3849,  3852,  3853,
    1247             :     3860,  3869,  3870,  3877,  3886,  3896,  3897,  3903,  3909,  3917,
    1248             :     3918,  3921,  3929,  3937,  3947,  3948,  3951,  3962,  3972,  3977,
    1249             :     3984,  3994,  3997,  4002,  4003,  4004,  4005,  4006,  4007,  4010,
    1250             :     4015,  4022,  4032,  4033,  4041,  4044,  4047,  4050,  4063,  4067,
    1251             :     4070,  4085,  4086,  4093,  4098,  4112,  4115,  4130,  4133,  4141,
    1252             :     4142,  4143,  4151,  4152,  4153,  4161,  4164,  4172,  4175,  4184,
    1253             :     4187,  4196,  4197,  4200,  4203,  4211,  4212,  4223,  4228,  4235,
    1254             :     4239,  4244,  4252,  4260,  4268,  4276,  4286,  4289,  4292,  4295,
    1255             :     4298,  4301
    1256             : };
    1257             : #endif
    1258             : 
    1259             : #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    1260             : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    1261             :    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    1262             : static const char *const yytname[] =
    1263             : {
    1264             :   "$end", "error", "$undefined", "'('", "')'", "','", "':'", "';'", "'?'",
    1265             :   "'['", "']'", "'{'", "'}'", "'.'", "'K'", "'M'", "'G'", "'T'", "'P'",
    1266             :   "SQL_TOKEN_STRING", "SQL_TOKEN_ACCESS_DATE", "SQL_TOKEN_INT",
    1267             :   "SQL_TOKEN_REAL_NUM", "SQL_TOKEN_INTNUM", "SQL_TOKEN_APPROXNUM",
    1268             :   "SQL_TOKEN_NOT", "SQL_TOKEN_NAME", "SQL_TOKEN_UMINUS", "SQL_TOKEN_ALL",
    1269             :   "SQL_TOKEN_ALTER", "SQL_TOKEN_AMMSC", "SQL_TOKEN_ANY", "SQL_TOKEN_AS",
    1270             :   "SQL_TOKEN_ASC", "SQL_TOKEN_AT", "SQL_TOKEN_AUTHORIZATION",
    1271             :   "SQL_TOKEN_AVG", "SQL_TOKEN_BETWEEN", "SQL_TOKEN_BIT", "SQL_TOKEN_BOTH",
    1272             :   "SQL_TOKEN_BY", "SQL_TOKEN_CAST", "SQL_TOKEN_CHARACTER",
    1273             :   "SQL_TOKEN_CHECK", "SQL_TOKEN_COLLATE", "SQL_TOKEN_COMMIT",
    1274             :   "SQL_TOKEN_CONTINUE", "SQL_TOKEN_CONVERT", "SQL_TOKEN_COUNT",
    1275             :   "SQL_TOKEN_CREATE", "SQL_TOKEN_CROSS", "SQL_TOKEN_CURRENT",
    1276             :   "SQL_TOKEN_CURSOR", "SQL_TOKEN_DATE", "SQL_TOKEN_DATEVALUE",
    1277             :   "SQL_TOKEN_DAY", "SQL_TOKEN_DEC", "SQL_TOKEN_DECIMAL",
    1278             :   "SQL_TOKEN_DECLARE", "SQL_TOKEN_DEFAULT", "SQL_TOKEN_DELETE",
    1279             :   "SQL_TOKEN_DESC", "SQL_TOKEN_DISTINCT", "SQL_TOKEN_DOUBLE",
    1280             :   "SQL_TOKEN_DROP", "SQL_TOKEN_ESCAPE", "SQL_TOKEN_EXCEPT",
    1281             :   "SQL_TOKEN_EXISTS", "SQL_TOKEN_FALSE", "SQL_TOKEN_FETCH",
    1282             :   "SQL_TOKEN_FLOAT", "SQL_TOKEN_FOR", "SQL_TOKEN_FOREIGN",
    1283             :   "SQL_TOKEN_FOUND", "SQL_TOKEN_FROM", "SQL_TOKEN_FULL", "SQL_TOKEN_GRANT",
    1284             :   "SQL_TOKEN_GROUP", "SQL_TOKEN_HAVING", "SQL_TOKEN_IN",
    1285             :   "SQL_TOKEN_INDICATOR", "SQL_TOKEN_INNER", "SQL_TOKEN_INTEGER",
    1286             :   "SQL_TOKEN_INTO", "SQL_TOKEN_IS", "SQL_TOKEN_INTERSECT",
    1287             :   "SQL_TOKEN_JOIN", "SQL_TOKEN_KEY", "SQL_TOKEN_LEADING", "SQL_TOKEN_LIKE",
    1288             :   "SQL_TOKEN_LOCAL", "SQL_TOKEN_LOWER", "SQL_TOKEN_MAX", "SQL_TOKEN_MIN",
    1289             :   "SQL_TOKEN_NATURAL", "SQL_TOKEN_NCHAR", "SQL_TOKEN_NULL",
    1290             :   "SQL_TOKEN_NUMERIC", "SQL_TOKEN_OCTET_LENGTH", "SQL_TOKEN_OF",
    1291             :   "SQL_TOKEN_ON", "SQL_TOKEN_OPTION", "SQL_TOKEN_ORDER", "SQL_TOKEN_OUTER",
    1292             :   "SQL_TOKEN_PRECISION", "SQL_TOKEN_PRIMARY", "SQL_TOKEN_PRIVILEGES",
    1293             :   "SQL_TOKEN_PROCEDURE", "SQL_TOKEN_PUBLIC", "SQL_TOKEN_REAL",
    1294             :   "SQL_TOKEN_REFERENCES", "SQL_TOKEN_ROLLBACK", "SQL_TOKEN_SCHEMA",
    1295             :   "SQL_TOKEN_SELECT", "SQL_TOKEN_SET", "SQL_TOKEN_SIZE",
    1296             :   "SQL_TOKEN_SMALLINT", "SQL_TOKEN_SOME", "SQL_TOKEN_SQLCODE",
    1297             :   "SQL_TOKEN_SQLERROR", "SQL_TOKEN_SUM", "SQL_TOKEN_TABLE",
    1298             :   "SQL_TOKEN_TIME", "SQL_TOKEN_TIMESTAMP", "SQL_TOKEN_TIMEZONE_HOUR",
    1299             :   "SQL_TOKEN_TIMEZONE_MINUTE", "SQL_TOKEN_TO", "SQL_TOKEN_TRAILING",
    1300             :   "SQL_TOKEN_TRANSLATE", "SQL_TOKEN_TRIM", "SQL_TOKEN_TRUE",
    1301             :   "SQL_TOKEN_UNION", "SQL_TOKEN_UNIQUE", "SQL_TOKEN_UNKNOWN",
    1302             :   "SQL_TOKEN_UPDATE", "SQL_TOKEN_UPPER", "SQL_TOKEN_USAGE",
    1303             :   "SQL_TOKEN_USER", "SQL_TOKEN_USING", "SQL_TOKEN_VALUES",
    1304             :   "SQL_TOKEN_VIEW", "SQL_TOKEN_WHERE", "SQL_TOKEN_WITH", "SQL_TOKEN_WORK",
    1305             :   "SQL_TOKEN_ZONE", "SQL_TOKEN_CALL", "SQL_TOKEN_D", "SQL_TOKEN_FN",
    1306             :   "SQL_TOKEN_T", "SQL_TOKEN_TS", "SQL_TOKEN_OJ", "SQL_TOKEN_ASCII",
    1307             :   "SQL_TOKEN_BIT_LENGTH", "SQL_TOKEN_CHAR", "SQL_TOKEN_CHAR_LENGTH",
    1308             :   "SQL_TOKEN_SQL_TOKEN_INTNUM", "SQL_TOKEN_CONCAT", "SQL_TOKEN_DIFFERENCE",
    1309             :   "SQL_TOKEN_INSERT", "SQL_TOKEN_LCASE", "SQL_TOKEN_LEFT",
    1310             :   "SQL_TOKEN_LENGTH", "SQL_TOKEN_LOCATE", "SQL_TOKEN_LOCATE_2",
    1311             :   "SQL_TOKEN_LTRIM", "SQL_TOKEN_POSITION", "SQL_TOKEN_REPEAT",
    1312             :   "SQL_TOKEN_REPLACE", "SQL_TOKEN_RIGHT", "SQL_TOKEN_RTRIM",
    1313             :   "SQL_TOKEN_SOUNDEX", "SQL_TOKEN_SPACE", "SQL_TOKEN_SUBSTRING",
    1314             :   "SQL_TOKEN_UCASE", "SQL_TOKEN_CURRENT_DATE", "SQL_TOKEN_CURRENT_TIME",
    1315             :   "SQL_TOKEN_CURRENT_TIMESTAMP", "SQL_TOKEN_CURDATE", "SQL_TOKEN_CURTIME",
    1316             :   "SQL_TOKEN_DAYNAME", "SQL_TOKEN_DAYOFMONTH", "SQL_TOKEN_DAYOFWEEK",
    1317             :   "SQL_TOKEN_DAYOFYEAR", "SQL_TOKEN_EXTRACT", "SQL_TOKEN_HOUR",
    1318             :   "SQL_TOKEN_MINUTE", "SQL_TOKEN_MONTH", "SQL_TOKEN_MONTHNAME",
    1319             :   "SQL_TOKEN_NOW", "SQL_TOKEN_QUARTER", "SQL_TOKEN_DATEDIFF",
    1320             :   "SQL_TOKEN_SECOND", "SQL_TOKEN_TIMESTAMPADD", "SQL_TOKEN_TIMESTAMPDIFF",
    1321             :   "SQL_TOKEN_TIMEVALUE", "SQL_TOKEN_WEEK", "SQL_TOKEN_YEAR",
    1322             :   "SQL_TOKEN_ABS", "SQL_TOKEN_ACOS", "SQL_TOKEN_ASIN", "SQL_TOKEN_ATAN",
    1323             :   "SQL_TOKEN_ATAN2", "SQL_TOKEN_CEILING", "SQL_TOKEN_COS", "SQL_TOKEN_COT",
    1324             :   "SQL_TOKEN_DEGREES", "SQL_TOKEN_EXP", "SQL_TOKEN_FLOOR",
    1325             :   "SQL_TOKEN_LOGF", "SQL_TOKEN_LOG", "SQL_TOKEN_LN", "SQL_TOKEN_LOG10",
    1326             :   "SQL_TOKEN_MOD", "SQL_TOKEN_PI", "SQL_TOKEN_POWER", "SQL_TOKEN_RADIANS",
    1327             :   "SQL_TOKEN_RAND", "SQL_TOKEN_ROUNDMAGIC", "SQL_TOKEN_ROUND",
    1328             :   "SQL_TOKEN_SIGN", "SQL_TOKEN_SIN", "SQL_TOKEN_SQRT", "SQL_TOKEN_TAN",
    1329             :   "SQL_TOKEN_TRUNCATE", "SQL_TOKEN_EVERY", "SQL_TOKEN_INTERSECTION",
    1330             :   "SQL_TOKEN_FUSION", "SQL_TOKEN_COLLECT", "SQL_TOKEN_VAR_POP",
    1331             :   "SQL_TOKEN_VAR_SAMP", "SQL_TOKEN_STDDEV_SAMP", "SQL_TOKEN_STDDEV_POP",
    1332             :   "SQL_TOKEN_RANK", "SQL_TOKEN_DENSE_RANK", "SQL_TOKEN_PERCENT_RANK",
    1333             :   "SQL_TOKEN_CUME_DIST", "SQL_TOKEN_PERCENTILE_CONT",
    1334             :   "SQL_TOKEN_PERCENTILE_DISC", "SQL_TOKEN_WITHIN", "SQL_TOKEN_ARRAY_AGG",
    1335             :   "SQL_TOKEN_CASE", "SQL_TOKEN_THEN", "SQL_TOKEN_END", "SQL_TOKEN_NULLIF",
    1336             :   "SQL_TOKEN_COALESCE", "SQL_TOKEN_WHEN", "SQL_TOKEN_ELSE",
    1337             :   "SQL_TOKEN_BEFORE", "SQL_TOKEN_AFTER", "SQL_TOKEN_INSTEAD",
    1338             :   "SQL_TOKEN_EACH", "SQL_TOKEN_REFERENCING", "SQL_TOKEN_BEGIN",
    1339             :   "SQL_TOKEN_ATOMIC", "SQL_TOKEN_TRIGGER", "SQL_TOKEN_ROW",
    1340             :   "SQL_TOKEN_STATEMENT", "SQL_TOKEN_NEW", "SQL_TOKEN_OLD",
    1341             :   "SQL_TOKEN_VALUE", "SQL_TOKEN_CURRENT_CATALOG",
    1342             :   "SQL_TOKEN_CURRENT_DEFAULT_TRANSFORM_GROUP", "SQL_TOKEN_CURRENT_PATH",
    1343             :   "SQL_TOKEN_CURRENT_ROLE", "SQL_TOKEN_CURRENT_SCHEMA",
    1344             :   "SQL_TOKEN_CURRENT_USER", "SQL_TOKEN_SESSION_USER",
    1345             :   "SQL_TOKEN_SYSTEM_USER", "SQL_TOKEN_VARCHAR", "SQL_TOKEN_VARBINARY",
    1346             :   "SQL_TOKEN_VARYING", "SQL_TOKEN_OBJECT", "SQL_TOKEN_NCLOB",
    1347             :   "SQL_TOKEN_NATIONAL", "SQL_TOKEN_LARGE", "SQL_TOKEN_CLOB",
    1348             :   "SQL_TOKEN_BLOB", "SQL_TOKEN_BIGINT", "SQL_TOKEN_BINARY",
    1349             :   "SQL_TOKEN_WITHOUT", "SQL_TOKEN_BOOLEAN", "SQL_TOKEN_INTERVAL",
    1350             :   "SQL_TOKEN_OVER", "SQL_TOKEN_ROW_NUMBER", "SQL_TOKEN_NTILE",
    1351             :   "SQL_TOKEN_LEAD", "SQL_TOKEN_LAG", "SQL_TOKEN_RESPECT",
    1352             :   "SQL_TOKEN_IGNORE", "SQL_TOKEN_NULLS", "SQL_TOKEN_FIRST_VALUE",
    1353             :   "SQL_TOKEN_LAST_VALUE", "SQL_TOKEN_NTH_VALUE", "SQL_TOKEN_FIRST",
    1354             :   "SQL_TOKEN_LAST", "SQL_TOKEN_EXCLUDE", "SQL_TOKEN_OTHERS",
    1355             :   "SQL_TOKEN_TIES", "SQL_TOKEN_FOLLOWING", "SQL_TOKEN_UNBOUNDED",
    1356             :   "SQL_TOKEN_PRECEDING", "SQL_TOKEN_RANGE", "SQL_TOKEN_ROWS",
    1357             :   "SQL_TOKEN_PARTITION", "SQL_TOKEN_WINDOW", "SQL_TOKEN_NO",
    1358             :   "SQL_TOKEN_LIMIT", "SQL_TOKEN_OFFSET", "SQL_TOKEN_NEXT",
    1359             :   "SQL_TOKEN_ONLY", "SQL_TOKEN_OR", "SQL_TOKEN_AND", "SQL_EQUAL",
    1360             :   "SQL_GREAT", "SQL_LESS", "SQL_NOTEQUAL", "SQL_GREATEQ", "SQL_LESSEQ",
    1361             :   "'+'", "'-'", "SQL_CONCAT", "'*'", "'/'", "'='",
    1362             :   "SQL_TOKEN_INVALIDSYMBOL", "$accept", "sql_single_statement", "sql",
    1363             :   "schema_element", "base_table_def", "base_table_element_commalist",
    1364             :   "base_table_element", "column_def", "column_def_opt_list", "nil_fkt",
    1365             :   "unique_spec", "column_def_opt", "table_constraint_def",
    1366             :   "op_column_commalist", "column_commalist", "view_def",
    1367             :   "opt_with_check_option", "opt_column_commalist", "privilege_def",
    1368             :   "opt_with_grant_option", "privileges", "operation_commalist",
    1369             :   "operation", "grantee_commalist", "grantee", "opt_order_by_clause",
    1370             :   "ordering_spec_commalist", "ordering_spec", "opt_asc_desc", "sql_not",
    1371             :   "manipulative_statement", "union_statement", "commit_statement",
    1372             :   "delete_statement_searched", "fetch_statement", "insert_statement",
    1373             :   "values_or_query_spec", "table_value_const_list",
    1374             :   "row_value_constructor", "row_value_constructor_elem",
    1375             :   "rollback_statement", "select_statement_into", "opt_all_distinct",
    1376             :   "assignment_commalist", "assignment", "update_source",
    1377             :   "update_statement_searched", "target_commalist", "target",
    1378             :   "opt_where_clause", "query_term", "select_statement", "selection",
    1379             :   "opt_result_offset_clause", "result_offset_clause",
    1380             :   "opt_fetch_first_row_count", "first_or_next", "row_or_rows",
    1381             :   "opt_fetch_first_clause", "fetch_first_clause", "offset_row_count",
    1382             :   "fetch_first_row_count", "opt_limit_offset_clause", "opt_offset",
    1383             :   "limit_offset_clause", "table_exp", "from_clause", "table_ref_commalist",
    1384             :   "opt_as", "opt_row", "table_primary_as_range_column", "table_ref",
    1385             :   "where_clause", "opt_group_by_clause", "column_ref_commalist",
    1386             :   "opt_having_clause", "truth_value", "boolean_primary",
    1387             :   "parenthesized_boolean_value_expression", "boolean_test",
    1388             :   "boolean_factor", "boolean_term", "search_condition", "predicate",
    1389             :   "comparison_predicate_part_2", "comparison_predicate", "comparison",
    1390             :   "between_predicate_part_2", "between_predicate",
    1391             :   "character_like_predicate_part_2", "other_like_predicate_part_2",
    1392             :   "like_predicate", "opt_escape", "null_predicate_part_2", "test_for_null",
    1393             :   "in_predicate_value", "in_predicate_part_2", "in_predicate",
    1394             :   "quantified_comparison_predicate_part_2", "all_or_any_predicate",
    1395             :   "any_all_some", "existence_test", "unique_test", "subquery",
    1396             :   "scalar_exp_commalist", "select_sublist", "parameter_ref", "literal",
    1397             :   "as_clause", "position_exp", "num_value_fct", "char_length_exp",
    1398             :   "octet_length_exp", "bit_length_exp", "length_exp", "datetime_field",
    1399             :   "extract_field", "time_zone_field", "extract_exp", "unsigned_value_spec",
    1400             :   "general_value_spec", "set_fct_spec", "function_name0", "function_name1",
    1401             :   "function_name2", "function_name12", "function_name23", "function_name3",
    1402             :   "function_name", "string_function_1Argument",
    1403             :   "string_function_2Argument", "string_function_3Argument",
    1404             :   "string_function_4Argument", "string_function",
    1405             :   "date_function_0Argument", "date_function_1Argument", "date_function",
    1406             :   "numeric_function_0Argument", "numeric_function_1Argument",
    1407             :   "numeric_function_2Argument", "numeric_function", "window_function",
    1408             :   "window_function_type", "ntile_function",
    1409             :   "dynamic_parameter_specification", "simple_value_specification",
    1410             :   "number_of_tiles", "opt_lead_or_lag_function", "opt_null_treatment",
    1411             :   "lead_or_lag_function", "lead_or_lag", "lead_or_lag_extent", "offset",
    1412             :   "default_expression", "null_treatment", "first_or_last_value_function",
    1413             :   "first_or_last_value", "opt_from_first_or_last", "nth_value_function",
    1414             :   "nth_row", "from_first_or_last", "window_name",
    1415             :   "window_name_or_specification", "in_line_window_specification",
    1416             :   "opt_window_clause", "window_clause", "window_definition_list",
    1417             :   "window_definition", "new_window_name", "window_specification",
    1418             :   "opt_existing_window_name", "opt_window_partition_clause",
    1419             :   "opt_window_frame_clause", "window_specification_details",
    1420             :   "existing_window_name", "window_partition_clause",
    1421             :   "window_partition_column_reference_list",
    1422             :   "window_partition_column_reference", "opt_window_frame_exclusion",
    1423             :   "window_frame_clause", "window_frame_units", "window_frame_extent",
    1424             :   "window_frame_start", "window_frame_preceding", "window_frame_between",
    1425             :   "window_frame_bound_1", "window_frame_bound_2", "window_frame_bound",
    1426             :   "window_frame_following", "window_frame_exclusion", "op_parameter",
    1427             :   "odbc_call_spec", "op_odbc_call_parameter", "odbc_parameter_commalist",
    1428             :   "odbc_parameter", "odbc_fct_spec", "odbc_fct_type", "general_set_fct",
    1429             :   "set_fct_type", "ordered_set_function", "hypothetical_set_function",
    1430             :   "within_group_specification",
    1431             :   "hypothetical_set_function_value_expression_list",
    1432             :   "inverse_distribution_function",
    1433             :   "inverse_distribution_function_argument",
    1434             :   "inverse_distribution_function_type", "array_aggregate_function",
    1435             :   "rank_function_type", "outer_join_type", "join_condition", "join_spec",
    1436             :   "join_type", "cross_union", "qualified_join", "joined_table",
    1437             :   "named_columns_join", "simple_table", "non_join_query_primary",
    1438             :   "non_join_query_term", "query_primary", "non_join_query_exp", "all",
    1439             :   "query_exp", "scalar_subquery", "cast_operand", "cast_target",
    1440             :   "cast_spec", "value_exp_primary", "num_primary", "factor", "term",
    1441             :   "num_value_exp", "datetime_primary", "datetime_value_fct", "time_zone",
    1442             :   "time_zone_specifier", "datetime_factor", "datetime_term",
    1443             :   "datetime_value_exp", "non_second_datetime_field", "start_field",
    1444             :   "end_field", "single_datetime_field", "interval_qualifier",
    1445             :   "function_arg_commalist2", "function_arg_commalist3",
    1446             :   "function_arg_commalist4", "value_exp_commalist", "function_arg",
    1447             :   "function_args_commalist", "value_exp", "string_value_exp",
    1448             :   "char_value_exp", "concatenation", "char_primary", "collate_clause",
    1449             :   "char_factor", "string_value_fct", "bit_value_fct", "bit_substring_fct",
    1450             :   "bit_value_exp", "bit_factor", "bit_primary", "char_value_fct",
    1451             :   "for_length", "char_substring_fct", "upper_lower", "fold",
    1452             :   "form_conversion", "char_translation", "trim_fct", "trim_operands",
    1453             :   "trim_spec", "derived_column", "table_node", "catalog_name",
    1454             :   "schema_name", "table_name", "column_ref", "column_val", "data_type",
    1455             :   "opt_char_set_spec", "opt_collate_clause", "predefined_type",
    1456             :   "character_string_type", "opt_paren_precision", "paren_char_length",
    1457             :   "opt_paren_char_large_length", "paren_character_large_object_length",
    1458             :   "large_object_length", "opt_multiplier", "character_large_object_type",
    1459             :   "national_character_string_type", "national_character_large_object_type",
    1460             :   "binary_string_type", "binary_large_object_string_type", "numeric_type",
    1461             :   "opt_paren_precision_scale", "exact_numeric_type",
    1462             :   "approximate_numeric_type", "boolean_type", "datetime_type",
    1463             :   "opt_with_or_without_time_zone", "interval_type", "column",
    1464             :   "case_expression", "case_abbreviation", "case_specification",
    1465             :   "simple_case", "searched_case", "simple_when_clause_list",
    1466             :   "simple_when_clause", "when_operand_list", "when_operand",
    1467             :   "searched_when_clause_list", "searched_when_clause", "else_clause",
    1468             :   "result", "result_expression", "case_operand", "cursor", "parameter",
    1469             :   "range_variable", "user", "trigger_definition", "op_referencing",
    1470             :   "trigger_action_time", "trigger_event", "op_trigger_columnlist",
    1471             :   "trigger_column_list", "triggered_action", "op_triggered_action_for",
    1472             :   "trigger_for", "triggered_when_clause", "triggered_SQL_statement",
    1473             :   "SQL_procedure_statement_list", "SQL_procedure_statement",
    1474             :   "transition_table_or_variable_list", "transition_table_or_variable",
    1475             :   "old_transition_table_name", "new_transition_table_name",
    1476             :   "transition_table_name", "old_transition_variable_name",
    1477             :   "new_transition_variable_name", "trigger_name", 0
    1478             : };
    1479             : #endif
    1480             : 
    1481             : # ifdef YYPRINT
    1482             : /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    1483             :    token YYLEX-NUM.  */
    1484             : static const yytype_uint16 yytoknum[] =
    1485             : {
    1486             :        0,   256,   257,    40,    41,    44,    58,    59,    63,    91,
    1487             :       93,   123,   125,    46,    75,    77,    71,    84,    80,   258,
    1488             :      259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
    1489             :      269,   270,   271,   272,   273,   274,   275,   276,   277,   278,
    1490             :      279,   280,   281,   282,   283,   284,   285,   286,   287,   288,
    1491             :      289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
    1492             :      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
    1493             :      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
    1494             :      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
    1495             :      329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
    1496             :      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
    1497             :      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
    1498             :      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
    1499             :      369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
    1500             :      379,   380,   381,   382,   383,   384,   385,   386,   387,   388,
    1501             :      389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
    1502             :      399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
    1503             :      409,   410,   411,   412,   413,   414,   415,   416,   417,   418,
    1504             :      419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
    1505             :      429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
    1506             :      439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
    1507             :      449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
    1508             :      459,   460,   461,   462,   463,   464,   465,   466,   467,   468,
    1509             :      469,   470,   471,   472,   473,   474,   475,   476,   477,   478,
    1510             :      479,   480,   481,   482,   483,   484,   485,   486,   487,   488,
    1511             :      489,   490,   491,   492,   493,   494,   495,   496,   497,   498,
    1512             :      499,   500,   501,   502,   503,   504,   505,   506,   507,   508,
    1513             :      509,   510,   511,   512,   513,   514,   515,   516,   517,   518,
    1514             :      519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
    1515             :      529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
    1516             :      539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
    1517             :      549,   550,   551,   552,   553,   554,   555,   556,    43,    45,
    1518             :      557,    42,    47,    61,   558
    1519             : };
    1520             : # endif
    1521             : 
    1522             : /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    1523             : static const yytype_uint16 yyr1[] =
    1524             : {
    1525             :        0,   325,   326,   326,   327,   327,   328,   328,   328,   328,
    1526             :      329,   330,   330,   331,   331,   332,   333,   333,   334,   335,
    1527             :      335,   336,   336,   336,   336,   336,   336,   336,   336,   336,
    1528             :      336,   337,   337,   337,   337,   338,   338,   339,   339,   340,
    1529             :      341,   341,   342,   342,   343,   344,   344,   345,   345,   346,
    1530             :      346,   347,   347,   347,   347,   347,   347,   348,   348,   349,
    1531             :      349,   350,   350,   351,   351,   352,   352,   353,   353,   353,
    1532             :      354,   354,   355,   355,   355,   355,   355,   355,   355,   355,
    1533             :      355,   356,   356,   357,   358,   359,   360,   361,   362,   362,
    1534             :      363,   364,   364,   365,   366,   367,   367,   367,   368,   368,
    1535             :      369,   370,   370,   371,   372,   372,   373,   374,   374,   375,
    1536             :      376,   377,   377,   378,   378,   379,   380,   380,   381,   381,
    1537             :      382,   382,   383,   383,   384,   385,   386,   387,   387,   388,
    1538             :      388,   389,   390,   391,   392,   392,   393,   393,   394,   394,
    1539             :      395,   395,   396,   396,   396,   396,   396,   397,   398,   398,
    1540             :      399,   399,   399,   399,   400,   400,   401,   401,   401,   401,
    1541             :      402,   402,   402,   403,   404,   404,   405,   405,   406,   406,
    1542             :      407,   407,   408,   408,   408,   408,   408,   408,   408,   408,
    1543             :      409,   410,   410,   411,   411,   411,   411,   411,   411,   411,
    1544             :      411,   412,   413,   413,   414,   415,   416,   416,   416,   416,
    1545             :      417,   417,   417,   418,   419,   419,   420,   420,   421,   422,
    1546             :      422,   423,   424,   424,   425,   425,   425,   426,   427,   428,
    1547             :      429,   429,   430,   431,   432,   432,   432,   432,   432,   432,
    1548             :      432,   432,   432,   433,   433,   433,   434,   434,   435,   435,
    1549             :      435,   436,   436,   437,   438,   439,   439,   439,   440,   440,
    1550             :      441,   441,   441,   442,   442,   443,   444,   444,   445,   445,
    1551             :      445,   445,   445,   445,   445,   445,   445,   445,   445,   445,
    1552             :      445,   445,   446,   446,   446,   446,   446,   446,   446,   446,
    1553             :      446,   446,   446,   447,   447,   448,   448,   448,   449,   449,
    1554             :      450,   450,   450,   450,   451,   451,   452,   453,   453,   453,
    1555             :      453,   454,   454,   454,   454,   454,   454,   454,   455,   455,
    1556             :      455,   456,   457,   458,   458,   458,   458,   458,   459,   459,
    1557             :      459,   460,   460,   460,   460,   460,   460,   460,   460,   460,
    1558             :      460,   460,   460,   460,   460,   461,   461,   462,   463,   463,
    1559             :      463,   463,   463,   463,   463,   463,   463,   463,   463,   463,
    1560             :      463,   463,   463,   463,   463,   463,   464,   464,   464,   465,
    1561             :      465,   466,   467,   467,   467,   467,   467,   467,   467,   468,
    1562             :      469,   470,   471,   471,   472,   472,   472,   473,   473,   474,
    1563             :      475,   475,   476,   477,   478,   479,   479,   480,   481,   481,
    1564             :      482,   482,   483,   484,   484,   485,   485,   486,   487,   487,
    1565             :      488,   489,   489,   490,   491,   491,   492,   493,   494,   495,
    1566             :      495,   496,   496,   497,   497,   498,   499,   500,   501,   501,
    1567             :      502,   503,   503,   504,   505,   505,   506,   506,   507,   507,
    1568             :      507,   508,   509,   510,   511,   512,   512,   512,   513,   514,
    1569             :      514,   514,   514,   515,   515,   516,   517,   517,   518,   518,
    1570             :      519,   519,   519,   520,   520,   521,   521,   521,   522,   522,
    1571             :      522,   522,   522,   523,   523,   523,   523,   523,   523,   523,
    1572             :      523,   523,   523,   523,   523,   523,   523,   524,   524,   525,
    1573             :      525,   526,   526,   527,   528,   529,   530,   530,   531,   532,
    1574             :      532,   532,   532,   533,   533,   533,   534,   535,   535,   536,
    1575             :      536,   536,   536,   537,   538,   538,   538,   539,   540,   541,
    1576             :      541,   542,   542,   543,   543,   544,   545,   545,   545,   546,
    1577             :      546,   547,   548,   549,   550,   550,   551,   552,   552,   552,
    1578             :      552,   552,   552,   552,   552,   553,   553,   554,   554,   554,
    1579             :      555,   555,   555,   556,   556,   556,   557,   558,   558,   558,
    1580             :      559,   560,   561,   561,   562,   563,   564,   564,   564,   564,
    1581             :      564,   565,   566,   566,   567,   567,   568,   568,   569,   570,
    1582             :      571,   572,   572,   572,   573,   573,   573,   573,   574,   574,
    1583             :      574,   575,   575,   575,   576,   577,   577,   578,   578,   579,
    1584             :      579,   580,   581,   581,   582,   582,   583,   584,   585,   586,
    1585             :      587,   588,   588,   588,   588,   588,   589,   589,   590,   590,
    1586             :      591,   591,   592,   593,   593,   594,   595,   596,   596,   596,
    1587             :      596,   596,   597,   597,   597,   598,   599,   599,   599,   600,
    1588             :      600,   601,   602,   603,   603,   603,   603,   603,   604,   604,
    1589             :      605,   606,   606,   607,   607,   608,   608,   608,   608,   608,
    1590             :      608,   608,   609,   609,   609,   609,   609,   609,   610,   610,
    1591             :      611,   612,   612,   613,   614,   615,   615,   615,   615,   615,
    1592             :      615,   616,   616,   616,   617,   617,   617,   617,   617,   617,
    1593             :      617,   618,   618,   618,   619,   619,   619,   619,   620,   620,
    1594             :      621,   621,   622,   622,   622,   623,   623,   623,   623,   623,
    1595             :      623,   623,   624,   624,   624,   624,   624,   625,   626,   626,
    1596             :      626,   627,   627,   627,   628,   629,   629,   629,   629,   630,
    1597             :      630,   631,   631,   631,   632,   632,   633,   634,   635,   635,
    1598             :      636,   637,   637,   638,   638,   638,   638,   638,   638,   639,
    1599             :      639,   640,   641,   641,   642,   643,   644,   645,   646,   646,
    1600             :      646,   647,   647,   648,   327,   327,   649,   650,   650,   651,
    1601             :      651,   651,   652,   652,   652,   653,   653,   654,   655,   656,
    1602             :      656,   657,   657,   658,   658,   659,   659,   660,   660,   661,
    1603             :      662,   662,   663,   663,   663,   663,   664,   665,   666,   667,
    1604             :      668,   669
    1605             : };
    1606             : 
    1607             : /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    1608             : static const yytype_uint8 yyr2[] =
    1609             : {
    1610             :        0,     2,     1,     2,     1,     1,     1,     1,     1,     1,
    1611             :        6,     1,     3,     1,     1,     3,     0,     2,     1,     1,
    1612             :        2,     2,     1,     2,     2,     2,     2,     1,     4,     2,
    1613             :        5,     4,     7,    10,     4,     0,     3,     3,     1,     7,
    1614             :        0,     3,     0,     3,     7,     0,     3,     2,     1,     1,
    1615             :        3,     1,     2,     1,     2,     2,     1,     1,     3,     1,
    1616             :        1,     0,     3,     1,     3,     2,     2,     0,     1,     1,
    1617             :        0,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1618             :        3,     1,     4,     2,     4,     4,     5,     4,     1,     3,
    1619             :        1,     1,     1,     2,     6,     0,     1,     1,     1,     3,
    1620             :        3,     1,     1,     5,     1,     3,     1,     0,     1,     1,
    1621             :        4,     1,     1,     0,     1,     3,     0,     1,     1,     1,
    1622             :        1,     1,     0,     1,     5,     1,     1,     0,     1,     0,
    1623             :        2,     3,     9,     2,     1,     3,     0,     1,     0,     1,
    1624             :        0,     3,     2,     3,     1,     4,     3,     2,     0,     3,
    1625             :        1,     1,     3,     3,     0,     2,     1,     1,     1,     1,
    1626             :        1,     3,     1,     3,     1,     4,     1,     2,     1,     3,
    1627             :        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
    1628             :        2,     3,     2,     1,     1,     1,     1,     1,     1,     4,
    1629             :        2,     5,     2,     1,     4,     4,     2,     2,     1,     1,
    1630             :        0,     2,     4,     3,     2,     1,     1,     3,     3,     2,
    1631             :        1,     3,     2,     1,     1,     1,     1,     2,     2,     3,
    1632             :        1,     3,     1,     1,     1,     1,     1,     1,     1,     2,
    1633             :        2,     2,     2,     0,     2,     1,     6,     4,     1,     1,
    1634             :        1,     4,     4,     4,     4,     1,     1,     1,     1,     1,
    1635             :        1,     1,     1,     1,     1,     6,     1,     1,     1,     1,
    1636             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1637             :        1,     1,     1,     3,     3,     3,     4,     4,     4,     4,
    1638             :        4,     4,     4,     1,     1,     1,     1,     1,     1,     1,
    1639             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1640             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1641             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1642             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1643             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1644             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1645             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1646             :        1,     3,     3,     3,     1,     1,     1,     1,     1,     4,
    1647             :        1,     1,     1,     1,     0,     2,     4,     0,     1,     6,
    1648             :        1,     1,     1,     1,     1,     2,     2,     5,     1,     1,
    1649             :        0,     1,     8,     1,     1,     2,     2,     1,     1,     1,
    1650             :        1,     0,     1,     2,     3,     1,     3,     1,     3,     0,
    1651             :        1,     0,     1,     0,     1,     4,     1,     3,     3,     1,
    1652             :        2,     0,     1,     3,     1,     1,     1,     1,     2,     1,
    1653             :        2,     2,     4,     1,     1,     1,     2,     1,     2,     3,
    1654             :        2,     2,     3,     0,     2,     4,     0,     3,     1,     3,
    1655             :        0,     1,     1,     2,     2,     1,     1,     1,     5,     4,
    1656             :        5,     1,     1,     1,     1,     1,     1,     1,     1,     1,
    1657             :        1,     1,     1,     1,     1,     1,     1,     1,     1,     5,
    1658             :        7,     0,     5,     1,     5,     1,     1,     1,     5,     1,
    1659             :        1,     1,     1,     1,     1,     1,     2,     1,     1,     0,
    1660             :        1,     1,     2,     4,     5,     5,     1,     1,     4,     1,
    1661             :        1,     1,     3,     1,     4,     1,     1,     4,     4,     0,
    1662             :        1,     1,     1,     1,     1,     1,     6,     1,     1,     1,
    1663             :        1,     1,     1,     3,     1,     1,     1,     1,     2,     2,
    1664             :        1,     3,     3,     1,     3,     3,     1,     1,     1,     1,
    1665             :        2,     1,     1,     2,     1,     1,     1,     1,     1,     1,
    1666             :        1,     2,     1,     2,     2,     2,     3,     1,     3,     5,
    1667             :        7,     1,     3,     3,     1,     3,     5,     3,     1,     3,
    1668             :        3,     1,     1,     1,     1,     1,     1,     3,     3,     1,
    1669             :        1,     2,     1,     2,     1,     1,     1,     7,     1,     1,
    1670             :        0,     1,     1,     1,     1,     1,     0,     2,     7,     4,
    1671             :        1,     1,     4,     6,     6,     6,     4,     4,     3,     3,
    1672             :        2,     1,     1,     1,     1,     2,     1,     1,     1,     3,
    1673             :        3,     3,     1,     1,     3,     5,     7,     7,     1,     1,
    1674             :        1,     0,     3,     0,     1,     3,     2,     1,     1,     1,
    1675             :        1,     1,     2,     2,     3,     3,     2,     1,     0,     1,
    1676             :        3,     0,     1,     3,     2,     0,     1,     1,     1,     1,
    1677             :        1,     4,     4,     2,     3,     3,     2,     4,     4,     3,
    1678             :        1,     5,     4,     2,     2,     3,     2,     1,     4,     2,
    1679             :        1,     1,     0,     3,     5,     2,     2,     2,     1,     1,
    1680             :        1,     1,     4,     1,     1,     1,     2,     1,     1,     3,
    1681             :        3,     0,     3,     3,     2,     1,     1,     1,     1,     1,
    1682             :        1,     4,     4,     4,     1,     1,     5,     4,     1,     2,
    1683             :        4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
    1684             :        2,     4,     0,     2,     1,     1,     1,     1,     2,     1,
    1685             :        3,     0,     2,     1,     1,     3,     9,     0,     2,     1,
    1686             :        1,     2,     1,     1,     2,     0,     2,     1,     3,     0,
    1687             :        3,     1,     1,     0,     2,     1,     5,     1,     3,     1,
    1688             :        1,     2,     4,     4,     4,     4,     1,     1,     1,     1,
    1689             :        1,     1
    1690             : };
    1691             : 
    1692             : /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
    1693             :    Performed when YYTABLE doesn't specify something else to do.  Zero
    1694             :    means the default is an error.  */
    1695             : static const yytype_uint16 yydefact[] =
    1696             : {
    1697             :       70,    70,     0,   749,     0,   443,   589,   228,   224,   225,
    1698             :      226,   227,    70,   715,   468,   463,     0,     0,     0,     0,
    1699             :        0,   334,   332,    92,     0,     0,   261,     0,     0,    70,
    1700             :      611,   464,   465,   260,     0,     0,    95,   469,   466,     0,
    1701             :        0,   262,     0,     0,   610,   259,   302,     0,   313,   717,
    1702             :        0,   314,   315,   312,   303,   309,   301,   294,   316,   304,
    1703             :      716,   308,   311,   310,   305,   317,   306,     0,   307,   547,
    1704             :      548,   549,   318,   319,   325,   322,   321,   323,   718,   328,
    1705             :      329,   324,   326,   320,   327,   295,   330,   335,   336,   333,
    1706             :      291,   331,   338,   339,   340,   341,   356,   342,   343,   344,
    1707             :      345,   351,   346,   292,   293,   353,   352,   357,   337,   358,
    1708             :      354,   359,   355,   290,   347,   348,   349,   350,   360,   467,
    1709             :      476,   475,   474,   473,   472,   471,   470,   489,   490,   491,
    1710             :      492,   486,   487,     0,     0,     0,     0,   263,   264,   265,
    1711             :      266,   267,   268,   269,   270,   271,     0,     0,   380,   381,
    1712             :      388,   389,     0,   185,   186,   183,   184,   188,   187,     0,
    1713             :        0,     0,     2,     5,     6,     7,     8,     0,     4,    79,
    1714             :       72,    73,    74,    75,    70,   162,    76,    77,    78,    81,
    1715             :      164,   166,   168,   170,   754,   160,   172,     0,   193,   173,
    1716             :      198,   199,   179,   205,   177,   210,   178,   213,   174,   175,
    1717             :      176,   522,   257,   238,   536,   245,   246,   247,   240,   239,
    1718             :      527,   256,   529,     0,     0,     0,     0,     0,     0,     0,
    1719             :      285,   288,   296,     0,   297,   283,   286,   298,   284,   287,
    1720             :      289,   299,   532,     0,   365,   366,     0,   367,     0,   368,
    1721             :      272,     0,   461,   477,   478,     0,   462,     0,   530,   534,
    1722             :      535,   537,   540,   543,   581,   552,   546,   554,   555,   583,
    1723             :       91,   582,   584,   586,   592,   585,   590,   595,   596,   594,
    1724             :      601,     0,   602,   603,   604,   605,   528,   633,   531,   719,
    1725             :      720,   724,   725,   258,     9,    70,     0,     0,   510,     0,
    1726             :       81,     0,   511,   513,   516,   521,     0,    91,   748,     0,
    1727             :        0,   455,     0,   456,   457,     0,     0,     0,     0,    70,
    1728             :        0,    71,   312,   167,     0,     0,     0,    83,     0,    95,
    1729             :        0,     0,     0,     0,     0,   217,   747,     0,     0,    53,
    1730             :       42,    51,    42,    56,    42,     0,    48,    49,   190,     0,
    1731             :       93,    96,    97,     0,     0,     0,   218,   632,     0,   628,
    1732             :      627,   626,     0,     0,     0,     0,     0,   600,     0,     0,
    1733             :        0,    70,   746,   742,   739,     0,     0,     0,     0,     0,
    1734             :        0,   539,   538,     1,     3,     0,     0,     0,   519,     0,
    1735             :      192,   196,   197,   204,   209,   212,    70,    70,    70,   215,
    1736             :      214,   216,   182,    90,     0,   229,   230,   231,   232,     0,
    1737             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1738             :       95,     0,     0,     0,     0,     0,     0,     0,   553,     0,
    1739             :        0,     0,   593,     0,   521,     0,   755,   519,   161,   219,
    1740             :      519,   519,   533,   750,   444,   300,   454,   272,     0,     0,
    1741             :       80,   273,   453,    70,    95,   509,     0,     0,   715,   717,
    1742             :      716,   718,   639,   634,   638,     0,   523,     0,   582,     0,
    1743             :        0,     0,    42,   791,     0,   107,     0,     0,    47,     0,
    1744             :       55,    54,    52,     0,     0,     0,   203,     0,   111,     0,
    1745             :      112,   220,   233,   222,     0,   582,   622,     0,   623,   624,
    1746             :      621,     0,     0,     0,     0,     0,     0,     0,     0,    42,
    1747             :        0,   571,     0,   571,     0,   598,   599,   332,   253,   254,
    1748             :      328,   329,   324,   249,   331,   251,     0,   250,   248,   252,
    1749             :       61,     0,     0,     0,     0,   740,     0,    70,   742,   728,
    1750             :        0,     0,   571,     0,   571,   363,   371,   373,   372,     0,
    1751             :      370,     0,     0,     0,   208,   206,   200,   200,   520,     0,
    1752             :      181,     0,   169,   171,   211,   275,     0,   745,   574,   744,
    1753             :        0,     0,   578,     0,     0,     0,     0,   274,     0,     0,
    1754             :        0,   409,   397,   398,   361,   399,   400,   374,   382,     0,
    1755             :        0,     0,   485,   362,     0,   483,   541,   542,   544,   545,
    1756             :      551,   550,   588,   587,   591,     0,   512,     0,    88,     0,
    1757             :        0,     0,     0,   446,     0,     0,     0,     0,     0,     0,
    1758             :      459,     0,     0,     0,   759,   760,     0,     0,    70,    84,
    1759             :      108,     0,    85,   104,   106,   223,   715,     0,    38,     0,
    1760             :       50,   189,   243,     0,     0,   110,   107,     0,     0,   625,
    1761             :      235,     0,   620,     0,   616,     0,     0,     0,   630,   632,
    1762             :      629,   631,   107,    98,     0,   244,   241,   242,     0,   237,
    1763             :        0,     0,     0,   609,     0,     0,     0,     0,     0,     0,
    1764             :      745,   743,   727,    90,   734,     0,   193,   198,   205,   210,
    1765             :        0,   731,     0,   729,   721,   723,   722,   369,     0,     0,
    1766             :        0,     0,     0,   195,   194,    82,   157,   159,   156,   158,
    1767             :      165,   276,     0,    70,     0,     0,   277,     0,   281,     0,
    1768             :        0,   282,   278,     0,   280,   279,     0,   416,   411,     0,
    1769             :      410,     0,     0,   377,     0,   481,   481,     0,   612,    87,
    1770             :        0,   515,   514,   518,   109,   517,   450,   445,     0,     0,
    1771             :      715,   635,   700,   658,   708,   692,   692,   705,   703,   699,
    1772             :      658,   692,   704,   698,   658,   658,   658,     0,     0,   661,
    1773             :        0,   661,   661,   701,   658,   707,     0,     0,   524,   525,
    1774             :      640,   641,   657,   643,   680,   647,   687,   648,   690,   691,
    1775             :      649,   650,   651,     0,     0,   460,     0,     0,     0,    19,
    1776             :        0,    11,    13,     0,    14,     0,     0,   761,   763,   765,
    1777             :      762,     0,   147,     0,    43,     0,     0,     0,     0,   133,
    1778             :      134,   751,   506,   507,   144,   140,     0,   148,   221,   234,
    1779             :        0,   619,   618,     0,     0,     0,   103,     0,    86,   572,
    1780             :      573,     0,   606,   582,     0,    70,   488,   741,   182,    70,
    1781             :        0,   726,   394,   393,     0,   191,   207,     0,   201,   577,
    1782             :      190,     0,   575,   568,   579,   580,     0,     0,     0,    61,
    1783             :      412,   408,   383,   375,   377,     0,     0,   387,   378,   458,
    1784             :        0,   484,   479,     0,    89,   451,     0,   448,   452,     0,
    1785             :        0,     0,     0,     0,   652,   659,     0,   697,   696,   706,
    1786             :        0,     0,     0,   676,   695,   711,   711,     0,     0,   653,
    1787             :      656,   686,     0,   683,   662,   658,   658,   673,   689,     0,
    1788             :        0,   684,   558,   559,   560,   557,   692,   556,   658,     0,
    1789             :      567,   714,   526,     0,   643,   644,   646,   614,   613,    70,
    1790             :        0,    20,    10,     0,     0,    16,    40,     0,   764,     0,
    1791             :      105,    37,   753,    59,    45,    57,    60,     0,   499,   144,
    1792             :        0,     0,     0,   495,   500,   499,   493,   494,   501,     0,
    1793             :      137,     0,    35,     0,   142,    94,     0,   154,   615,   617,
    1794             :      632,    99,   102,   100,   101,   236,     0,     0,     0,   255,
    1795             :       62,    63,    67,    67,     0,   733,     0,   735,   737,   738,
    1796             :      736,   732,   730,   390,     0,     0,     0,     0,     0,   413,
    1797             :        0,   379,   385,   386,     0,   481,   447,   450,   637,   636,
    1798             :        0,   654,   661,     0,     0,   679,   661,     0,     0,   709,
    1799             :      710,   655,   661,   665,     0,     0,     0,   674,     0,   675,
    1800             :      685,   661,   565,   564,     0,     0,   645,     0,     0,    12,
    1801             :        0,    15,     0,    39,   767,   766,   757,     0,     0,    44,
    1802             :      146,   144,   135,     0,     0,   502,     0,   752,     0,   143,
    1803             :       35,     0,    70,   401,   607,   608,   597,    70,    68,    69,
    1804             :       66,    65,     0,   180,     0,   377,   391,   202,   576,   569,
    1805             :        0,   715,   417,   419,   643,   425,   424,   415,   414,     0,
    1806             :      376,   384,    61,   480,   449,   660,   671,   693,     0,   702,
    1807             :      682,     0,     0,   672,   666,   667,   668,   669,   670,   664,
    1808             :      663,   677,   661,   678,   688,   658,   562,   566,   642,    34,
    1809             :        0,    31,     0,    27,     0,     0,    22,    17,     0,     0,
    1810             :      769,    58,     0,   145,   503,     0,   499,     0,   141,   149,
    1811             :      151,   150,   155,     0,    61,   402,    64,   395,   396,   392,
    1812             :        0,     0,   420,     0,     0,     0,     0,   421,   426,   429,
    1813             :      427,     0,     0,   712,   713,   681,   563,     0,    21,    70,
    1814             :       24,    25,    26,    23,    18,    29,    41,   138,   138,   758,
    1815             :      780,     0,   756,   773,    46,   504,    70,     0,   497,   505,
    1816             :      498,    36,     0,   407,   403,   405,     0,   127,   570,   418,
    1817             :        0,     0,   435,     0,   433,   437,   430,   428,   431,     0,
    1818             :      423,   422,   482,   694,     0,     0,     0,   136,   139,   136,
    1819             :      136,   136,   781,     0,     0,    70,   496,     0,   153,   152,
    1820             :        0,     0,     0,   113,   128,   436,   438,     0,     0,   440,
    1821             :      441,     0,    32,    28,     0,     0,     0,     0,     0,   771,
    1822             :      772,   770,    70,   774,     0,   779,   768,   775,     0,   404,
    1823             :      406,   129,     0,   122,   114,   432,   434,   439,   442,     0,
    1824             :       30,   788,   785,   787,   790,   783,   784,   786,   789,   782,
    1825             :        0,    70,   508,     0,   131,     0,   125,     0,   132,   123,
    1826             :        0,   163,     0,   777,   130,   120,   121,   115,   118,   119,
    1827             :      116,    33,    70,     0,   117,   126,   776,   778,     0,   124
    1828             : };
    1829             : 
    1830             : /* YYDEFGOTO[NTERM-NUM].  */
    1831             : static const yytype_int16 yydefgoto[] =
    1832             : {
    1833             :       -1,   161,  1255,   163,   164,   790,   791,   792,  1041,  1172,
    1834             :      793,  1127,   794,  1059,   627,   165,  1043,   470,   166,  1049,
    1835             :      335,   336,   337,   944,   945,   668,   980,   981,  1070,   167,
    1836             :      168,   169,   170,   171,   172,   173,   288,   597,   174,   175,
    1837             :      176,   177,   343,   652,   653,   973,   178,   622,   623,   619,
    1838             :      289,   445,   479,  1263,  1264,  1303,  1300,  1297,  1288,  1289,
    1839             :     1285,  1304,  1233,  1284,  1234,   635,   636,   809,   961,  1219,
    1840             :      964,   948,   620,   967,  1139,  1063,   700,   180,  1253,   181,
    1841             :      182,   183,   184,   185,   674,   186,   187,   188,   189,   190,
    1842             :      191,   192,   693,   193,   194,   544,   195,   196,   197,   198,
    1843             :      394,   199,   200,   201,   480,   481,   624,   202,   639,   203,
    1844             :      204,   205,   206,   207,   208,   515,   516,   517,   209,   210,
    1845             :      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    1846             :      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
    1847             :      231,   232,   233,   234,   537,   538,   539,   722,   867,   235,
    1848             :      236,   577,   863,  1090,   868,   237,   238,  1075,   239,   844,
    1849             :     1076,  1193,   574,   575,  1144,  1145,  1194,  1195,  1196,   576,
    1850             :      718,   859,  1087,   719,   720,   860,  1082,  1083,  1210,  1088,
    1851             :     1089,  1157,  1202,  1159,  1160,  1203,  1265,  1204,  1205,  1211,
    1852             :      305,   306,   737,   876,   877,   307,   308,   240,   241,   242,
    1853             :      243,   871,   584,   244,   581,   245,   246,   247,   958,  1188,
    1854             :     1189,   959,   812,   813,   814,  1190,   292,   293,   294,   732,
    1855             :      295,   549,   296,   248,   455,   767,   249,   250,   251,   252,
    1856             :      253,   254,   255,   256,   418,   591,   257,   258,   259,   518,
    1857             :      919,  1117,   920,   921,   560,   565,   569,   585,   562,   563,
    1858             :      260,   261,   262,   263,   264,   925,   265,   266,   267,   268,
    1859             :      504,   505,   506,   269,   977,   270,   271,   272,   273,   274,
    1860             :      275,   491,   492,   483,   815,   349,   350,   351,   276,   453,
    1861             :      769,   924,   926,   770,   771,   884,   885,   903,   904,  1024,
    1862             :     1109,   772,   773,   774,   775,   776,   777,   887,   778,   779,
    1863             :      780,   781,  1019,   782,   277,   278,   279,   280,   281,   282,
    1864             :      528,   529,   680,   681,   363,   364,   526,   558,   559,   365,
    1865             :      327,   283,   962,   946,   284,  1130,   617,   801,   938,  1045,
    1866             :     1182,  1183,  1251,  1225,  1256,  1292,  1257,  1179,  1180,  1276,
    1867             :     1272,  1273,  1279,  1275,   464
    1868             : };
    1869             : 
    1870             : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    1871             :    STATE-NUM.  */
    1872             : #define YYPACT_NINF -1155
    1873             : static const yytype_int16 yypact[] =
    1874             : {
    1875             :     2400,  1449,   127, -1155,   142,   448, -1155, -1155, -1155, -1155,
    1876             :    -1155, -1155,  3034,   264, -1155, -1155,   193,    82,   198,   273,
    1877             :       20, -1155, -1155, -1155,   189,   279, -1155,   301,   590,   380,
    1878             :    -1155, -1155, -1155, -1155,   399,   276,    96, -1155, -1155,   436,
    1879             :      439, -1155,   279,   433, -1155, -1155, -1155,   468, -1155,   475,
    1880             :      488, -1155, -1155,   413, -1155, -1155, -1155, -1155, -1155, -1155,
    1881             :      500, -1155, -1155, -1155, -1155, -1155, -1155,   528, -1155, -1155,
    1882             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,   545, -1155,
    1883             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1884             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1885             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1886             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1887             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1888             :    -1155, -1155, -1155,   583,  4592,   610,   617, -1155, -1155, -1155,
    1889             :    -1155, -1155, -1155, -1155, -1155, -1155,   626,   632, -1155, -1155,
    1890             :    -1155, -1155,   650, -1155, -1155, -1155, -1155, -1155, -1155,  7793,
    1891             :     7793,   521,   527, -1155, -1155, -1155, -1155,    80, -1155,   493,
    1892             :    -1155, -1155, -1155, -1155,   136,   167, -1155, -1155, -1155, -1155,
    1893             :      575, -1155, -1155,   368,   372, -1155, -1155,  4893, -1155, -1155,
    1894             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1895             :    -1155, -1155,   473, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1896             :    -1155, -1155, -1155,   681,   688,   693,   705,   712,   715,   717,
    1897             :    -1155, -1155, -1155,   720, -1155, -1155, -1155, -1155, -1155, -1155,
    1898             :    -1155, -1155, -1155,   445, -1155, -1155,   734, -1155,   744, -1155,
    1899             :      453,   747, -1155, -1155, -1155,   764, -1155,   779, -1155, -1155,
    1900             :    -1155, -1155, -1155,  -158,   144,   760, -1155, -1155, -1155, -1155,
    1901             :      477, -1155,   480, -1155,   751, -1155, -1155, -1155, -1155, -1155,
    1902             :    -1155,   796, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1903             :    -1155, -1155, -1155, -1155, -1155,  1449,   798,   804, -1155,   726,
    1904             :       91,    77, -1155, -1155,   727, -1155,   148,    13, -1155,   805,
    1905             :      502, -1155,  8398, -1155, -1155,   672,   806,   807,   808,  2717,
    1906             :      361, -1155, -1155, -1155,   794,   -10,  7213, -1155,  7213,    -9,
    1907             :      433,   433,   800,   433,   105, -1155, -1155,   746,   724, -1155,
    1908             :      828, -1155,   828, -1155,   828,   736,   827, -1155,    78,  7213,
    1909             :    -1155, -1155, -1155,  1158,  7213,  4302, -1155,   116,   723, -1155,
    1910             :    -1155, -1155,  7213,  7213,  7213,   433,  7213,  7213,  5183,  7213,
    1911             :     5473,  3351, -1155,   320, -1155,   593,  7213,  7213,   830,   801,
    1912             :     7213, -1155, -1155, -1155, -1155,  5763,   837,  7213,   813,  4893,
    1913             :    -1155, -1155, -1155, -1155, -1155, -1155,   380,  3351,  3351, -1155,
    1914             :    -1155, -1155, -1155, -1155,   279, -1155, -1155, -1155, -1155,   838,
    1915             :     7213,  7213,  7213,  7213,  7213,  6053,  7213,   117,  7213,  7213,
    1916             :       96,  7503,  6343,  7503,  7503,  7503,  7503,   753, -1155,  7213,
    1917             :      100,   433, -1155,  7213,   840,  5763, -1155,   813, -1155, -1155,
    1918             :      813,   813, -1155, -1155, -1155, -1155, -1155, -1155,   842,   433,
    1919             :    -1155, -1155, -1155,  2717,    96, -1155,    77,   833,   834, -1155,
    1920             :    -1155, -1155, -1155, -1155, -1155,   816,   477,   844,   713,   849,
    1921             :     7213,   851,   828, -1155,  -114,   714,   105,   518, -1155,   104,
    1922             :    -1155, -1155, -1155,   433,   600,   783, -1155,    30, -1155,   201,
    1923             :      853, -1155,    28, -1155,   477,   721, -1155,  7213, -1155, -1155,
    1924             :      -11,   856,  6633,   835,   839,   104,    32,    33,    41,   828,
    1925             :      525,   -13,   539,   110,   789, -1155, -1155,   790, -1155, -1155,
    1926             :      792,   793,   797,   865,   799, -1155,   802, -1155, -1155,   477,
    1927             :      -28,  5473,    13,  -140,  7213, -1155,   628,  3351,   629, -1155,
    1928             :      593,   557,   477,   584,    64, -1155,   473, -1155, -1155,   868,
    1929             :    -1155,    75,   563,  5473, -1155, -1155,   107,    40, -1155,   768,
    1930             :    -1155,   405, -1155,   368, -1155, -1155,   873,   263, -1155, -1155,
    1931             :      876,   877, -1155,   627,   633,   879,   880, -1155,   638,   882,
    1932             :      883,   861, -1155, -1155, -1155, -1155, -1155,   884,   477,    68,
    1933             :     7213,   886,   144, -1155,   111,   532, -1155, -1155,  -158,  -158,
    1934             :    -1155, -1155, -1155, -1155, -1155,    71, -1155,   566, -1155,   105,
    1935             :      105,   105,  7213,   888,  1158,   866,    83,   858,   858,   433,
    1936             :    -1155,   889,   479,   862, -1155, -1155,   803,   159,  3351, -1155,
    1937             :    -1155,    50,   891, -1155, -1155, -1155, -1155,   577, -1155,   771,
    1938             :    -1155, -1155, -1155,   197,   518, -1155,   714,  7213,   104, -1155,
    1939             :    -1155,   433,   477,  7213, -1155,  7213,   120,   885, -1155,   885,
    1940             :    -1155, -1155,   118, -1155,   592, -1155, -1155, -1155,   105, -1155,
    1941             :     7213,  7213,  7213, -1155,  7213,  7213,  7213,   867,   901,  7213,
    1942             :      477, -1155, -1155,    98, -1155,  4893,   903,   905,   908,   911,
    1943             :       60, -1155,   675, -1155, -1155, -1155, -1155, -1155,   801,  5763,
    1944             :      647,   841,  7213, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1945             :    -1155, -1155,  7213,   380,  7213,  7213, -1155,  7213, -1155,  7213,
    1946             :     7213, -1155, -1155,  7213, -1155, -1155,  7213, -1155,   615,   918,
    1947             :    -1155,   900,   920,   311,   921,   696,   696,  7213, -1155, -1155,
    1948             :     5763, -1155, -1155,   726, -1155,   726,   801, -1155,   852,   914,
    1949             :      922, -1155, -1155,    49, -1155,   928,   928,   832,   935, -1155,
    1950             :       52,   928, -1155, -1155,   936,   936,   162,   936,   936,   939,
    1951             :       62,   939,   939, -1155,   184, -1155,   356,   940, -1155, -1155,
    1952             :    -1155,   904, -1155,   751, -1155, -1155, -1155, -1155, -1155, -1155,
    1953             :    -1155, -1155, -1155,   941,   943, -1155,   945,   863,   864, -1155,
    1954             :      599, -1155, -1155,   946, -1155,  8040,   768, -1155, -1155,   855,
    1955             :    -1155,   843,   372,   518, -1155,   104,    87,    99,   809,   947,
    1956             :      589,   195, -1155, -1155, -1155,   195,   109,   881, -1155, -1155,
    1957             :      952,   477,   477,  7213,   931,   104, -1155,  6923,    50,   477,
    1958             :      477,    72,    24,   108,    73,  3668, -1155, -1155,    79,  3985,
    1959             :     7213, -1155, -1155, -1155,   956, -1155, -1155,   942,   643,   532,
    1960             :      902,   173,   477, -1155, -1155, -1155,   960,   961,   929,   869,
    1961             :    -1155, -1155, -1155,   963,   311,   683,   686, -1155, -1155, -1155,
    1962             :      893, -1155, -1155,   664, -1155,   473,   604, -1155, -1155,    85,
    1963             :       85,   950,   936,   706, -1155, -1155,   953, -1155, -1155, -1155,
    1964             :      955,   936,   708, -1155, -1155,   -49,   -49,   936,   711, -1155,
    1965             :    -1155, -1155,   962, -1155, -1155,   200,    67, -1155, -1155,   936,
    1966             :      716, -1155, -1155, -1155, -1155, -1155,   928, -1155,   936,   857,
    1967             :    -1155, -1155, -1155,   870,   751, -1155, -1155, -1155, -1155,  3351,
    1968             :      983, -1155, -1155,   479,   104, -1155,   847,   104, -1155,   931,
    1969             :    -1155, -1155, -1155, -1155,    92, -1155, -1155,    99,    56,   986,
    1970             :      197,   197,   915, -1155, -1155,   442, -1155, -1155,   897,   916,
    1971             :    -1155,   977,  1001,   979, -1155, -1155,   966,   932, -1155,   477,
    1972             :    -1155, -1155, -1155, -1155,   477, -1155,  7213,  1009,  1010, -1155,
    1973             :     1011, -1155,   152,    93,   101, -1155,  5763, -1155, -1155, -1155,
    1974             :    -1155, -1155, -1155,   944,  1003,  7213,  7213,  7213,   106,   345,
    1975             :     7213, -1155, -1155, -1155,  1014,   696, -1155,   801, -1155, -1155,
    1976             :     1015, -1155,   939,   684,  1016, -1155,   939,   899,   906, -1155,
    1977             :    -1155, -1155,   939,   728,  1018,   936,   752, -1155,   936, -1155,
    1978             :    -1155,   939, -1155,   898,   421,   999, -1155,    86,   104, -1155,
    1979             :      689,   531,   984, -1155,  1021, -1155,   778,    87,   954, -1155,
    1980             :    -1155,  1020,   589,   197,   948, -1155,   197, -1155,   104, -1155,
    1981             :     1001,  8171,  3351,   729,   477, -1155, -1155,  3668, -1155, -1155,
    1982             :    -1155, -1155,  7213, -1155,   408,   311, -1155, -1155,   477, -1155,
    1983             :     1031,   133,  1032, -1155,   751, -1155, -1155, -1155, -1155,   732,
    1984             :    -1155,   477,   869, -1155, -1155, -1155, -1155, -1155,  1017, -1155,
    1985             :    -1155,   895,   907, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    1986             :    -1155, -1155,   939, -1155, -1155,   936, -1155, -1155, -1155, -1155,
    1987             :      694, -1155,   957,  1047,   491,   433, -1155, -1155,   951,   449,
    1988             :      985, -1155,   958, -1155,   589,   197,   425,   707, -1155,  1049,
    1989             :    -1155, -1155,   372,   861,   869, -1155, -1155, -1155, -1155, -1155,
    1990             :     7213,   106, -1155,   782,   810,   755,   757,   763, -1155, -1155,
    1991             :    -1155,  1056,  1057, -1155, -1155, -1155, -1155,   959, -1155,  3351,
    1992             :    -1155, -1155, -1155,   473, -1155,  1059, -1155,   -22,     7,   449,
    1993             :    -1155,   814, -1155,   821, -1155,   589,  3351,  1064, -1155, -1155,
    1994             :    -1155, -1155,  8171, -1155,  1063, -1155,  1038,   765, -1155, -1155,
    1995             :      260,   325, -1155,   761, -1155, -1155, -1155, -1155, -1155,    11,
    1996             :    -1155, -1155, -1155, -1155,   433,    88,   104,  1041, -1155,  1041,
    1997             :     1041,  1041, -1155,   474,  1071,  1766,   372,   104, -1155, -1155,
    1998             :      861,  1072,  1053,   770, -1155, -1155, -1155,   782,   823, -1155,
    1999             :    -1155,   784,  1076, -1155,   767,  1060,  1061,  1060,  1062, -1155,
    2000             :    -1155, -1155,  3351, -1155,   829, -1155, -1155, -1155,   769, -1155,
    2001             :    -1155,   776,   739,  1022, -1155, -1155, -1155, -1155, -1155,   104,
    2002             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2003             :       90,  2400, -1155,  1066, -1155,  -157,   473,   -86, -1155, -1155,
    2004             :      772, -1155,  1083, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2005             :      739, -1155,  2083,  -157, -1155,   473, -1155, -1155,   785, -1155
    2006             : };
    2007             : 
    2008             : /* YYPGOTO[NTERM-NUM].  */
    2009             : static const yytype_int16 yypgoto[] =
    2010             : {
    2011             :    -1155, -1155,    58, -1155, -1155, -1155,   160, -1155, -1155, -1155,
    2012             :       51, -1155, -1155,    35,  -902, -1155, -1155,  -245, -1155, -1155,
    2013             :    -1155, -1155,   622, -1155,    53,  -790, -1155,    31,   114,   -23,
    2014             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,  -173,  -130,
    2015             :    -1155, -1155,  -120, -1155,   274, -1155, -1155,   467,   299,  -175,
    2016             :      132,     0,   499, -1155, -1155, -1155, -1155,  -199, -1155, -1155,
    2017             :    -1155, -1155, -1155, -1155, -1155,   289, -1155, -1155,  -774,   -72,
    2018             :    -1155,  -615, -1155, -1155, -1155, -1155, -1155, -1155, -1155,  1095,
    2019             :      722,   725,     1,  -771, -1155, -1155,  -154,  -153, -1155,  -152,
    2020             :      934, -1155,   564,  -147, -1155, -1155,  -144, -1155,   938, -1155,
    2021             :    -1155, -1155, -1155,   -18, -1155,   478, -1155,  -359, -1155, -1155,
    2022             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,  -982,
    2023             :    -1155,  -297, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2024             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2025             :    -1155, -1155, -1155, -1155,   422,   426, -1155, -1155,  -797, -1155,
    2026             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2027             :    -1155,  -324, -1155, -1155, -1155, -1155, -1155,  -112, -1155,  -115,
    2028             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155,   -32, -1155, -1155,
    2029             :    -1155, -1155,    34, -1155, -1155, -1155, -1155,  -117, -1155, -1155,
    2030             :    -1155, -1155, -1155, -1155,   115, -1155, -1155,  -293, -1155, -1155,
    2031             :    -1155,  -665, -1155, -1155, -1155, -1155, -1155,  -291, -1155, -1155,
    2032             :    -1155,   166, -1155, -1155,  -707, -1155, -1155,   526,   178, -1155,
    2033             :     -257,   123,  -393, -1155,   811,   516, -1155,   766,   621,   371,
    2034             :      377,   730, -1155,     4, -1155, -1155, -1155, -1155, -1155,  -688,
    2035             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155,  -317,  -375,   253,
    2036             :       12,  -306, -1155, -1155, -1155,   878,   731, -1155, -1155, -1155,
    2037             :    -1155, -1155, -1155, -1155,   304, -1155, -1155, -1155, -1155, -1155,
    2038             :    -1155, -1155, -1155, -1155,   -40, -1155,   293,  -479,  -919,  -457,
    2039             :      337, -1155,  -842, -1155, -1155,  -708,  -591,  -718, -1155, -1155,
    2040             :    -1155, -1155, -1155, -1155, -1155, -1155, -1155,  -655, -1155, -1155,
    2041             :    -1155, -1155,   244, -1155,  -307, -1155, -1155, -1155, -1155, -1155,
    2042             :    -1155,   614, -1155,   306,   781,  -277,   619,  -491, -1155, -1155,
    2043             :    -1155,  -346, -1155, -1155, -1155, -1155, -1155, -1155, -1155, -1155,
    2044             :    -1155, -1155, -1155, -1155, -1155, -1155, -1154, -1155,   -31, -1155,
    2045             :    -1155,   -98, -1155, -1155, -1155
    2046             : };
    2047             : 
    2048             : /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    2049             :    positive, shift that token.  If negative, reduce the rule which
    2050             :    number is the opposite.  If YYTABLE_NINF, syntax error.  */
    2051             : #define YYTABLE_NINF -739
    2052             : static const yytype_int16 yytable[] =
    2053             : {
    2054             :      179,   290,   291,   348,   362,   436,   338,   325,   454,   437,
    2055             :      536,   438,   458,   297,   392,   651,   448,   432,   810,   341,
    2056             :      379,   380,   381,   540,   346,   556,   561,   383,   424,   566,
    2057             :      384,   570,  1040,   671,   632,  1044,   655,   656,   485,   500,
    2058             :      502,   963,   893,   907,   908,   657,   895,   896,   899,   531,
    2059             :      533,   691,   881,   342,   626,   881,   911,   393,   162,   287,
    2060             :      638,   872,  1238,   643,   983,   839,   662,  1001,   686,   999,
    2061             :      881,   547,   723,   621,   667,   728,   975,   979,   918,  1084,
    2062             :      688,   428,  1036,   573,  -180,   611,   525,   471,  1239,   472,
    2063             :     1119,   888,  1243,  1017,  1291,   976,   894,  1047,  1295,  1217,
    2064             :      949,   669,   947,  -733,   905,   692,   952,  1156,   466,   740,
    2065             :      808,   626,  -606,   942,   803,   726,   430,   375,   691,     6,
    2066             :      571,   625,   493,   825,   341,   347,  1068,  1293,  1220,   494,
    2067             :      626,   953,  1081,   614,   615,   616,  1120,   954,   375,   314,
    2068             :      475,   320,  1141,   572,   449,  1296,   315,    18,  1307,   741,
    2069             :      955,   727,   429,   298,  1069,   450,  1137,  -509,   342,   376,
    2070             :      321,   311,   628,   413,   414,   881,   900,   901,   299,   377,
    2071             :      388,  1201,   692,   451,   476,   640,  -509,   -90,   837,   976,
    2072             :      376,   431,   449,   633,   664,  1068,   424,   881,   654,   -90,
    2073             :     1072,    30,   -90,   450,   823,   943,   316,  1027,  1029,   460,
    2074             :      807,   318,   542,   881,   -90,   724,   550,  1298,   808,   424,
    2075             :     1033,   451,   444,  1069,   430,   906,   956,   613,   444,   798,
    2076             :       29,  -136,  1299,   347,   957,   317,   690,   960,    39,    40,
    2077             :     1018,   -90,  1084,  1218,  1048,    44,   -90,   449,   286,   449,
    2078             :      949,   -90,  1152,  1051,   286,   393,   -90,   717,   450,   393,
    2079             :      450,   -90,   598,   525,   658,  1201,   -90,   703,   449,   618,
    2080             :      449,  1032,  1218,   323,   424,   828,   451,  -300,   451,   450,
    2081             :      314,   450,    67,  1229,   322,   633,   319,   315,  1149,   431,
    2082             :      461,   462,   324,   465,   634,   290,   291,   451,   625,   451,
    2083             :      580,  1011,   419,   799,  1096,   393,   983,   297,  1100,   454,
    2084             :     1015,   840,  1161,   702,  1103,   795,  1021,   419,  1240,   419,
    2085             :      446,   452,   459,  1114,  1244,   499,  1241,   800,  1030,   882,
    2086             :     -180,   297,   891,   883,   604,  1258,   892,   326,   456,   536,
    2087             :      456,   819,   853,   419,   854,   855,  1052,  1028,   856,  -162,
    2088             :     1093,   857,   540,   287,   419,   651,  1116,   703,   419,   992,
    2089             :      419,   477,   419,   419,  1197,   482,   484,   490,   545,   833,
    2090             :     -582,   419,   523,   551,   496,   497,   498,  1290,   501,   503,
    2091             :      519,   520,   522,   675,   676,   677,   554,   875,   532,   534,
    2092             :      678,   594,   541,   679,   419,   849,   848,   388,   419,   484,
    2093             :      878,   419,   419,   419,  1165,   419,   388,   673,   388,   603,
    2094             :      388,   704,   339,   705,   452,   311,   452,  1166,  -162,  -162,
    2095             :      873,   912,   557,   557,   557,   557,   557,   557,   557,   340,
    2096             :      578,   579,  1008,  1009,   532,  -535,  -535,  -535,  -535,  -535,
    2097             :      419,   592,   897,   629,  1111,   595,   898,  1113,  1134,   344,
    2098             :      419,  1136,   345,  1245,   446,  1246,  1247,  1248,   153,   154,
    2099             :      155,   156,   157,   158,   909,   297,   300,   625,   910,   347,
    2100             :     1046,   817,   415,   416,   -90,   -90,   -90,   -90,   -90,   -90,
    2101             :     1025,   352,   557,   696,  1026,   952,   912,   826,   353,   -90,
    2102             :      -90,   -90,   -90,   -90,   -90,   153,   154,   155,   156,   157,
    2103             :      158,   354,   395,   419,   396,   397,   355,   398,   941,   642,
    2104             :      953,   697,   838,   356,   646,   626,   954,   301,   302,   303,
    2105             :      304,     7,     8,     9,    10,    11,   845,   953,   654,   955,
    2106             :     1185,   373,   786,   954,     2,  1186,     3,     4,   523,   659,
    2107             :      660,   357,   661,   522,   374,   698,   670,   660,   699,   661,
    2108             :      913,   914,   915,   663,   660,   393,   661,   916,   358,   695,
    2109             :      599,   787,   917,   600,   601,   532,  1122,   874,  1235,   393,
    2110             :     1207,   684,   660,  1187,   661,   361,   524,   768,   768,   784,
    2111             :      729,   730,   454,   454,  1123,   153,   154,   155,   156,   157,
    2112             :      158,   804,   805,   419,   788,   956,   359,  1170,   685,   660,
    2113             :     1124,   661,   557,   957,   301,   302,   303,   304,   865,   866,
    2114             :      393,   820,   956,   932,   933,   913,   914,   915,  1006,  1007,
    2115             :      957,   789,  1115,   366,   532,   811,   482,   917,   328,   802,
    2116             :      367,  1079,  1080,  1236,   378,  1208,   795,   628,  1171,   368,
    2117             :      628,   708,   709,   449,   710,   369,   788,   711,   709,   952,
    2118             :      710,  1125,   714,   709,   450,   710,  1085,  1086,   875,   482,
    2119             :      329,   846,   660,   370,   661,   821,   564,   822,   568,   386,
    2120             :      329,   878,   451,   789,   953,    69,    70,    71,  1005,   660,
    2121             :      954,   661,   829,   830,   831,  -499,   832,   484,   834,   387,
    2122             :      850,   670,   388,   955,   399,   986,   987,   988,  1097,  1098,
    2123             :      424,   400,   989,  1121,   805,   990,   401,   995,  1167,   805,
    2124             :      330,  1147,  1148,   331,   484,   982,  1177,  1178,   402,   985,
    2125             :      330,  1191,   805,   331,   532,   403,   851,   852,   404,   557,
    2126             :      405,   557,   557,   406,   332,   557,   333,   407,   557,  1249,
    2127             :     1250,   628,   733,   735,   332,  -364,   333,   408,     2,   532,
    2128             :        3,     4,  1104,  1105,  1106,  1107,  1108,   409,   334,   956,
    2129             :      410,   628,     7,     8,     9,    10,    11,   957,   334,     7,
    2130             :        8,     9,    10,    11,  1140,  1173,   547,   411,   437,  1153,
    2131             :      438,  1270,   805,  1282,   805,  1198,  1301,   805,   734,   734,
    2132             :      371,   372,   412,  1154,   586,   587,   648,   650,     2,   811,
    2133             :        3,     4,   588,   589,   417,   421,   936,   419,   420,   423,
    2134             :       26,   425,     7,     8,     9,    10,    11,     2,   426,     3,
    2135             :        4,   427,  -109,  1073,   434,   433,   984,   439,   440,   441,
    2136             :      447,     7,     8,     9,    10,    11,   463,   442,    33,   467,
    2137             :      468,   469,   474,  1154,   535,   969,   473,   495,   527,   974,
    2138             :      543,   548,   555,   590,   596,   602,   605,   606,   607,   608,
    2139             :       26,   609,   670,   610,   612,   618,   393,   631,   637,   641,
    2140             :      644,   647,    41,   665,  -558,   649,  -559,  -560,  -330,    45,
    2141             :      672,  -557,   687,  -556,   689,   524,   666,   701,    33,   742,
    2142             :      706,   444,   707,   712,   347,   713,   715,   572,   716,   721,
    2143             :      725,   736,   739,   785,   796,  1228,   803,   806,   824,   437,
    2144             :      743,   438,   797,  1286,   827,   836,   847,   835,  -735,   628,
    2145             :     -737,   744,    41,  -738,   745,   746,  -736,   841,   858,    45,
    2146             :      628,   747,   861,   862,   864,   869,   633,   879,   748,   811,
    2147             :     1037,   886,   811,   811,   870,   880,   889,   982,   890,   881,
    2148             :      749,  1305,   902,   939,   922,   927,   923,   928,   929,   934,
    2149             :      930,   931,   951,   750,   937,   751,   968,   970,   966,   950,
    2150             :      993,   994,   628,  -582,   475,   996,   997,   752,  1000,   998,
    2151             :     1004,   667,  1002,  1010,   753,  1003,  1013,  1012,  1014,  1016,
    2152             :      754,   755,  1022,  1034,  1035,  1023,  1038,  1031,  1064,  1042,
    2153             :     1050,   137,   138,   139,   140,   141,   142,   143,   144,   145,
    2154             :     1055,  1053,  1056,  1057,  1058,  1060,  1061,  1078,   557,   557,
    2155             :     1062,   756,  1091,  1065,  1066,  1077,  1067,  1092,  1074,  1095,
    2156             :     1099,  1101,  1110,  1112,  -561,  1118,   805,  1128,  1102,  1129,
    2157             :     1132,  1155,  1133,  1143,  1135,   811,  1150,  1151,   811,  1163,
    2158             :     1162,   137,   138,   139,   140,   141,   142,   143,   144,   145,
    2159             :     1169,  1164,  1176,  1168,  1192,  1207,  1181,  1208,  1209,  1184,
    2160             :     1212,  1213,  1216,  1142,  1223,  1206,  1224,  1227,  1230,  1214,
    2161             :     1231,  1232,  1237,   960,  1252,   571,  1261,  1262,  1267,  1269,
    2162             :     1268,  1200,  1281,  1283,   484,  1175,  1271,  1274,  1278,  1294,
    2163             :     1302,  1287,  1126,  1039,  1309,  1138,   630,  1071,  1146,   971,
    2164             :     1131,   816,   940,   738,  1308,   965,  1221,   313,   382,   552,
    2165             :      842,   694,   385,   553,   843,   818,  1260,   811,  1259,  1199,
    2166             :     1266,  1054,  1094,  1158,   783,   731,   757,   758,  1174,   457,
    2167             :      759,   760,   935,   761,   762,   763,   764,   978,   765,   766,
    2168             :     1020,   582,   422,   546,   683,   991,   530,   682,  1222,  1277,
    2169             :        0,   593,     0,     0,     0,     0,     0,     0,     0,     0,
    2170             :        0,   360,   557,     0,     2,     0,     3,     4,     0,   310,
    2171             :     1215,     0,     0,     0,  1242,     0,     0,     6,     7,     8,
    2172             :        9,    10,    11,     0,    13,     0,     0,  1226,     0,    14,
    2173             :        0,     0,     0,     0,    15,     0,     0,     0,     0,    16,
    2174             :        0,     0,     0,     0,     0,    18,    19,     0,     0,     0,
    2175             :        0,     0,    21,    22,     0,     0,     0,     0,     0,     0,
    2176             :        0,     0,     0,     0,     0,   179,    26,     0,     0,     0,
    2177             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2178             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
    2179             :       31,    32,     0,  1280,    33,     0,    34,     0,     0,     0,
    2180             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2181             :        0,     0,     0,     0,     0,    37,     0,     0,    38,     0,
    2182             :        0,   179,     0,     0,     0,     0,    39,    40,    41,     0,
    2183             :        0,     0,     0,    44,     0,    45,     0,     0,     0,     0,
    2184             :        0,     0,   179,     0,     0,     0,     0,     0,     0,    46,
    2185             :       47,    48,    49,    50,    51,    52,   312,    54,    55,    56,
    2186             :       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
    2187             :       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    2188             :       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
    2189             :       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
    2190             :       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
    2191             :      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
    2192             :      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    2193             :      127,   128,   129,   130,   131,   132,     0,   133,   134,     0,
    2194             :        0,   135,   136,     0,     0,     0,     0,     0,     0,     0,
    2195             :        0,     0,     0,     0,     0,     0,     0,   137,   138,   139,
    2196             :      140,   141,   142,   143,   144,   145,     0,     0,     0,     0,
    2197             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2198             :        0,   146,   147,   148,   149,     0,     0,     0,   150,   151,
    2199             :      152,     0,   285,     0,     0,     2,     0,     3,     4,     0,
    2200             :        5,     0,     0,     0,     0,     0,     0,     0,     6,     7,
    2201             :        8,     9,    10,    11,    12,    13,   159,   160,     0,   478,
    2202             :       14,     0,     0,     0,     0,    15,     0,     0,     0,     0,
    2203             :       16,     0,     0,     0,    17,     0,    18,    19,    20,     0,
    2204             :        0,     0,     0,    21,    22,     0,     0,     0,    23,    24,
    2205             :        0,     0,     0,     0,     0,     0,    25,    26,    27,     0,
    2206             :        0,     0,     0,     0,     0,    28,     0,     0,     0,     0,
    2207             :        0,     0,     0,    29,     0,     0,     0,     0,     0,     0,
    2208             :       30,    31,    32,     0,     0,    33,     0,    34,     0,     0,
    2209             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2210             :       35,     0,    36,     0,     0,     0,    37,     0,     0,    38,
    2211             :        0,     0,     0,     0,     0,     0,     0,    39,    40,    41,
    2212             :        0,    42,     0,    43,    44,     0,    45,     0,   286,     0,
    2213             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2214             :       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
    2215             :       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
    2216             :       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
    2217             :       76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
    2218             :       86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
    2219             :       96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
    2220             :      106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
    2221             :      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
    2222             :      126,   127,   128,   129,   130,   131,   132,     0,   133,   134,
    2223             :        0,     0,   135,   136,     0,     0,     0,     0,     0,     0,
    2224             :        0,     0,     0,     0,     0,     0,     0,     0,   137,   138,
    2225             :      139,   140,   141,   142,   143,   144,   145,     0,     0,     0,
    2226             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2227             :        0,     0,   146,   147,   148,   149,     0,     0,     0,   150,
    2228             :      151,   152,     0,     0,     0,     0,     0,     0,     0,     0,
    2229             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2230             :        0,   153,   154,   155,   156,   157,   158,   159,   160,     1,
    2231             :        0,     0,     2,     0,     3,     4,     0,     5,     0,     0,
    2232             :        0,     0,     0,     0,     0,     6,     7,     8,     9,    10,
    2233             :       11,    12,    13,     0,     0,     0,     0,    14,     0,     0,
    2234             :        0,     0,    15,     0,     0,     0,     0,    16,     0,     0,
    2235             :        0,    17,     0,    18,    19,    20,     0,     0,     0,     0,
    2236             :       21,    22,     0,     0,     0,    23,    24,     0,     0,     0,
    2237             :        0,     0,     0,    25,    26,    27,     0,     0,     0,     0,
    2238             :        0,     0,    28,     0,     0,     0,     0,     0,     0,     0,
    2239             :       29,     0,     0,     0,     0,     0,     0,    30,    31,    32,
    2240             :        0,     0,    33,     0,    34,     0,     0,     0,     0,     0,
    2241             :        0,     0,     0,     0,     0,     0,     0,    35,     0,    36,
    2242             :        0,     0,     0,    37,     0,     0,    38,     0,     0,     0,
    2243             :        0,     0,     0,     0,    39,    40,    41,     0,    42,     0,
    2244             :       43,    44,     0,    45,     0,     0,     0,     0,     0,     0,
    2245             :        0,     0,     0,     0,     0,     0,     0,    46,    47,    48,
    2246             :       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
    2247             :       59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
    2248             :       69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
    2249             :       79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
    2250             :       89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
    2251             :       99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
    2252             :      109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
    2253             :      119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
    2254             :      129,   130,   131,   132,     0,   133,   134,     0,     0,   135,
    2255             :      136,     0,     0,     0,     0,     0,     0,     0,  1254,     0,
    2256             :        0,     0,     0,     0,     0,   137,   138,   139,   140,   141,
    2257             :      142,   143,   144,   145,     0,     0,     0,     0,     0,     0,
    2258             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   146,
    2259             :      147,   148,   149,     0,     0,     0,   150,   151,   152,     0,
    2260             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2261             :        0,     0,     0,     0,     0,     0,     0,     0,   153,   154,
    2262             :      155,   156,   157,   158,   159,   160,     1,     0,     0,     2,
    2263             :        0,     3,     4,     0,     5,     0,     0,     0,     0,     0,
    2264             :        0,     0,     6,     7,     8,     9,    10,    11,    12,    13,
    2265             :        0,     0,     0,     0,    14,     0,     0,     0,     0,    15,
    2266             :        0,     0,     0,     0,    16,     0,     0,     0,    17,     0,
    2267             :       18,    19,    20,     0,     0,     0,     0,    21,    22,     0,
    2268             :        0,     0,    23,    24,     0,     0,     0,     0,     0,     0,
    2269             :       25,    26,    27,     0,     0,     0,     0,     0,     0,    28,
    2270             :        0,     0,     0,     0,     0,     0,     0,    29,     0,     0,
    2271             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2272             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2273             :        0,     0,     0,     0,    35,     0,    36,     0,     0,     0,
    2274             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2275             :        0,    39,    40,    41,     0,    42,     0,    43,    44,     0,
    2276             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2277             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2278             :       52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
    2279             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2280             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2281             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2282             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2283             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2284             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2285             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2286             :      132,     0,   133,   134,     0,  1306,   135,   136,     0,     0,
    2287             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2288             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2289             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2290             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2291             :        0,     0,     0,   150,   151,   152,     0,     0,     0,     0,
    2292             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2293             :        0,     0,     0,     0,     0,   153,   154,   155,   156,   157,
    2294             :      158,   159,   160,     1,     0,     0,     2,     0,     3,     4,
    2295             :        0,     5,     0,     0,     0,     0,     0,     0,     0,     6,
    2296             :        7,     8,     9,    10,    11,    12,    13,     0,     0,     0,
    2297             :        0,    14,     0,     0,     0,     0,    15,     0,     0,     0,
    2298             :        0,    16,     0,     0,     0,    17,     0,    18,    19,    20,
    2299             :        0,     0,     0,     0,    21,    22,     0,     0,     0,    23,
    2300             :       24,     0,     0,     0,     0,     0,     0,    25,    26,    27,
    2301             :        0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
    2302             :        0,     0,     0,     0,    29,     0,     0,     0,     0,     0,
    2303             :        0,    30,    31,    32,     0,     0,    33,     0,    34,     0,
    2304             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2305             :        0,    35,     0,    36,     0,     0,     0,    37,     0,     0,
    2306             :       38,     0,     0,     0,     0,     0,     0,     0,    39,    40,
    2307             :       41,     0,    42,     0,    43,    44,     0,    45,     0,     0,
    2308             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2309             :        0,    46,    47,    48,    49,    50,    51,    52,    53,    54,
    2310             :       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
    2311             :       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
    2312             :       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
    2313             :       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
    2314             :       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
    2315             :      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
    2316             :      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
    2317             :      125,   126,   127,   128,   129,   130,   131,   132,     0,   133,
    2318             :      134,     0,     0,   135,   136,     0,     0,     0,     0,     0,
    2319             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   137,
    2320             :      138,   139,   140,   141,   142,   143,   144,   145,     0,     0,
    2321             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2322             :        0,     0,     0,   146,   147,   148,   149,     0,     0,     0,
    2323             :      150,   151,   152,     0,     0,     0,     0,     0,     0,     0,
    2324             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2325             :        0,     0,   153,   154,   155,   156,   157,   158,   159,   160,
    2326             :      443,     0,     0,     2,     0,     3,     4,     0,   310,     0,
    2327             :        0,     0,     0,     0,     0,     0,     6,     7,     8,     9,
    2328             :       10,    11,    12,    13,     0,     0,     0,     0,    14,     0,
    2329             :        0,     0,     0,    15,     0,     0,     0,     0,    16,     0,
    2330             :        0,     0,     0,     0,    18,    19,     0,     0,     0,     0,
    2331             :        0,    21,    22,     0,     0,     0,    23,     0,     0,     0,
    2332             :        0,     0,     0,     0,    25,    26,     0,     0,     0,     0,
    2333             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2334             :        0,    29,     0,     0,     0,     0,     0,     0,    30,    31,
    2335             :       32,     0,     0,    33,     0,    34,     0,     0,     0,     0,
    2336             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2337             :      444,     0,     0,     0,    37,     0,     0,    38,     0,     0,
    2338             :        0,     0,     0,     0,     0,    39,    40,    41,     0,    42,
    2339             :        0,     0,    44,     0,    45,     0,   286,     0,     0,     0,
    2340             :        0,     0,     0,     0,     0,     0,     0,     0,    46,    47,
    2341             :       48,    49,    50,    51,    52,   312,    54,    55,    56,    57,
    2342             :       58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
    2343             :       68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
    2344             :       78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
    2345             :       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
    2346             :       98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
    2347             :      108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
    2348             :      118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
    2349             :      128,   129,   130,   131,   132,     0,   133,   134,     0,     0,
    2350             :      135,   136,     0,     0,     0,     0,     0,     0,     0,     0,
    2351             :        0,     0,     0,     0,     0,     0,   137,   138,   139,   140,
    2352             :      141,   142,   143,   144,   145,     0,     0,     0,     0,     0,
    2353             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2354             :      146,   147,   148,   149,     0,     0,     0,   150,   151,   152,
    2355             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2356             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   153,
    2357             :      154,   155,   156,   157,   158,   159,   160,   309,     0,     0,
    2358             :        2,     0,     3,     4,     0,   310,     0,     0,     0,     0,
    2359             :        0,     0,     0,     6,     7,     8,     9,    10,    11,   311,
    2360             :       13,     0,     0,     0,     0,    14,     0,     0,     0,     0,
    2361             :       15,     0,     0,     0,     0,    16,     0,     0,     0,     0,
    2362             :        0,    18,    19,     0,     0,     0,     0,     0,    21,    22,
    2363             :        0,     0,     0,    23,     0,     0,     0,     0,     0,     0,
    2364             :        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
    2365             :        0,     0,     0,     0,     0,     0,     0,     0,    29,     0,
    2366             :        0,     0,     0,     0,     0,    30,    31,    32,     0,     0,
    2367             :       33,     0,    34,     0,     0,     0,     0,     0,     0,     0,
    2368             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2369             :        0,    37,     0,     0,    38,     0,     0,     0,     0,     0,
    2370             :        0,     0,    39,    40,    41,     0,    42,     0,     0,    44,
    2371             :        0,    45,     0,     0,     0,     0,     0,     0,     0,     0,
    2372             :        0,     0,     0,     0,     0,    46,    47,    48,    49,    50,
    2373             :       51,    52,   312,    54,    55,    56,    57,    58,    59,    60,
    2374             :       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
    2375             :       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
    2376             :       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
    2377             :       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
    2378             :      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
    2379             :      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
    2380             :      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
    2381             :      131,   132,     0,   133,   134,     0,     0,   135,   136,     0,
    2382             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2383             :        0,     0,     0,   137,   138,   139,   140,   141,   142,   143,
    2384             :      144,   145,     0,     0,     0,     0,     0,     0,     0,     0,
    2385             :        0,     0,     0,     0,     0,     0,     0,   146,   147,   148,
    2386             :      149,     0,     0,     0,   150,   151,   152,     0,     0,     0,
    2387             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2388             :        0,     0,     0,     0,     0,     0,   153,   154,   155,   156,
    2389             :      157,   158,   159,   160,   309,     0,     0,     2,     0,     3,
    2390             :        4,     0,   310,     0,     0,     0,     0,     0,     0,     0,
    2391             :        6,     7,     8,     9,    10,    11,    12,    13,     0,     0,
    2392             :        0,     0,    14,     0,     0,     0,     0,    15,     0,     0,
    2393             :        0,     0,    16,     0,     0,     0,     0,     0,    18,    19,
    2394             :        0,     0,     0,     0,     0,    21,    22,     0,     0,     0,
    2395             :       23,     0,     0,     0,     0,     0,     0,     0,    25,    26,
    2396             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2397             :        0,     0,     0,     0,     0,    29,     0,     0,     0,     0,
    2398             :        0,     0,    30,    31,    32,     0,     0,    33,     0,    34,
    2399             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2400             :        0,     0,     0,     0,     0,     0,     0,     0,    37,     0,
    2401             :        0,    38,     0,     0,     0,     0,     0,     0,     0,    39,
    2402             :       40,    41,     0,    42,     0,     0,    44,     0,    45,     0,
    2403             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2404             :        0,     0,    46,    47,    48,    49,    50,    51,    52,   312,
    2405             :       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
    2406             :       64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
    2407             :       74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
    2408             :       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
    2409             :       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
    2410             :      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
    2411             :      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
    2412             :      124,   125,   126,   127,   128,   129,   130,   131,   132,     0,
    2413             :      133,   134,     0,     0,   135,   136,     0,     0,     0,     0,
    2414             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2415             :      137,   138,   139,   140,   141,   142,   143,   144,   145,     0,
    2416             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2417             :        0,     0,     0,     0,   146,   147,   148,   149,     0,     0,
    2418             :        0,   150,   151,   152,     0,     0,     0,     0,     0,     0,
    2419             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2420             :        0,     0,     0,   153,   154,   155,   156,   157,   158,   159,
    2421             :      160,   360,     0,     0,     2,     0,     3,     4,     0,   310,
    2422             :        0,     0,     0,     0,     0,     0,     0,     6,     7,     8,
    2423             :        9,    10,    11,   311,    13,     0,     0,     0,     0,    14,
    2424             :        0,     0,     0,     0,    15,     0,     0,     0,     0,    16,
    2425             :        0,     0,     0,     0,     0,    18,    19,     0,     0,     0,
    2426             :        0,     0,    21,    22,     0,     0,     0,    23,     0,     0,
    2427             :        0,     0,     0,     0,     0,    25,    26,     0,     0,     0,
    2428             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2429             :        0,     0,    29,     0,     0,     0,     0,     0,     0,    30,
    2430             :       31,    32,     0,     0,    33,     0,    34,     0,     0,     0,
    2431             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2432             :        0,     0,     0,     0,     0,    37,     0,     0,    38,     0,
    2433             :        0,     0,     0,     0,     0,     0,    39,    40,    41,     0,
    2434             :       42,     0,     0,    44,     0,    45,     0,     0,     0,     0,
    2435             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
    2436             :       47,    48,    49,    50,    51,    52,   312,    54,    55,    56,
    2437             :       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
    2438             :       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
    2439             :       77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
    2440             :       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
    2441             :       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
    2442             :      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
    2443             :      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    2444             :      127,   128,   129,   130,   131,   132,     0,   133,   134,     0,
    2445             :        0,   135,   136,     0,     0,     0,     0,     0,     0,     0,
    2446             :        0,     0,     0,     0,     0,     0,     0,   137,   138,   139,
    2447             :      140,   141,   142,   143,   144,   145,     0,     0,     0,     0,
    2448             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2449             :        0,   146,   147,   148,   149,     0,     0,     0,   150,   151,
    2450             :      152,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2451             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2452             :      153,   154,   155,   156,   157,   158,   159,   160,   360,     0,
    2453             :        0,     2,     0,     3,     4,     0,   310,     0,     0,     0,
    2454             :        0,     0,     0,     0,     6,     7,     8,     9,    10,    11,
    2455             :      311,    13,     0,     0,     0,     0,    14,     0,     0,     0,
    2456             :        0,    15,     0,     0,     0,     0,    16,     0,     0,     0,
    2457             :        0,     0,    18,    19,     0,     0,     0,     0,     0,    21,
    2458             :       22,     0,     0,     0,    23,     0,     0,     0,     0,     0,
    2459             :        0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
    2460             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    29,
    2461             :        0,     0,     0,     0,     0,     0,    30,    31,    32,     0,
    2462             :        0,    33,     0,    34,     0,     0,     0,     0,     0,     0,
    2463             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2464             :        0,     0,    37,     0,     0,    38,     0,     0,     0,     0,
    2465             :        0,     0,     0,    39,    40,    41,     0,     0,     0,     0,
    2466             :       44,     0,    45,     0,     0,     0,     0,     0,     0,     0,
    2467             :        0,     0,     0,     0,     0,     0,    46,    47,    48,    49,
    2468             :       50,    51,    52,   312,    54,    55,    56,    57,    58,    59,
    2469             :       60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
    2470             :       70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
    2471             :       80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
    2472             :       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
    2473             :      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
    2474             :      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
    2475             :      120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
    2476             :      130,   131,   132,     0,   133,   134,     0,     0,   135,   136,
    2477             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2478             :        0,     0,     0,     0,   137,   138,   139,   140,   141,   142,
    2479             :      143,   144,   145,     0,     0,     0,     0,     0,     0,     0,
    2480             :        0,     0,     0,     0,     0,     0,     0,     0,   146,   147,
    2481             :      148,   149,     0,     0,     0,   150,   151,   152,     0,     0,
    2482             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2483             :        0,     0,     0,     0,     0,     0,     0,   153,   154,   155,
    2484             :      156,   157,   158,   159,   160,   360,     0,     0,     2,     0,
    2485             :        3,     4,     0,   310,     0,     0,     0,     0,     0,     0,
    2486             :        0,     6,     7,     8,     9,    10,    11,     0,    13,     0,
    2487             :        0,     0,     0,    14,     0,     0,     0,     0,    15,     0,
    2488             :        0,   486,     0,    16,     0,     0,     0,     0,     0,    18,
    2489             :       19,     0,     0,     0,     0,     0,    21,    22,     0,     0,
    2490             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2491             :       26,     0,     0,     0,     0,     0,   487,     0,     0,     0,
    2492             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2493             :      488,     0,     0,    30,    31,    32,     0,     0,    33,     0,
    2494             :       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2495             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
    2496             :        0,     0,    38,     0,     0,     0,     0,     0,     0,   489,
    2497             :       39,    40,    41,     0,     0,     0,     0,    44,     0,    45,
    2498             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2499             :        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
    2500             :      312,    54,    55,    56,    57,    58,    59,    60,    61,    62,
    2501             :       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    2502             :       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    2503             :       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
    2504             :       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
    2505             :      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
    2506             :      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
    2507             :      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
    2508             :        0,   133,   134,     0,     0,   135,   136,     0,     0,     0,
    2509             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2510             :        0,   137,   138,   139,   140,   141,   142,   143,   144,   145,
    2511             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2512             :        0,     0,     0,     0,     0,   146,   147,   148,   149,     0,
    2513             :        0,     0,   150,   151,   152,   360,     0,     0,     2,     0,
    2514             :        3,     4,     0,   310,     0,     0,     0,     0,     0,     0,
    2515             :        0,     6,     7,     8,     9,    10,    11,     0,    13,     0,
    2516             :      159,   160,     0,    14,     0,     0,     0,     0,    15,     0,
    2517             :        0,     0,     0,    16,     0,     0,     0,     0,     0,    18,
    2518             :       19,     0,     0,     0,     0,     0,    21,    22,     0,     0,
    2519             :        0,    23,     0,     0,     0,     0,     0,     0,     0,     0,
    2520             :       26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2521             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2522             :        0,     0,     0,    30,    31,    32,     0,     0,    33,     0,
    2523             :       34,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2524             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    37,
    2525             :        0,     0,    38,     0,     0,     0,     0,     0,     0,     0,
    2526             :       39,    40,    41,     0,     0,     0,     0,    44,     0,    45,
    2527             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2528             :        0,     0,     0,    46,    47,    48,    49,    50,    51,    52,
    2529             :      312,    54,    55,    56,    57,    58,    59,    60,    61,    62,
    2530             :       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
    2531             :       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
    2532             :       83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
    2533             :       93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
    2534             :      103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
    2535             :      113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
    2536             :      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
    2537             :        0,   133,   134,     0,     0,   135,   136,   361,     0,     0,
    2538             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2539             :        0,   137,   138,   139,   140,   141,   142,   143,   144,   145,
    2540             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2541             :        0,     0,     0,     0,     0,   146,   147,   148,   149,     0,
    2542             :        0,     0,   150,   151,   152,     0,     0,     0,     0,     0,
    2543             :        0,     0,     0,     0,     0,     0,   360,     0,     0,     2,
    2544             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2545             :      159,   160,     6,     7,     8,     9,    10,    11,     0,    13,
    2546             :        0,   389,     0,     0,   390,     0,     0,     0,     0,    15,
    2547             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2548             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2549             :        0,     0,    23,     0,     0,     0,     0,     0,     0,     0,
    2550             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2551             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2552             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2553             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2554             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2555             :      391,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2556             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2557             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2558             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2559             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2560             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2561             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2562             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2563             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2564             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2565             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2566             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2567             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2568             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2569             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2570             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2571             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2572             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2573             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2574             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2575             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2576             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2577             :       18,    19,     0,     0,     0,     0,     0,    21,   507,     0,
    2578             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2579             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2580             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2581             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2582             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2583             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2584             :       37,     0,     0,    38,     0,     0,     0,   508,   509,     0,
    2585             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2586             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2587             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2588             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2589             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2590             :       72,    73,    74,    75,    76,    77,    78,   510,   511,   512,
    2591             :       82,    83,    84,    85,   513,    87,    88,    89,    90,   514,
    2592             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2593             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2594             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2595             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2596             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2597             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2598             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2599             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2600             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2601             :        0,     0,     0,   150,   151,   152,   521,     0,     0,     2,
    2602             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2603             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2604             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2605             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2606             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2607             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2608             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2609             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2610             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2611             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2612             :        0,     0,     0,     0,     0,     0,   444,     0,     0,     0,
    2613             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2614             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2615             :       45,     0,   286,     0,     0,     0,     0,     0,     0,     0,
    2616             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2617             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2618             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2619             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2620             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2621             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2622             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2623             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2624             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2625             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2626             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2627             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2628             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2629             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2630             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2631             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2632             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2633             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2634             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2635             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2636             :        0,     0,    23,     0,     0,     0,     0,     0,     0,     0,
    2637             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2638             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2639             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2640             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2641             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2642             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2643             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2644             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2645             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2646             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2647             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2648             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2649             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2650             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2651             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2652             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2653             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2654             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2655             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2656             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2657             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2658             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2659             :        0,     0,     0,   150,   151,   152,   360,   567,     0,     2,
    2660             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2661             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2662             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2663             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2664             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2665             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2666             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2667             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2668             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2669             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2670             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2671             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2672             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2673             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2674             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2675             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2676             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2677             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2678             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2679             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2680             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2681             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2682             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2683             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2684             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2685             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2686             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2687             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2688             :        0,     0,     0,   150,   151,   152,   360,   583,     0,     2,
    2689             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2690             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2691             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2692             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2693             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2694             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2695             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2696             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2697             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2698             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2699             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2700             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2701             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2702             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2703             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2704             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2705             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2706             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2707             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2708             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2709             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2710             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2711             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2712             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2713             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2714             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2715             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2716             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2717             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2718             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2719             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2720             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2721             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2722             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2723             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2724             :        0,    26,     0,     0,     0,     0,     0,   645,     0,     0,
    2725             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2726             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2727             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2728             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2729             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2730             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2731             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2732             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2733             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2734             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2735             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2736             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2737             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2738             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2739             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2740             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2741             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2742             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2743             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2744             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2745             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2746             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2747             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2748             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2749             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2750             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2751             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2752             :        0,     0,   972,     0,     0,     0,     0,     0,     0,     0,
    2753             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2754             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2755             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2756             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2757             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2758             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2759             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2760             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2761             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2762             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2763             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2764             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2765             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2766             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2767             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2768             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2769             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2770             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2771             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2772             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2773             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2774             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2775             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2776             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2777             :        0,     0,     6,     7,     8,     9,    10,    11,     0,    13,
    2778             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2779             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2780             :       18,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2781             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2782             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2783             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2784             :        0,     0,     0,     0,    30,    31,    32,     0,     0,    33,
    2785             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2786             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2787             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2788             :        0,    39,    40,    41,     0,     0,     0,     0,    44,     0,
    2789             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2790             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2791             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2792             :       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
    2793             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2794             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2795             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2796             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2797             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2798             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2799             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2800             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2801             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2802             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2803             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2804             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2805             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2806             :        0,     0,     0,     7,     8,     9,    10,    11,     0,    13,
    2807             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2808             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2809             :        0,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2810             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2811             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2812             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2813             :        0,     0,     0,     0,     0,    31,    32,     0,     0,    33,
    2814             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2815             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2816             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2817             :        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
    2818             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2819             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2820             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2821             :       62,    63,    64,    65,    66,     0,    68,     0,     0,     0,
    2822             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2823             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2824             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2825             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2826             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2827             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2828             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2829             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2830             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2831             :      145,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2832             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2833             :        0,     0,     0,   150,   151,   152,   360,     0,     0,     2,
    2834             :        0,     3,     4,     0,   310,     0,     0,     0,     0,     0,
    2835             :        0,     0,     0,     7,     8,     9,    10,    11,     0,    13,
    2836             :        0,   159,   160,     0,    14,     0,     0,     0,     0,    15,
    2837             :        0,     0,     0,     0,    16,     0,     0,     0,     0,     0,
    2838             :        0,    19,     0,     0,     0,     0,     0,    21,    22,     0,
    2839             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2840             :        0,    26,     0,     0,     0,     0,     0,     0,     0,     0,
    2841             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2842             :        0,     0,     0,     0,     0,    31,    32,     0,     0,    33,
    2843             :        0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
    2844             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2845             :       37,     0,     0,    38,     0,     0,     0,     0,     0,     0,
    2846             :        0,     0,     0,    41,     0,     0,     0,     0,     0,     0,
    2847             :       45,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2848             :        0,     0,     0,     0,    46,    47,    48,    49,    50,    51,
    2849             :       52,   312,    54,    55,    56,    57,    58,    59,    60,    61,
    2850             :       62,    63,    64,    65,    66,     0,    68,     0,     0,     0,
    2851             :       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
    2852             :       82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
    2853             :       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
    2854             :      102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
    2855             :      112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
    2856             :      122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
    2857             :      132,     0,   133,   134,     0,     0,   135,   136,     0,     0,
    2858             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2859             :        0,     0,   137,   138,   139,   140,   141,   142,   143,   144,
    2860             :      145,   742,     0,     0,     0,     0,     0,     0,     0,     0,
    2861             :        0,     0,     0,     0,     0,     0,   146,   147,   148,   149,
    2862             :        0,     0,   743,   150,   151,   152,     0,     0,     0,     0,
    2863             :        0,     0,     0,   744,     0,     0,   745,   746,     0,     0,
    2864             :        0,     0,     0,   747,     0,     0,     0,     0,     0,     0,
    2865             :      748,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2866             :        0,     0,   749,     0,     0,     0,     0,     0,     0,     0,
    2867             :        0,     0,     0,     0,     0,   750,     0,   751,     0,     0,
    2868             :        0,     0,     0,     0,     0,     0,     0,     0,     0,   752,
    2869             :        0,     0,     0,     0,     0,     0,   753,     0,     0,     0,
    2870             :        0,     0,   754,   755,     0,     0,     0,     0,     0,     0,
    2871             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2872             :        0,     0,   310,     0,     0,     0,     0,     0,     0,     0,
    2873             :        0,     0,     0,   756,     0,     0,     0,    13,     0,     0,
    2874             :        0,     0,    14,     0,     0,     0,     0,    15,     0,     0,
    2875             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    19,
    2876             :        0,     0,     0,     0,     0,    21,    22,     0,     0,     0,
    2877             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2878             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2879             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2880             :        0,     0,     0,    31,    32,     0,     0,     0,     0,     0,
    2881             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2882             :        0,     0,     0,     0,     0,     0,     0,     0,    37,     0,
    2883             :        0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
    2884             :        0,     0,     0,     0,     0,     0,     0,     0,   757,   758,
    2885             :        0,     0,   759,   760,     0,   761,   762,   763,   764,     0,
    2886             :      765,   766,    46,     0,    48,   449,     0,    51,    52,   312,
    2887             :       54,    55,    56,    57,    58,    59,   450,    61,    62,    63,
    2888             :       64,    65,    66,     0,    68,     0,     0,     0,    72,    73,
    2889             :       74,    75,    76,    77,   451,    79,    80,    81,    82,    83,
    2890             :       84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
    2891             :       94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
    2892             :      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
    2893             :      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
    2894             :      124,   125,   126,   127,   128,   129,   130,   131,   132,   310,
    2895             :      133,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2896             :        0,     0,     0,     0,   435,     0,     0,     0,     0,    14,
    2897             :        0,     0,     0,     0,    15,     0,     0,     0,     0,     0,
    2898             :        0,     0,     0,     0,     0,     0,    19,     0,     0,     0,
    2899             :        0,     0,    21,    22,     0,     0,     0,     0,     0,     0,
    2900             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2901             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2902             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2903             :       31,    32,     0,     0,     0,     0,     0,     0,     0,     0,
    2904             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2905             :        0,     0,     0,     0,     0,    37,     0,     0,    38,     0,
    2906             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2907             :        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2908             :        0,     0,     0,     0,     0,     0,     0,     0,     0,    46,
    2909             :        0,    48,     0,     0,    51,    52,   312,    54,    55,    56,
    2910             :       57,    58,    59,     0,    61,    62,    63,    64,    65,    66,
    2911             :        0,    68,     0,     0,     0,    72,    73,    74,    75,    76,
    2912             :       77,     0,    79,    80,    81,    82,    83,    84,    85,    86,
    2913             :       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
    2914             :       97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
    2915             :      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
    2916             :      117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
    2917             :      127,   128,   129,   130,   131,   132,     0,   133
    2918             : };
    2919             : 
    2920             : #define yypact_value_is_default(yystate) \
    2921             :   ((yystate) == (-1155))
    2922             : 
    2923             : #define yytable_value_is_error(yytable_value) \
    2924             :   YYID (0)
    2925             : 
    2926             : static const yytype_int16 yycheck[] =
    2927             : {
    2928             :        0,     1,     1,    43,   134,   302,    29,    25,   315,   302,
    2929             :      369,   302,   318,     1,   187,   494,    26,     4,   633,    28,
    2930             :      174,   174,   174,   369,    42,   400,   401,   174,   285,   404,
    2931             :      174,   406,   934,   524,     4,   937,     4,     4,   344,   356,
    2932             :      357,   815,   750,   761,   762,     4,   754,   755,   756,   366,
    2933             :      367,    11,     3,    62,    26,     3,   764,   187,     0,     1,
    2934             :       32,   726,    51,    74,   835,     5,    79,   864,     4,   859,
    2935             :        3,   377,     4,   466,   102,     4,     4,     4,   766,   998,
    2936             :        5,     4,   924,   407,     5,   460,   363,   332,    77,   334,
    2937             :        4,   746,     4,   142,     4,    71,   751,     5,   255,   121,
    2938             :      807,   241,     3,     5,    42,    65,    50,  1089,     3,    26,
    2939             :       11,    26,     4,    26,     5,     4,    66,    37,    11,    19,
    2940             :        3,   467,     6,     5,    28,    26,    33,  1281,   121,    13,
    2941             :       26,    75,    26,   247,   248,   249,  1038,    81,    37,     6,
    2942             :       62,   121,  1061,    26,   154,   302,    13,    47,  1302,   606,
    2943             :       94,    40,     4,    26,    61,   165,  1058,    66,    62,    79,
    2944             :      140,    25,   469,   321,   322,     3,   757,   758,    26,    89,
    2945             :      310,  1153,    65,   183,    96,   482,    85,    25,   669,    71,
    2946             :       79,   131,   154,    74,    74,    33,   443,     3,   495,    37,
    2947             :       89,    91,    25,   165,    74,   108,     3,   905,   906,   319,
    2948             :        3,     3,   375,     3,    37,   580,   379,   293,    11,   466,
    2949             :      918,   183,   113,    61,    66,   153,   160,   462,   113,    60,
    2950             :       84,    26,   308,    26,   168,   143,   543,    32,   128,   129,
    2951             :      279,    79,  1151,   255,   142,   135,    84,   154,   139,   154,
    2952             :      947,    89,  1084,   950,   139,   375,    79,   571,   165,   379,
    2953             :      165,    84,   425,   530,   499,  1237,    89,    84,   154,   141,
    2954             :      154,   916,   255,    74,   521,   658,   183,     3,   183,   165,
    2955             :        6,   165,   172,  1192,   254,    74,     3,    13,  1075,   131,
    2956             :      320,   321,     3,   323,    83,   285,   285,   183,   634,   183,
    2957             :      410,   882,   320,   134,  1012,   425,  1067,   285,  1016,   606,
    2958             :      891,   241,  1092,    40,  1022,   612,   897,   320,   297,   320,
    2959             :      309,   321,   321,  1031,  1216,   355,   305,   158,   909,   270,
    2960             :      241,   309,   270,   274,   444,  1227,   274,    26,   316,   688,
    2961             :      318,   638,   707,   320,   709,   710,   951,   270,   713,   241,
    2962             :     1005,   716,   688,   285,   320,   824,  1034,    84,   320,   840,
    2963             :      320,   339,   320,   320,  1144,   343,   344,   345,   376,   665,
    2964             :      320,   320,   361,   386,   352,   353,   354,  1269,   356,   357,
    2965             :      358,   359,   360,   527,   527,   527,   394,   736,   366,   367,
    2966             :      527,   421,   370,   527,   320,   702,   692,   310,   320,   377,
    2967             :      736,   320,   320,   320,  1112,   320,   310,   527,   310,   439,
    2968             :      310,   138,     3,   557,   321,    25,   321,  1115,   310,   311,
    2969             :      727,    55,   400,   401,   402,   403,   404,   405,   406,   143,
    2970             :      408,   409,   879,   880,   412,   318,   319,   320,   321,   322,
    2971             :      320,   419,   270,   473,  1025,   423,   274,  1028,  1053,     3,
    2972             :      320,  1056,     3,  1217,   443,  1219,  1220,  1221,   312,   313,
    2973             :      314,   315,   316,   317,   270,   443,     8,   803,   274,    26,
    2974             :      939,   636,   318,   319,   312,   313,   314,   315,   316,   317,
    2975             :      270,     3,   460,    68,   274,    50,    55,   652,     3,   312,
    2976             :      313,   314,   315,   316,   317,   312,   313,   314,   315,   316,
    2977             :      317,     3,    19,   320,    21,    22,    83,    24,   805,   487,
    2978             :       75,    96,   675,     3,   492,    26,    81,   146,   147,   148,
    2979             :      149,    20,    21,    22,    23,    24,   689,    75,   825,    94,
    2980             :     1135,     0,    43,    81,     6,   100,     8,     9,   527,     4,
    2981             :        5,     3,     7,   521,     7,   130,   524,     5,   133,     7,
    2982             :      184,   185,   186,     4,     5,   675,     7,   191,     3,   549,
    2983             :      427,    72,   196,   430,   431,   543,    25,   730,   298,   689,
    2984             :      300,     4,     5,   138,     7,   245,   246,   607,   608,   609,
    2985             :        4,     5,   879,   880,    43,   312,   313,   314,   315,   316,
    2986             :      317,     4,     5,   320,   105,   160,     3,    96,     4,     5,
    2987             :       59,     7,   580,   168,   146,   147,   148,   149,   287,   288,
    2988             :      730,   641,   160,     4,     5,   184,   185,   186,     4,     5,
    2989             :      168,   132,   191,     3,   602,   633,   604,   196,    28,   618,
    2990             :        3,   996,   997,   298,   131,   300,   933,   934,   137,     3,
    2991             :      937,     4,     5,   154,     7,     3,   105,     4,     5,    50,
    2992             :        7,   110,     4,     5,   165,     7,   301,   302,  1007,   637,
    2993             :       60,     4,     5,     3,     7,   643,   403,   645,   405,    84,
    2994             :       60,  1007,   183,   132,    75,   174,   175,   176,     4,     5,
    2995             :       81,     7,   660,   661,   662,    86,   664,   665,   666,   311,
    2996             :      703,   669,   310,    94,     3,   839,   839,   839,     4,     5,
    2997             :      947,     3,   839,     4,     5,   839,     3,   851,     4,     5,
    2998             :      110,   293,   294,   113,   692,   835,   257,   258,     3,   839,
    2999             :      110,     4,     5,   113,   702,     3,   704,   705,     3,   707,
    3000             :        3,   709,   710,     3,   134,   713,   136,   282,   716,   255,
    3001             :      256,  1038,   600,   601,   134,   282,   136,     3,     6,   727,
    3002             :        8,     9,    14,    15,    16,    17,    18,     3,   158,   160,
    3003             :        3,  1058,    20,    21,    22,    23,    24,   168,   158,    20,
    3004             :       21,    22,    23,    24,  1061,  1124,  1072,     3,  1061,    37,
    3005             :     1061,     4,     5,     4,     5,  1150,     4,     5,   600,   601,
    3006             :      159,   160,     3,    51,   413,   414,   493,   494,     6,   807,
    3007             :        8,     9,   415,   416,    34,    44,   796,   320,   318,     3,
    3008             :       68,     3,    20,    21,    22,    23,    24,     6,     4,     8,
    3009             :        9,    85,    85,   986,   312,    10,   839,   145,    12,    12,
    3010             :       26,    20,    21,    22,    23,    24,    26,    19,    96,    83,
    3011             :      106,     3,     5,    51,     4,   823,   100,   114,   245,   827,
    3012             :        3,    28,     4,    90,     4,     3,    13,    13,    32,     5,
    3013             :       68,   138,   840,     4,     3,   141,   986,    74,     5,   138,
    3014             :        4,    26,   130,    74,    74,    26,    74,    74,     3,   137,
    3015             :      242,    74,     4,    74,   311,   246,    74,     4,    96,    21,
    3016             :        4,   113,     5,     4,    26,     5,     4,    26,     5,     5,
    3017             :        4,     3,    26,     4,    32,  1192,     5,   126,    13,  1192,
    3018             :       42,  1192,    99,  1262,   312,     4,    65,    40,     5,  1216,
    3019             :        5,    53,   130,     5,    56,    57,     5,   242,   303,   137,
    3020             :     1227,    63,     4,    23,     4,     4,    74,    13,    70,   947,
    3021             :      929,     3,   950,   951,   238,    13,   104,  1067,     3,     3,
    3022             :       82,  1300,     3,   100,     4,     4,    42,     4,     3,     3,
    3023             :       87,    87,     5,    95,    99,    97,     4,    26,    77,   150,
    3024             :        4,    19,  1269,   320,    62,     5,     5,   109,     5,    40,
    3025             :       77,   102,   289,    23,   116,   289,    23,   271,    23,   271,
    3026             :      122,   123,   271,   126,   114,    23,     3,   271,   976,   142,
    3027             :        4,   259,   260,   261,   262,   263,   264,   265,   266,   267,
    3028             :      103,    86,    86,    26,     3,    26,    40,   995,   996,   997,
    3029             :       78,   153,  1000,     4,     4,    12,     5,     3,    74,     4,
    3030             :        4,   122,     4,   271,   126,    26,     5,    43,   122,   251,
    3031             :       76,   299,    12,   304,    86,  1053,     5,     5,  1056,   144,
    3032             :       23,   259,   260,   261,   262,   263,   264,   265,   266,   267,
    3033             :        3,   144,   101,    96,     5,   300,    71,   300,   295,   101,
    3034             :        4,     4,     3,  1062,   250,   255,   245,     3,     5,   110,
    3035             :       32,   306,   311,    32,     3,     3,    23,   307,   255,     3,
    3036             :      296,   299,   253,   307,  1072,  1125,    26,    26,    26,    23,
    3037             :        7,    69,  1041,   933,   309,  1060,   474,   983,  1067,   825,
    3038             :     1047,   634,   803,   604,  1303,   816,  1178,    12,   174,   387,
    3039             :      688,   547,   174,   388,   688,   637,  1231,  1135,  1230,  1151,
    3040             :     1237,   955,  1007,  1089,   608,   599,   268,   269,  1124,   318,
    3041             :      272,   273,   795,   275,   276,   277,   278,   833,   280,   281,
    3042             :      896,   411,   264,   377,   530,   839,   365,   528,  1179,  1247,
    3043             :       -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3044             :       -1,     3,  1150,    -1,     6,    -1,     8,     9,    -1,    11,
    3045             :     1169,    -1,    -1,    -1,  1214,    -1,    -1,    19,    20,    21,
    3046             :       22,    23,    24,    -1,    26,    -1,    -1,  1186,    -1,    31,
    3047             :       -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
    3048             :       -1,    -1,    -1,    -1,    -1,    47,    48,    -1,    -1,    -1,
    3049             :       -1,    -1,    54,    55,    -1,    -1,    -1,    -1,    -1,    -1,
    3050             :       -1,    -1,    -1,    -1,    -1,  1225,    68,    -1,    -1,    -1,
    3051             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3052             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
    3053             :       92,    93,    -1,  1252,    96,    -1,    98,    -1,    -1,    -1,
    3054             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3055             :       -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,   120,    -1,
    3056             :       -1,  1281,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,
    3057             :       -1,    -1,    -1,   135,    -1,   137,    -1,    -1,    -1,    -1,
    3058             :       -1,    -1,  1302,    -1,    -1,    -1,    -1,    -1,    -1,   151,
    3059             :      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
    3060             :      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
    3061             :      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
    3062             :      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
    3063             :      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
    3064             :      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
    3065             :      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    3066             :      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
    3067             :      232,   233,   234,   235,   236,   237,    -1,   239,   240,    -1,
    3068             :       -1,   243,   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3069             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
    3070             :      262,   263,   264,   265,   266,   267,    -1,    -1,    -1,    -1,
    3071             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3072             :       -1,   283,   284,   285,   286,    -1,    -1,    -1,   290,   291,
    3073             :      292,    -1,     3,    -1,    -1,     6,    -1,     8,     9,    -1,
    3074             :       11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,
    3075             :       21,    22,    23,    24,    25,    26,   318,   319,    -1,   321,
    3076             :       31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,
    3077             :       41,    -1,    -1,    -1,    45,    -1,    47,    48,    49,    -1,
    3078             :       -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,    60,
    3079             :       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    -1,
    3080             :       -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,
    3081             :       -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,
    3082             :       91,    92,    93,    -1,    -1,    96,    -1,    98,    -1,    -1,
    3083             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3084             :      111,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,   120,
    3085             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,
    3086             :       -1,   132,    -1,   134,   135,    -1,   137,    -1,   139,    -1,
    3087             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3088             :      151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
    3089             :      161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
    3090             :      171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
    3091             :      181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
    3092             :      191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
    3093             :      201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
    3094             :      211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
    3095             :      221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
    3096             :      231,   232,   233,   234,   235,   236,   237,    -1,   239,   240,
    3097             :       -1,    -1,   243,   244,    -1,    -1,    -1,    -1,    -1,    -1,
    3098             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,
    3099             :      261,   262,   263,   264,   265,   266,   267,    -1,    -1,    -1,
    3100             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3101             :       -1,    -1,   283,   284,   285,   286,    -1,    -1,    -1,   290,
    3102             :      291,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3103             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3104             :       -1,   312,   313,   314,   315,   316,   317,   318,   319,     3,
    3105             :       -1,    -1,     6,    -1,     8,     9,    -1,    11,    -1,    -1,
    3106             :       -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,    23,
    3107             :       24,    25,    26,    -1,    -1,    -1,    -1,    31,    -1,    -1,
    3108             :       -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,
    3109             :       -1,    45,    -1,    47,    48,    49,    -1,    -1,    -1,    -1,
    3110             :       54,    55,    -1,    -1,    -1,    59,    60,    -1,    -1,    -1,
    3111             :       -1,    -1,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
    3112             :       -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3113             :       84,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,
    3114             :       -1,    -1,    96,    -1,    98,    -1,    -1,    -1,    -1,    -1,
    3115             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   111,    -1,   113,
    3116             :       -1,    -1,    -1,   117,    -1,    -1,   120,    -1,    -1,    -1,
    3117             :       -1,    -1,    -1,    -1,   128,   129,   130,    -1,   132,    -1,
    3118             :      134,   135,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,
    3119             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,   152,   153,
    3120             :      154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
    3121             :      164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
    3122             :      174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
    3123             :      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
    3124             :      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
    3125             :      204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
    3126             :      214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
    3127             :      224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
    3128             :      234,   235,   236,   237,    -1,   239,   240,    -1,    -1,   243,
    3129             :      244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   252,    -1,
    3130             :       -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
    3131             :      264,   265,   266,   267,    -1,    -1,    -1,    -1,    -1,    -1,
    3132             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,
    3133             :      284,   285,   286,    -1,    -1,    -1,   290,   291,   292,    -1,
    3134             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3135             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   312,   313,
    3136             :      314,   315,   316,   317,   318,   319,     3,    -1,    -1,     6,
    3137             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3138             :       -1,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
    3139             :       -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3140             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,
    3141             :       47,    48,    49,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3142             :       -1,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
    3143             :       67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
    3144             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,
    3145             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3146             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3147             :       -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    -1,    -1,
    3148             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3149             :       -1,   128,   129,   130,    -1,   132,    -1,   134,   135,    -1,
    3150             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3151             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3152             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3153             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3154             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3155             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3156             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3157             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3158             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3159             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3160             :      237,    -1,   239,   240,    -1,   242,   243,   244,    -1,    -1,
    3161             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3162             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3163             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3164             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3165             :       -1,    -1,    -1,   290,   291,   292,    -1,    -1,    -1,    -1,
    3166             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3167             :       -1,    -1,    -1,    -1,    -1,   312,   313,   314,   315,   316,
    3168             :      317,   318,   319,     3,    -1,    -1,     6,    -1,     8,     9,
    3169             :       -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
    3170             :       20,    21,    22,    23,    24,    25,    26,    -1,    -1,    -1,
    3171             :       -1,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,
    3172             :       -1,    41,    -1,    -1,    -1,    45,    -1,    47,    48,    49,
    3173             :       -1,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,    59,
    3174             :       60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
    3175             :       -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
    3176             :       -1,    -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,
    3177             :       -1,    91,    92,    93,    -1,    -1,    96,    -1,    98,    -1,
    3178             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3179             :       -1,   111,    -1,   113,    -1,    -1,    -1,   117,    -1,    -1,
    3180             :      120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
    3181             :      130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,    -1,
    3182             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3183             :       -1,   151,   152,   153,   154,   155,   156,   157,   158,   159,
    3184             :      160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
    3185             :      170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
    3186             :      180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
    3187             :      190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
    3188             :      200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
    3189             :      210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
    3190             :      220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
    3191             :      230,   231,   232,   233,   234,   235,   236,   237,    -1,   239,
    3192             :      240,    -1,    -1,   243,   244,    -1,    -1,    -1,    -1,    -1,
    3193             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
    3194             :      260,   261,   262,   263,   264,   265,   266,   267,    -1,    -1,
    3195             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3196             :       -1,    -1,    -1,   283,   284,   285,   286,    -1,    -1,    -1,
    3197             :      290,   291,   292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3198             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3199             :       -1,    -1,   312,   313,   314,   315,   316,   317,   318,   319,
    3200             :        3,    -1,    -1,     6,    -1,     8,     9,    -1,    11,    -1,
    3201             :       -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,
    3202             :       23,    24,    25,    26,    -1,    -1,    -1,    -1,    31,    -1,
    3203             :       -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    -1,
    3204             :       -1,    -1,    -1,    -1,    47,    48,    -1,    -1,    -1,    -1,
    3205             :       -1,    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
    3206             :       -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    -1,
    3207             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3208             :       -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    91,    92,
    3209             :       93,    -1,    -1,    96,    -1,    98,    -1,    -1,    -1,    -1,
    3210             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3211             :      113,    -1,    -1,    -1,   117,    -1,    -1,   120,    -1,    -1,
    3212             :       -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,   132,
    3213             :       -1,    -1,   135,    -1,   137,    -1,   139,    -1,    -1,    -1,
    3214             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,   152,
    3215             :      153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
    3216             :      163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
    3217             :      173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
    3218             :      183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
    3219             :      193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
    3220             :      203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
    3221             :      213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
    3222             :      223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
    3223             :      233,   234,   235,   236,   237,    -1,   239,   240,    -1,    -1,
    3224             :      243,   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3225             :       -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,
    3226             :      263,   264,   265,   266,   267,    -1,    -1,    -1,    -1,    -1,
    3227             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3228             :      283,   284,   285,   286,    -1,    -1,    -1,   290,   291,   292,
    3229             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3230             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   312,
    3231             :      313,   314,   315,   316,   317,   318,   319,     3,    -1,    -1,
    3232             :        6,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,
    3233             :       -1,    -1,    -1,    19,    20,    21,    22,    23,    24,    25,
    3234             :       26,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,
    3235             :       36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
    3236             :       -1,    47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,
    3237             :       -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,
    3238             :       -1,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3239             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,    -1,
    3240             :       -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,
    3241             :       96,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3242             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3243             :       -1,   117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,
    3244             :       -1,    -1,   128,   129,   130,    -1,   132,    -1,    -1,   135,
    3245             :       -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3246             :       -1,    -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,
    3247             :      156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
    3248             :      166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
    3249             :      176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
    3250             :      186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
    3251             :      196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
    3252             :      206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
    3253             :      216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
    3254             :      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
    3255             :      236,   237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,
    3256             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3257             :       -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
    3258             :      266,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3259             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,
    3260             :      286,    -1,    -1,    -1,   290,   291,   292,    -1,    -1,    -1,
    3261             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3262             :       -1,    -1,    -1,    -1,    -1,    -1,   312,   313,   314,   315,
    3263             :      316,   317,   318,   319,     3,    -1,    -1,     6,    -1,     8,
    3264             :        9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3265             :       19,    20,    21,    22,    23,    24,    25,    26,    -1,    -1,
    3266             :       -1,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
    3267             :       -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,    48,
    3268             :       -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
    3269             :       59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
    3270             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3271             :       -1,    -1,    -1,    -1,    -1,    84,    -1,    -1,    -1,    -1,
    3272             :       -1,    -1,    91,    92,    93,    -1,    -1,    96,    -1,    98,
    3273             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3274             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
    3275             :       -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   128,
    3276             :      129,   130,    -1,   132,    -1,    -1,   135,    -1,   137,    -1,
    3277             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3278             :       -1,    -1,   151,   152,   153,   154,   155,   156,   157,   158,
    3279             :      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
    3280             :      169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
    3281             :      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
    3282             :      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
    3283             :      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
    3284             :      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
    3285             :      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
    3286             :      229,   230,   231,   232,   233,   234,   235,   236,   237,    -1,
    3287             :      239,   240,    -1,    -1,   243,   244,    -1,    -1,    -1,    -1,
    3288             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3289             :      259,   260,   261,   262,   263,   264,   265,   266,   267,    -1,
    3290             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3291             :       -1,    -1,    -1,    -1,   283,   284,   285,   286,    -1,    -1,
    3292             :       -1,   290,   291,   292,    -1,    -1,    -1,    -1,    -1,    -1,
    3293             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3294             :       -1,    -1,    -1,   312,   313,   314,   315,   316,   317,   318,
    3295             :      319,     3,    -1,    -1,     6,    -1,     8,     9,    -1,    11,
    3296             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
    3297             :       22,    23,    24,    25,    26,    -1,    -1,    -1,    -1,    31,
    3298             :       -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,
    3299             :       -1,    -1,    -1,    -1,    -1,    47,    48,    -1,    -1,    -1,
    3300             :       -1,    -1,    54,    55,    -1,    -1,    -1,    59,    -1,    -1,
    3301             :       -1,    -1,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,
    3302             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3303             :       -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    91,
    3304             :       92,    93,    -1,    -1,    96,    -1,    98,    -1,    -1,    -1,
    3305             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3306             :       -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,   120,    -1,
    3307             :       -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,
    3308             :      132,    -1,    -1,   135,    -1,   137,    -1,    -1,    -1,    -1,
    3309             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,
    3310             :      152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
    3311             :      162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
    3312             :      172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
    3313             :      182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
    3314             :      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
    3315             :      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
    3316             :      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    3317             :      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
    3318             :      232,   233,   234,   235,   236,   237,    -1,   239,   240,    -1,
    3319             :       -1,   243,   244,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3320             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
    3321             :      262,   263,   264,   265,   266,   267,    -1,    -1,    -1,    -1,
    3322             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3323             :       -1,   283,   284,   285,   286,    -1,    -1,    -1,   290,   291,
    3324             :      292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3325             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3326             :      312,   313,   314,   315,   316,   317,   318,   319,     3,    -1,
    3327             :       -1,     6,    -1,     8,     9,    -1,    11,    -1,    -1,    -1,
    3328             :       -1,    -1,    -1,    -1,    19,    20,    21,    22,    23,    24,
    3329             :       25,    26,    -1,    -1,    -1,    -1,    31,    -1,    -1,    -1,
    3330             :       -1,    36,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,
    3331             :       -1,    -1,    47,    48,    -1,    -1,    -1,    -1,    -1,    54,
    3332             :       55,    -1,    -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,
    3333             :       -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,
    3334             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    84,
    3335             :       -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,    -1,
    3336             :       -1,    96,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,
    3337             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3338             :       -1,    -1,   117,    -1,    -1,   120,    -1,    -1,    -1,    -1,
    3339             :       -1,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,    -1,
    3340             :      135,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3341             :       -1,    -1,    -1,    -1,    -1,    -1,   151,   152,   153,   154,
    3342             :      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
    3343             :      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
    3344             :      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
    3345             :      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
    3346             :      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
    3347             :      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
    3348             :      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
    3349             :      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
    3350             :      235,   236,   237,    -1,   239,   240,    -1,    -1,   243,   244,
    3351             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3352             :       -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,   264,
    3353             :      265,   266,   267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3354             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   283,   284,
    3355             :      285,   286,    -1,    -1,    -1,   290,   291,   292,    -1,    -1,
    3356             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3357             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,   312,   313,   314,
    3358             :      315,   316,   317,   318,   319,     3,    -1,    -1,     6,    -1,
    3359             :        8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
    3360             :       -1,    19,    20,    21,    22,    23,    24,    -1,    26,    -1,
    3361             :       -1,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,
    3362             :       -1,    39,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,
    3363             :       48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
    3364             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3365             :       68,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,
    3366             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3367             :       88,    -1,    -1,    91,    92,    93,    -1,    -1,    96,    -1,
    3368             :       98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3369             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3370             :       -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,   127,
    3371             :      128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,   137,
    3372             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3373             :       -1,    -1,    -1,   151,   152,   153,   154,   155,   156,   157,
    3374             :      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
    3375             :      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
    3376             :      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
    3377             :      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
    3378             :      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
    3379             :      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
    3380             :      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
    3381             :      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
    3382             :       -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,    -1,
    3383             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3384             :       -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
    3385             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3386             :       -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,    -1,
    3387             :       -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,    -1,
    3388             :        8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,
    3389             :       -1,    19,    20,    21,    22,    23,    24,    -1,    26,    -1,
    3390             :      318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,
    3391             :       -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,
    3392             :       48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,
    3393             :       -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3394             :       68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3395             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3396             :       -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,    -1,
    3397             :       98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3398             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,
    3399             :       -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3400             :      128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,   137,
    3401             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3402             :       -1,    -1,    -1,   151,   152,   153,   154,   155,   156,   157,
    3403             :      158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
    3404             :      168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
    3405             :      178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
    3406             :      188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
    3407             :      198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
    3408             :      208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
    3409             :      218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
    3410             :      228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
    3411             :       -1,   239,   240,    -1,    -1,   243,   244,   245,    -1,    -1,
    3412             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3413             :       -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
    3414             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3415             :       -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,    -1,
    3416             :       -1,    -1,   290,   291,   292,    -1,    -1,    -1,    -1,    -1,
    3417             :       -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,     6,
    3418             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3419             :      318,   319,    19,    20,    21,    22,    23,    24,    -1,    26,
    3420             :       -1,    28,    -1,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3421             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3422             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3423             :       -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3424             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3425             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3426             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3427             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3428             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3429             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3430             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3431             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3432             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3433             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3434             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3435             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3436             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3437             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3438             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3439             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3440             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3441             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3442             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3443             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3444             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3445             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3446             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3447             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3448             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3449             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3450             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3451             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3452             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3453             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3454             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3455             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3456             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3457             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3458             :      117,    -1,    -1,   120,    -1,    -1,    -1,   124,   125,    -1,
    3459             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3460             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3461             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3462             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3463             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3464             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3465             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3466             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3467             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3468             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3469             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3470             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3471             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3472             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3473             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3474             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3475             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3476             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3477             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3478             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3479             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3480             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3481             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3482             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3483             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3484             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3485             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3486             :       -1,    -1,    -1,    -1,    -1,    -1,   113,    -1,    -1,    -1,
    3487             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3488             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3489             :      137,    -1,   139,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3490             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3491             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3492             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3493             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3494             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3495             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3496             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3497             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3498             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3499             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3500             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3501             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3502             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3503             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3504             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3505             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3506             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3507             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3508             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3509             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3510             :       -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3511             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3512             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3513             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3514             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3515             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3516             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3517             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3518             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3519             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3520             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3521             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3522             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3523             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3524             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3525             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3526             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3527             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3528             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3529             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3530             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3531             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3532             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3533             :       -1,    -1,    -1,   290,   291,   292,     3,     4,    -1,     6,
    3534             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3535             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3536             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3537             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3538             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3539             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3540             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3541             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3542             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3543             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3544             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3545             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3546             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3547             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3548             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3549             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3550             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3551             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3552             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3553             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3554             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3555             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3556             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3557             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3558             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3559             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3560             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3561             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3562             :       -1,    -1,    -1,   290,   291,   292,     3,     4,    -1,     6,
    3563             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3564             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3565             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3566             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3567             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3568             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3569             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3570             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3571             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3572             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3573             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3574             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3575             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3576             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3577             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3578             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3579             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3580             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3581             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3582             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3583             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3584             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3585             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3586             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3587             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3588             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3589             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3590             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3591             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3592             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3593             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3594             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3595             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3596             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3597             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3598             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,
    3599             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3600             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3601             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3602             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3603             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3604             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3605             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3606             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3607             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3608             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3609             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3610             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3611             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3612             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3613             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3614             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3615             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3616             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3617             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3618             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3619             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3620             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3621             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3622             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3623             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3624             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3625             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3626             :       -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3627             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3628             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3629             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3630             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3631             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3632             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3633             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3634             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3635             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3636             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3637             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3638             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3639             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3640             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3641             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3642             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3643             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3644             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3645             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3646             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3647             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3648             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3649             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3650             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3651             :       -1,    -1,    19,    20,    21,    22,    23,    24,    -1,    26,
    3652             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3653             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3654             :       47,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3655             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3656             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3657             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3658             :       -1,    -1,    -1,    -1,    91,    92,    93,    -1,    -1,    96,
    3659             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3660             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3661             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3662             :       -1,   128,   129,   130,    -1,    -1,    -1,    -1,   135,    -1,
    3663             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3664             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3665             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3666             :      167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
    3667             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3668             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3669             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3670             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3671             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3672             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3673             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3674             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3675             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3676             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3677             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3678             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3679             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3680             :       -1,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
    3681             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3682             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3683             :       -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3684             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3685             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3686             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3687             :       -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    96,
    3688             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3689             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3690             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3691             :       -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,    -1,    -1,
    3692             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3693             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3694             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3695             :      167,   168,   169,   170,   171,    -1,   173,    -1,    -1,    -1,
    3696             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3697             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3698             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3699             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3700             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3701             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3702             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3703             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3704             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3705             :      267,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3706             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3707             :       -1,    -1,    -1,   290,   291,   292,     3,    -1,    -1,     6,
    3708             :       -1,     8,     9,    -1,    11,    -1,    -1,    -1,    -1,    -1,
    3709             :       -1,    -1,    -1,    20,    21,    22,    23,    24,    -1,    26,
    3710             :       -1,   318,   319,    -1,    31,    -1,    -1,    -1,    -1,    36,
    3711             :       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
    3712             :       -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
    3713             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3714             :       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3715             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3716             :       -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    96,
    3717             :       -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3718             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3719             :      117,    -1,    -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,
    3720             :       -1,    -1,    -1,   130,    -1,    -1,    -1,    -1,    -1,    -1,
    3721             :      137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3722             :       -1,    -1,    -1,    -1,   151,   152,   153,   154,   155,   156,
    3723             :      157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    3724             :      167,   168,   169,   170,   171,    -1,   173,    -1,    -1,    -1,
    3725             :      177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
    3726             :      187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
    3727             :      197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
    3728             :      207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
    3729             :      217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
    3730             :      227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
    3731             :      237,    -1,   239,   240,    -1,    -1,   243,   244,    -1,    -1,
    3732             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3733             :       -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
    3734             :      267,    21,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3735             :       -1,    -1,    -1,    -1,    -1,    -1,   283,   284,   285,   286,
    3736             :       -1,    -1,    42,   290,   291,   292,    -1,    -1,    -1,    -1,
    3737             :       -1,    -1,    -1,    53,    -1,    -1,    56,    57,    -1,    -1,
    3738             :       -1,    -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
    3739             :       70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3740             :       -1,    -1,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3741             :       -1,    -1,    -1,    -1,    -1,    95,    -1,    97,    -1,    -1,
    3742             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,
    3743             :       -1,    -1,    -1,    -1,    -1,    -1,   116,    -1,    -1,    -1,
    3744             :       -1,    -1,   122,   123,    -1,    -1,    -1,    -1,    -1,    -1,
    3745             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3746             :       -1,    -1,    11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3747             :       -1,    -1,    -1,   153,    -1,    -1,    -1,    26,    -1,    -1,
    3748             :       -1,    -1,    31,    -1,    -1,    -1,    -1,    36,    -1,    -1,
    3749             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,
    3750             :       -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    -1,    -1,
    3751             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3752             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3753             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3754             :       -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    -1,
    3755             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3756             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   117,    -1,
    3757             :       -1,   120,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3758             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   268,   269,
    3759             :       -1,    -1,   272,   273,    -1,   275,   276,   277,   278,    -1,
    3760             :      280,   281,   151,    -1,   153,   154,    -1,   156,   157,   158,
    3761             :      159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
    3762             :      169,   170,   171,    -1,   173,    -1,    -1,    -1,   177,   178,
    3763             :      179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
    3764             :      189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
    3765             :      199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
    3766             :      209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
    3767             :      219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
    3768             :      229,   230,   231,   232,   233,   234,   235,   236,   237,    11,
    3769             :      239,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3770             :       -1,    -1,    -1,    -1,    26,    -1,    -1,    -1,    -1,    31,
    3771             :       -1,    -1,    -1,    -1,    36,    -1,    -1,    -1,    -1,    -1,
    3772             :       -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,
    3773             :       -1,    -1,    54,    55,    -1,    -1,    -1,    -1,    -1,    -1,
    3774             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3775             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3776             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3777             :       92,    93,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3778             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3779             :       -1,    -1,    -1,    -1,    -1,   117,    -1,    -1,   120,    -1,
    3780             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3781             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3782             :       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,
    3783             :       -1,   153,    -1,    -1,   156,   157,   158,   159,   160,   161,
    3784             :      162,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
    3785             :       -1,   173,    -1,    -1,    -1,   177,   178,   179,   180,   181,
    3786             :      182,    -1,   184,   185,   186,   187,   188,   189,   190,   191,
    3787             :      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
    3788             :      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
    3789             :      212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
    3790             :      222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
    3791             :      232,   233,   234,   235,   236,   237,    -1,   239
    3792             : };
    3793             : 
    3794             : /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    3795             :    symbol of state STATE-NUM.  */
    3796             : static const yytype_uint16 yystos[] =
    3797             : {
    3798             :        0,     3,     6,     8,     9,    11,    19,    20,    21,    22,
    3799             :       23,    24,    25,    26,    31,    36,    41,    45,    47,    48,
    3800             :       49,    54,    55,    59,    60,    67,    68,    69,    76,    84,
    3801             :       91,    92,    93,    96,    98,   111,   113,   117,   120,   128,
    3802             :      129,   130,   132,   134,   135,   137,   151,   152,   153,   154,
    3803             :      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
    3804             :      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
    3805             :      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
    3806             :      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
    3807             :      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
    3808             :      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
    3809             :      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
    3810             :      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
    3811             :      235,   236,   237,   239,   240,   243,   244,   259,   260,   261,
    3812             :      262,   263,   264,   265,   266,   267,   283,   284,   285,   286,
    3813             :      290,   291,   292,   312,   313,   314,   315,   316,   317,   318,
    3814             :      319,   326,   327,   328,   329,   340,   343,   354,   355,   356,
    3815             :      357,   358,   359,   360,   363,   364,   365,   366,   371,   376,
    3816             :      402,   404,   405,   406,   407,   408,   410,   411,   412,   413,
    3817             :      414,   415,   416,   418,   419,   421,   422,   423,   424,   426,
    3818             :      427,   428,   432,   434,   435,   436,   437,   438,   439,   443,
    3819             :      444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
    3820             :      454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
    3821             :      464,   465,   466,   467,   468,   474,   475,   480,   481,   483,
    3822             :      522,   523,   524,   525,   528,   530,   531,   532,   548,   551,
    3823             :      552,   553,   554,   555,   556,   557,   558,   561,   562,   563,
    3824             :      575,   576,   577,   578,   579,   581,   582,   583,   584,   588,
    3825             :      590,   591,   592,   593,   594,   595,   603,   629,   630,   631,
    3826             :      632,   633,   634,   646,   649,     3,   139,   327,   361,   375,
    3827             :      376,   407,   541,   542,   543,   545,   547,   575,    26,    26,
    3828             :        8,   146,   147,   148,   149,   515,   516,   520,   521,     3,
    3829             :       11,    25,   158,   404,     6,    13,     3,   143,     3,     3,
    3830             :      121,   140,   254,    74,     3,   428,    26,   645,    28,    60,
    3831             :      110,   113,   134,   136,   158,   345,   346,   347,   354,     3,
    3832             :      143,    28,    62,   367,     3,     3,   428,    26,   599,   600,
    3833             :      601,   602,     3,     3,     3,    83,     3,     3,     3,     3,
    3834             :        3,   245,   364,   639,   640,   644,     3,     3,     3,     3,
    3835             :        3,   553,   553,     0,     7,    37,    79,    89,   131,   411,
    3836             :      412,   414,   415,   418,   421,   423,    84,   311,   310,    28,
    3837             :       31,   117,   363,   364,   425,    19,    21,    22,    24,     3,
    3838             :        3,     3,     3,     3,     3,     3,     3,   282,     3,     3,
    3839             :        3,     3,     3,   321,   322,   318,   319,    34,   559,   320,
    3840             :      318,    44,   580,     3,   545,     3,     4,    85,     4,     4,
    3841             :       66,   131,     4,    10,   312,    26,   446,   522,   532,   145,
    3842             :       12,    12,    19,     3,   113,   376,   407,    26,    26,   154,
    3843             :      165,   183,   321,   604,   629,   549,   575,   549,   576,   321,
    3844             :      367,   599,   599,    26,   669,   599,     3,    83,   106,     3,
    3845             :      342,   342,   342,   100,     5,    62,    96,   575,   321,   377,
    3846             :      429,   430,   575,   598,   575,   576,    39,    74,    88,   127,
    3847             :      575,   596,   597,     6,    13,   114,   575,   575,   575,   599,
    3848             :      572,   575,   572,   575,   585,   586,   587,    55,   124,   125,
    3849             :      184,   185,   186,   191,   196,   440,   441,   442,   564,   575,
    3850             :      575,     3,   575,   407,   246,   640,   641,   245,   635,   636,
    3851             :      639,   572,   575,   572,   575,     4,   432,   469,   470,   471,
    3852             :      646,   575,   363,     3,   420,   428,   552,   576,    28,   546,
    3853             :      363,   354,   405,   406,   428,     4,   573,   575,   642,   643,
    3854             :      569,   573,   573,   574,   574,   570,   573,     4,   574,   571,
    3855             :      573,     3,    26,   486,   487,   488,   494,   476,   575,   575,
    3856             :      367,   529,   556,     4,   527,   572,   554,   554,   555,   555,
    3857             :       90,   560,   575,   581,   599,   575,     4,   362,   363,   546,
    3858             :      546,   546,     3,   599,   367,    13,    13,    32,     5,   138,
    3859             :        4,   573,     3,   342,   247,   248,   249,   651,   141,   374,
    3860             :      397,   547,   372,   373,   431,   646,    26,   339,   629,   599,
    3861             :      347,    74,     4,    74,    83,   390,   391,     5,    32,   433,
    3862             :      629,   138,   575,    74,     4,    74,   575,    26,   601,    26,
    3863             :      601,   602,   368,   369,   629,     4,     4,     4,   342,     4,
    3864             :        5,     7,    79,     4,    74,    74,    74,   102,   350,   241,
    3865             :      575,   642,   242,   364,   409,   411,   412,   414,   418,   421,
    3866             :      637,   638,   641,   636,     4,     4,     4,     4,     5,   311,
    3867             :      572,    11,    65,   417,   417,   376,    68,    96,   130,   133,
    3868             :      401,     4,    40,    84,   138,   411,     4,     5,     4,     5,
    3869             :        7,     4,     4,     5,     4,     4,     5,   486,   495,   498,
    3870             :      499,     5,   472,     4,   573,     4,     4,    40,     4,     4,
    3871             :        5,   542,   544,   375,   543,   375,     3,   517,   377,    26,
    3872             :       26,   604,    21,    42,    53,    56,    57,    63,    70,    82,
    3873             :       95,    97,   109,   116,   122,   123,   153,   268,   269,   272,
    3874             :      273,   275,   276,   277,   278,   280,   281,   550,   599,   605,
    3875             :      608,   609,   616,   617,   618,   619,   620,   621,   623,   624,
    3876             :      625,   626,   628,   550,   599,     4,    43,    72,   105,   132,
    3877             :      330,   331,   332,   335,   337,   629,    32,    99,    60,   134,
    3878             :      158,   652,   407,     5,     4,     5,   126,     3,    11,   392,
    3879             :      396,   428,   537,   538,   539,   599,   372,   374,   430,   629,
    3880             :      599,   575,   575,    74,    13,     5,   374,   312,   547,   575,
    3881             :      575,   575,   575,   576,   575,    40,     4,   642,   363,     5,
    3882             :      241,   242,   469,   470,   484,   363,     4,    65,   576,   572,
    3883             :      354,   575,   575,   573,   573,   573,   573,   573,   303,   496,
    3884             :      500,     4,    23,   477,     4,   287,   288,   473,   479,     4,
    3885             :      238,   526,   526,   572,   363,   432,   518,   519,   646,    13,
    3886             :       13,     3,   270,   274,   610,   611,     3,   622,   622,   104,
    3887             :        3,   270,   274,   610,   622,   610,   610,   270,   274,   610,
    3888             :      611,   611,     3,   612,   613,    42,   153,   612,   612,   270,
    3889             :      274,   610,    55,   184,   185,   186,   191,   196,   564,   565,
    3890             :      567,   568,     4,    42,   606,   580,   607,     4,     4,     3,
    3891             :       87,    87,     4,     5,     3,   605,   376,    99,   653,   100,
    3892             :      373,   629,    26,   108,   348,   349,   648,     3,   396,   539,
    3893             :      150,     5,    50,    75,    81,    94,   160,   168,   533,   536,
    3894             :       32,   393,   647,   393,   395,   390,    77,   398,     4,   575,
    3895             :       26,   369,    59,   370,   575,     4,    71,   589,   589,     4,
    3896             :      351,   352,   364,   408,   354,   364,   411,   412,   414,   418,
    3897             :      421,   638,   642,     4,    19,   411,     5,     5,    40,   350,
    3898             :        5,   473,   289,   289,    77,     4,     4,     5,   604,   604,
    3899             :       23,   611,   271,    23,    23,   611,   271,   142,   279,   627,
    3900             :      627,   611,   271,    23,   614,   270,   274,   610,   270,   610,
    3901             :      611,   271,   622,   610,   126,   114,   607,   407,     3,   331,
    3902             :      339,   333,   142,   341,   339,   654,   602,     5,   142,   344,
    3903             :        4,   539,   396,    86,   536,   103,    86,    26,     3,   338,
    3904             :       26,    40,    78,   400,   575,     4,     4,     5,    33,    61,
    3905             :      353,   353,    89,   363,    74,   482,   485,    12,   575,   573,
    3906             :      573,    26,   501,   502,   603,   301,   302,   497,   504,   505,
    3907             :      478,   575,     3,   526,   519,     4,   612,     4,     5,     4,
    3908             :      612,   122,   122,   612,    14,    15,    16,    17,    18,   615,
    3909             :        4,   611,   271,   611,   612,   191,   564,   566,    26,     4,
    3910             :      339,     4,    25,    43,    59,   110,   335,   336,    43,   251,
    3911             :      650,   349,    76,    12,   396,    86,   396,   339,   338,   399,
    3912             :      446,   603,   407,   304,   489,   490,   352,   293,   294,   473,
    3913             :        5,     5,   607,    37,    51,   299,   444,   506,   507,   508,
    3914             :      509,   350,    23,   144,   144,   612,   610,     4,    96,     3,
    3915             :       96,   137,   334,   432,   558,   599,   101,   257,   258,   662,
    3916             :      663,    71,   655,   656,   101,   396,   100,   138,   534,   535,
    3917             :      540,     4,     5,   486,   491,   492,   493,   350,   573,   502,
    3918             :      299,   444,   507,   510,   512,   513,   255,   300,   300,   295,
    3919             :      503,   514,     4,     4,   110,   407,     3,   121,   255,   394,
    3920             :      121,   394,   663,   250,   245,   658,   407,     3,   446,   603,
    3921             :        5,    32,   306,   387,   389,   298,   298,   311,    51,    77,
    3922             :      297,   305,   599,     4,   339,   393,   393,   393,   393,   255,
    3923             :      256,   657,     3,   403,   252,   327,   659,   661,   339,   492,
    3924             :      494,    23,   307,   378,   379,   511,   512,   255,   296,     3,
    3925             :        4,    26,   665,   666,    26,   668,   664,   666,    26,   667,
    3926             :      407,   253,     4,   307,   388,   385,   432,    69,   383,   384,
    3927             :      339,     4,   660,   661,    23,   255,   302,   382,   293,   308,
    3928             :      381,     4,     7,   380,   386,   432,   242,   661,   382,   309
    3929             : };
    3930             : 
    3931             : #define yyerrok         (yyerrstatus = 0)
    3932             : #define yyclearin       (yychar = YYEMPTY)
    3933             : #define YYEMPTY         (-2)
    3934             : #define YYEOF           0
    3935             : 
    3936             : #define YYACCEPT        goto yyacceptlab
    3937             : #define YYABORT         goto yyabortlab
    3938             : #define YYERROR         goto yyerrorlab
    3939             : 
    3940             : 
    3941             : /* Like YYERROR except do call yyerror.  This remains here temporarily
    3942             :    to ease the transition to the new meaning of YYERROR, for GCC.
    3943             :    Once GCC version 2 has supplanted version 1, this can go.  However,
    3944             :    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
    3945             :    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
    3946             :    discussed.  */
    3947             : 
    3948             : #define YYFAIL          goto yyerrlab
    3949             : #if defined YYFAIL
    3950             :   /* This is here to suppress warnings from the GCC cpp's
    3951             :      -Wunused-macros.  Normally we don't worry about that warning, but
    3952             :      some users do, and we want to make it easy for users to remove
    3953             :      YYFAIL uses, which will produce warnings from Bison 2.5.  */
    3954             : #endif
    3955             : 
    3956             : #define YYRECOVERING()  (!!yyerrstatus)
    3957             : 
    3958             : #define YYBACKUP(Token, Value)                                  \
    3959             : do                                                              \
    3960             :   if (yychar == YYEMPTY && yylen == 1)                          \
    3961             :     {                                                           \
    3962             :       yychar = (Token);                                         \
    3963             :       yylval = (Value);                                         \
    3964             :       YYPOPSTACK (1);                                           \
    3965             :       goto yybackup;                                            \
    3966             :     }                                                           \
    3967             :   else                                                          \
    3968             :     {                                                           \
    3969             :       yyerror (YY_("syntax error: cannot back up")); \
    3970             :       YYERROR;                                                  \
    3971             :     }                                                           \
    3972             : while (YYID (0))
    3973             : 
    3974             : 
    3975             : #define YYTERROR        1
    3976             : #define YYERRCODE       256
    3977             : 
    3978             : 
    3979             : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    3980             :    If N is 0, then set CURRENT to the empty location which ends
    3981             :    the previous symbol: RHS[0] (always defined).  */
    3982             : 
    3983             : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    3984             : #ifndef YYLLOC_DEFAULT
    3985             : # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    3986             :     do                                                                  \
    3987             :       if (YYID (N))                                                    \
    3988             :         {                                                               \
    3989             :           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
    3990             :           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
    3991             :           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
    3992             :           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
    3993             :         }                                                               \
    3994             :       else                                                              \
    3995             :         {                                                               \
    3996             :           (Current).first_line   = (Current).last_line   =              \
    3997             :             YYRHSLOC (Rhs, 0).last_line;                                \
    3998             :           (Current).first_column = (Current).last_column =              \
    3999             :             YYRHSLOC (Rhs, 0).last_column;                              \
    4000             :         }                                                               \
    4001             :     while (YYID (0))
    4002             : #endif
    4003             : 
    4004             : 
    4005             : /* This macro is provided for backward compatibility. */
    4006             : 
    4007             : #ifndef YY_LOCATION_PRINT
    4008             : # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    4009             : #endif
    4010             : 
    4011             : 
    4012             : /* YYLEX -- calling `yylex' with the right arguments.  */
    4013             : 
    4014             : #ifdef YYLEX_PARAM
    4015             : # define YYLEX yylex (YYLEX_PARAM)
    4016             : #else
    4017             : # define YYLEX yylex ()
    4018             : #endif
    4019             : 
    4020             : /* Enable debugging if requested.  */
    4021             : #if YYDEBUG
    4022             : 
    4023             : # ifndef YYFPRINTF
    4024             : #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    4025             : #  define YYFPRINTF fprintf
    4026             : # endif
    4027             : 
    4028             : # define YYDPRINTF(Args)                        \
    4029             : do {                                            \
    4030             :   if (yydebug)                                  \
    4031             :     YYFPRINTF Args;                             \
    4032             : } while (YYID (0))
    4033             : 
    4034             : # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
    4035             : do {                                                                      \
    4036             :   if (yydebug)                                                            \
    4037             :     {                                                                     \
    4038             :       YYFPRINTF (stderr, "%s ", Title);                                         \
    4039             :       yy_symbol_print (stderr,                                            \
    4040             :                   Type, Value); \
    4041             :       YYFPRINTF (stderr, "\n");                                                 \
    4042             :     }                                                                     \
    4043             : } while (YYID (0))
    4044             : 
    4045             : 
    4046             : /*--------------------------------.
    4047             : | Print this symbol on YYOUTPUT.  |
    4048             : `--------------------------------*/
    4049             : 
    4050             : /*ARGSUSED*/
    4051             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4052             :      || defined __cplusplus || defined _MSC_VER)
    4053             : static void
    4054             : yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4055             : #else
    4056             : static void
    4057             : yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    4058             :     FILE *yyoutput;
    4059             :     int yytype;
    4060             :     YYSTYPE const * const yyvaluep;
    4061             : #endif
    4062             : {
    4063             :   if (!yyvaluep)
    4064             :     return;
    4065             : # ifdef YYPRINT
    4066             :   if (yytype < YYNTOKENS)
    4067             :     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    4068             : # else
    4069             :   YYUSE (yyoutput);
    4070             : # endif
    4071             :   switch (yytype)
    4072             :     {
    4073             :       default:
    4074             :         break;
    4075             :     }
    4076             : }
    4077             : 
    4078             : 
    4079             : /*--------------------------------.
    4080             : | Print this symbol on YYOUTPUT.  |
    4081             : `--------------------------------*/
    4082             : 
    4083             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4084             :      || defined __cplusplus || defined _MSC_VER)
    4085             : static void
    4086             : yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    4087             : #else
    4088             : static void
    4089             : yy_symbol_print (yyoutput, yytype, yyvaluep)
    4090             :     FILE *yyoutput;
    4091             :     int yytype;
    4092             :     YYSTYPE const * const yyvaluep;
    4093             : #endif
    4094             : {
    4095             :   if (yytype < YYNTOKENS)
    4096             :     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    4097             :   else
    4098             :     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    4099             : 
    4100             :   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    4101             :   YYFPRINTF (yyoutput, ")");
    4102             : }
    4103             : 
    4104             : /*------------------------------------------------------------------.
    4105             : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    4106             : | TOP (included).                                                   |
    4107             : `------------------------------------------------------------------*/
    4108             : 
    4109             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4110             :      || defined __cplusplus || defined _MSC_VER)
    4111             : static void
    4112             : yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
    4113             : #else
    4114             : static void
    4115             : yy_stack_print (yybottom, yytop)
    4116             :     yytype_int16 *yybottom;
    4117             :     yytype_int16 *yytop;
    4118             : #endif
    4119             : {
    4120             :   YYFPRINTF (stderr, "Stack now");
    4121             :   for (; yybottom <= yytop; yybottom++)
    4122             :     {
    4123             :       int yybot = *yybottom;
    4124             :       YYFPRINTF (stderr, " %d", yybot);
    4125             :     }
    4126             :   YYFPRINTF (stderr, "\n");
    4127             : }
    4128             : 
    4129             : # define YY_STACK_PRINT(Bottom, Top)                            \
    4130             : do {                                                            \
    4131             :   if (yydebug)                                                  \
    4132             :     yy_stack_print ((Bottom), (Top));                           \
    4133             : } while (YYID (0))
    4134             : 
    4135             : 
    4136             : /*------------------------------------------------.
    4137             : | Report that the YYRULE is going to be reduced.  |
    4138             : `------------------------------------------------*/
    4139             : 
    4140             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4141             :      || defined __cplusplus || defined _MSC_VER)
    4142             : static void
    4143             : yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
    4144             : #else
    4145             : static void
    4146             : yy_reduce_print (yyvsp, yyrule)
    4147             :     YYSTYPE *yyvsp;
    4148             :     int yyrule;
    4149             : #endif
    4150             : {
    4151             :   int yynrhs = yyr2[yyrule];
    4152             :   int yyi;
    4153             :   unsigned long int yylno = yyrline[yyrule];
    4154             :   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
    4155             :              yyrule - 1, yylno);
    4156             :   /* The symbols being reduced.  */
    4157             :   for (yyi = 0; yyi < yynrhs; yyi++)
    4158             :     {
    4159             :       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
    4160             :       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
    4161             :                        &(yyvsp[(yyi + 1) - (yynrhs)])
    4162             :                                        );
    4163             :       YYFPRINTF (stderr, "\n");
    4164             :     }
    4165             : }
    4166             : 
    4167             : # define YY_REDUCE_PRINT(Rule)          \
    4168             : do {                                    \
    4169             :   if (yydebug)                          \
    4170             :     yy_reduce_print (yyvsp, Rule); \
    4171             : } while (YYID (0))
    4172             : 
    4173             : /* Nonzero means print parse trace.  It is left uninitialized so that
    4174             :    multiple parsers can coexist.  */
    4175             : int yydebug;
    4176             : #else /* !YYDEBUG */
    4177             : # define YYDPRINTF(Args)
    4178             : # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
    4179             : # define YY_STACK_PRINT(Bottom, Top)
    4180             : # define YY_REDUCE_PRINT(Rule)
    4181             : #endif /* !YYDEBUG */
    4182             : 
    4183             : 
    4184             : /* YYINITDEPTH -- initial size of the parser's stacks.  */
    4185             : #ifndef YYINITDEPTH
    4186             : # define YYINITDEPTH 200
    4187             : #endif
    4188             : 
    4189             : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
    4190             :    if the built-in stack extension method is used).
    4191             : 
    4192             :    Do not make this value too large; the results are undefined if
    4193             :    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
    4194             :    evaluated with infinite-precision integer arithmetic.  */
    4195             : 
    4196             : #ifndef YYMAXDEPTH
    4197             : # define YYMAXDEPTH 10000
    4198             : #endif
    4199             : 
    4200             : 
    4201             : #if YYERROR_VERBOSE
    4202             : 
    4203             : # ifndef yystrlen
    4204             : #  if defined __GLIBC__ && defined _STRING_H
    4205             : #   define yystrlen strlen
    4206             : #  else
    4207             : /* Return the length of YYSTR.  */
    4208             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4209             :      || defined __cplusplus || defined _MSC_VER)
    4210             : static YYSIZE_T
    4211             : yystrlen (const char *yystr)
    4212             : #else
    4213             : static YYSIZE_T
    4214             : yystrlen (yystr)
    4215             :     const char *yystr;
    4216             : #endif
    4217             : {
    4218             :   YYSIZE_T yylen;
    4219             :   for (yylen = 0; yystr[yylen]; yylen++)
    4220             :     continue;
    4221             :   return yylen;
    4222             : }
    4223             : #  endif
    4224             : # endif
    4225             : 
    4226             : # ifndef yystpcpy
    4227             : #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
    4228             : #   define yystpcpy stpcpy
    4229             : #  else
    4230             : /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
    4231             :    YYDEST.  */
    4232             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4233             :      || defined __cplusplus || defined _MSC_VER)
    4234             : static char *
    4235             : yystpcpy (char *yydest, const char *yysrc)
    4236             : #else
    4237             : static char *
    4238             : yystpcpy (yydest, yysrc)
    4239             :     char *yydest;
    4240             :     const char *yysrc;
    4241             : #endif
    4242             : {
    4243             :   char *yyd = yydest;
    4244             :   const char *yys = yysrc;
    4245             : 
    4246             :   while ((*yyd++ = *yys++) != '\0')
    4247             :     continue;
    4248             : 
    4249             :   return yyd - 1;
    4250             : }
    4251             : #  endif
    4252             : # endif
    4253             : 
    4254             : # ifndef yytnamerr
    4255             : /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
    4256             :    quotes and backslashes, so that it's suitable for yyerror.  The
    4257             :    heuristic is that double-quoting is unnecessary unless the string
    4258             :    contains an apostrophe, a comma, or backslash (other than
    4259             :    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
    4260             :    null, do not copy; instead, return the length of what the result
    4261             :    would have been.  */
    4262             : static YYSIZE_T
    4263           0 : yytnamerr (char *yyres, const char *yystr)
    4264             : {
    4265           0 :   if (*yystr == '"')
    4266             :     {
    4267           0 :       YYSIZE_T yyn = 0;
    4268           0 :       char const *yyp = yystr;
    4269             : 
    4270           0 :       for (;;)
    4271           0 :         switch (*++yyp)
    4272             :           {
    4273             :           case '\'':
    4274             :           case ',':
    4275           0 :             goto do_not_strip_quotes;
    4276             : 
    4277             :           case '\\':
    4278           0 :             if (*++yyp != '\\')
    4279           0 :               goto do_not_strip_quotes;
    4280             :             /* Fall through.  */
    4281             :           default:
    4282           0 :             if (yyres)
    4283           0 :               yyres[yyn] = *yyp;
    4284           0 :             yyn++;
    4285           0 :             break;
    4286             : 
    4287             :           case '"':
    4288           0 :             if (yyres)
    4289           0 :               yyres[yyn] = '\0';
    4290           0 :             return yyn;
    4291             :           }
    4292             :     do_not_strip_quotes: ;
    4293             :     }
    4294             : 
    4295           0 :   if (! yyres)
    4296           0 :     return yystrlen (yystr);
    4297             : 
    4298           0 :   return yystpcpy (yyres, yystr) - yyres;
    4299             : }
    4300             : # endif
    4301             : 
    4302             : /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
    4303             :    about the unexpected token YYTOKEN for the state stack whose top is
    4304             :    YYSSP.
    4305             : 
    4306             :    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
    4307             :    not large enough to hold the message.  In that case, also set
    4308             :    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
    4309             :    required number of bytes is too large to store.  */
    4310             : static int
    4311           0 : yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
    4312             :                 yytype_int16 *yyssp, int yytoken)
    4313             : {
    4314           0 :   YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
    4315           0 :   YYSIZE_T yysize = yysize0;
    4316             :   YYSIZE_T yysize1;
    4317             :   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    4318             :   /* Internationalized format string. */
    4319           0 :   const char *yyformat = 0;
    4320             :   /* Arguments of yyformat. */
    4321             :   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
    4322             :   /* Number of reported tokens (one for the "unexpected", one per
    4323             :      "expected"). */
    4324           0 :   int yycount = 0;
    4325             : 
    4326             :   /* There are many possibilities here to consider:
    4327             :      - Assume YYFAIL is not used.  It's too flawed to consider.  See
    4328             :        <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
    4329             :        for details.  YYERROR is fine as it does not invoke this
    4330             :        function.
    4331             :      - If this state is a consistent state with a default action, then
    4332             :        the only way this function was invoked is if the default action
    4333             :        is an error action.  In that case, don't check for expected
    4334             :        tokens because there are none.
    4335             :      - The only way there can be no lookahead present (in yychar) is if
    4336             :        this state is a consistent state with a default action.  Thus,
    4337             :        detecting the absence of a lookahead is sufficient to determine
    4338             :        that there is no unexpected or expected token to report.  In that
    4339             :        case, just report a simple "syntax error".
    4340             :      - Don't assume there isn't a lookahead just because this state is a
    4341             :        consistent state with a default action.  There might have been a
    4342             :        previous inconsistent state, consistent state with a non-default
    4343             :        action, or user semantic action that manipulated yychar.
    4344             :      - Of course, the expected token list depends on states to have
    4345             :        correct lookahead information, and it depends on the parser not
    4346             :        to perform extra reductions after fetching a lookahead from the
    4347             :        scanner and before detecting a syntax error.  Thus, state merging
    4348             :        (from LALR or IELR) and default reductions corrupt the expected
    4349             :        token list.  However, the list is correct for canonical LR with
    4350             :        one exception: it will still contain any token that will not be
    4351             :        accepted due to an error action in a later state.
    4352             :   */
    4353           0 :   if (yytoken != YYEMPTY)
    4354             :     {
    4355           0 :       int yyn = yypact[*yyssp];
    4356           0 :       yyarg[yycount++] = yytname[yytoken];
    4357           0 :       if (!yypact_value_is_default (yyn))
    4358             :         {
    4359             :           /* Start YYX at -YYN if negative to avoid negative indexes in
    4360             :              YYCHECK.  In other words, skip the first -YYN actions for
    4361             :              this state because they are default actions.  */
    4362           0 :           int yyxbegin = yyn < 0 ? -yyn : 0;
    4363             :           /* Stay within bounds of both yycheck and yytname.  */
    4364           0 :           int yychecklim = YYLAST - yyn + 1;
    4365           0 :           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
    4366             :           int yyx;
    4367             : 
    4368           0 :           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
    4369           0 :             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
    4370             :                 && !yytable_value_is_error (yytable[yyx + yyn]))
    4371             :               {
    4372           0 :                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
    4373             :                   {
    4374           0 :                     yycount = 1;
    4375           0 :                     yysize = yysize0;
    4376           0 :                     break;
    4377             :                   }
    4378           0 :                 yyarg[yycount++] = yytname[yyx];
    4379           0 :                 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
    4380           0 :                 if (! (yysize <= yysize1
    4381             :                        && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4382           0 :                   return 2;
    4383           0 :                 yysize = yysize1;
    4384             :               }
    4385             :         }
    4386             :     }
    4387             : 
    4388           0 :   switch (yycount)
    4389             :     {
    4390             : # define YYCASE_(N, S)                      \
    4391             :       case N:                               \
    4392             :         yyformat = S;                       \
    4393             :       break
    4394           0 :       YYCASE_(0, YY_("syntax error"));
    4395           0 :       YYCASE_(1, YY_("syntax error, unexpected %s"));
    4396           0 :       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
    4397           0 :       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
    4398           0 :       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
    4399           0 :       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
    4400             : # undef YYCASE_
    4401             :     }
    4402             : 
    4403           0 :   yysize1 = yysize + yystrlen (yyformat);
    4404           0 :   if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
    4405           0 :     return 2;
    4406           0 :   yysize = yysize1;
    4407             : 
    4408           0 :   if (*yymsg_alloc < yysize)
    4409             :     {
    4410           0 :       *yymsg_alloc = 2 * yysize;
    4411           0 :       if (! (yysize <= *yymsg_alloc
    4412           0 :              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
    4413           0 :         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
    4414           0 :       return 1;
    4415             :     }
    4416             : 
    4417             :   /* Avoid sprintf, as that infringes on the user's name space.
    4418             :      Don't have undefined behavior even if the translation
    4419             :      produced a string with the wrong number of "%s"s.  */
    4420             :   {
    4421           0 :     char *yyp = *yymsg;
    4422           0 :     int yyi = 0;
    4423           0 :     while ((*yyp = *yyformat) != '\0')
    4424           0 :       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
    4425             :         {
    4426           0 :           yyp += yytnamerr (yyp, yyarg[yyi++]);
    4427           0 :           yyformat += 2;
    4428             :         }
    4429             :       else
    4430             :         {
    4431           0 :           yyp++;
    4432           0 :           yyformat++;
    4433             :         }
    4434             :   }
    4435           0 :   return 0;
    4436             : }
    4437             : #endif /* YYERROR_VERBOSE */
    4438             : 
    4439             : /*-----------------------------------------------.
    4440             : | Release the memory associated to this symbol.  |
    4441             : `-----------------------------------------------*/
    4442             : 
    4443             : /*ARGSUSED*/
    4444             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4445             :      || defined __cplusplus || defined _MSC_VER)
    4446             : static void
    4447           8 : yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
    4448             : #else
    4449             : static void
    4450             : yydestruct (yymsg, yytype, yyvaluep)
    4451             :     const char *yymsg;
    4452             :     int yytype;
    4453             :     YYSTYPE *yyvaluep;
    4454             : #endif
    4455             : {
    4456             :   YYUSE (yyvaluep);
    4457             : 
    4458           8 :   if (!yymsg)
    4459           0 :     yymsg = "Deleting";
    4460             :   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
    4461             : 
    4462             :   switch (yytype)
    4463             :     {
    4464             : 
    4465             :       default:
    4466           8 :         break;
    4467             :     }
    4468           8 : }
    4469             : 
    4470             : 
    4471             : /* Prevent warnings from -Wmissing-prototypes.  */
    4472             : #ifdef YYPARSE_PARAM
    4473             : #if defined __STDC__ || defined __cplusplus
    4474             : int yyparse (void *YYPARSE_PARAM);
    4475             : #else
    4476             : int yyparse ();
    4477             : #endif
    4478             : #else /* ! YYPARSE_PARAM */
    4479             : #if defined __STDC__ || defined __cplusplus
    4480             : int yyparse (void);
    4481             : #else
    4482             : int yyparse ();
    4483             : #endif
    4484             : #endif /* ! YYPARSE_PARAM */
    4485             : 
    4486             : 
    4487             : /* The lookahead symbol.  */
    4488             : int yychar;
    4489             : 
    4490             : /* The semantic value of the lookahead symbol.  */
    4491             : YYSTYPE yylval;
    4492             : 
    4493             : /* Number of syntax errors so far.  */
    4494             : int yynerrs;
    4495             : 
    4496             : 
    4497             : /*----------.
    4498             : | yyparse.  |
    4499             : `----------*/
    4500             : 
    4501             : #ifdef YYPARSE_PARAM
    4502             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4503             :      || defined __cplusplus || defined _MSC_VER)
    4504             : int
    4505             : yyparse (void *YYPARSE_PARAM)
    4506             : #else
    4507             : int
    4508             : yyparse (YYPARSE_PARAM)
    4509             :     void *YYPARSE_PARAM;
    4510             : #endif
    4511             : #else /* ! YYPARSE_PARAM */
    4512             : #if (defined __STDC__ || defined __C99__FUNC__ \
    4513             :      || defined __cplusplus || defined _MSC_VER)
    4514             : int
    4515           4 : yyparse (void)
    4516             : #else
    4517             : int
    4518             : yyparse ()
    4519             : 
    4520             : #endif
    4521             : #endif
    4522             : {
    4523             :     int yystate;
    4524             :     /* Number of tokens to shift before error messages enabled.  */
    4525             :     int yyerrstatus;
    4526             : 
    4527             :     /* The stacks and their tools:
    4528             :        `yyss': related to states.
    4529             :        `yyvs': related to semantic values.
    4530             : 
    4531             :        Refer to the stacks thru separate pointers, to allow yyoverflow
    4532             :        to reallocate them elsewhere.  */
    4533             : 
    4534             :     /* The state stack.  */
    4535             :     yytype_int16 yyssa[YYINITDEPTH];
    4536             :     yytype_int16 *yyss;
    4537             :     yytype_int16 *yyssp;
    4538             : 
    4539             :     /* The semantic value stack.  */
    4540             :     YYSTYPE yyvsa[YYINITDEPTH];
    4541             :     YYSTYPE *yyvs;
    4542             :     YYSTYPE *yyvsp;
    4543             : 
    4544             :     YYSIZE_T yystacksize;
    4545             : 
    4546             :   int yyn;
    4547             :   int yyresult;
    4548             :   /* Lookahead token as an internal (translated) token number.  */
    4549             :   int yytoken;
    4550             :   /* The variables used to return semantic value and location from the
    4551             :      action routines.  */
    4552             :   YYSTYPE yyval;
    4553             : 
    4554             : #if YYERROR_VERBOSE
    4555             :   /* Buffer for error messages, and its allocated size.  */
    4556             :   char yymsgbuf[128];
    4557           4 :   char *yymsg = yymsgbuf;
    4558           4 :   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
    4559             : #endif
    4560             : 
    4561             : #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
    4562             : 
    4563             :   /* The number of symbols on the RHS of the reduced rule.
    4564             :      Keep to zero when no symbol should be popped.  */
    4565           4 :   int yylen = 0;
    4566             : 
    4567           4 :   yytoken = 0;
    4568           4 :   yyss = yyssa;
    4569           4 :   yyvs = yyvsa;
    4570           4 :   yystacksize = YYINITDEPTH;
    4571             : 
    4572             :   YYDPRINTF ((stderr, "Starting parse\n"));
    4573             : 
    4574           4 :   yystate = 0;
    4575           4 :   yyerrstatus = 0;
    4576           4 :   yynerrs = 0;
    4577           4 :   yychar = YYEMPTY; /* Cause a token to be read.  */
    4578             : 
    4579             :   /* Initialize stack pointers.
    4580             :      Waste one element of value and location stack
    4581             :      so that they stay on the same level as the state stack.
    4582             :      The wasted elements are never initialized.  */
    4583           4 :   yyssp = yyss;
    4584           4 :   yyvsp = yyvs;
    4585             : 
    4586           4 :   goto yysetstate;
    4587             : 
    4588             : /*------------------------------------------------------------.
    4589             : | yynewstate -- Push a new state, which is found in yystate.  |
    4590             : `------------------------------------------------------------*/
    4591             :  yynewstate:
    4592             :   /* In all cases, when you get here, the value and location stacks
    4593             :      have just been pushed.  So pushing a state here evens the stacks.  */
    4594         244 :   yyssp++;
    4595             : 
    4596             :  yysetstate:
    4597         248 :   *yyssp = yystate;
    4598             : 
    4599         248 :   if (yyss + yystacksize - 1 <= yyssp)
    4600             :     {
    4601             :       /* Get the current used size of the three stacks, in elements.  */
    4602           0 :       YYSIZE_T yysize = yyssp - yyss + 1;
    4603             : 
    4604             : #ifdef yyoverflow
    4605             :       {
    4606             :         /* Give user a chance to reallocate the stack.  Use copies of
    4607             :            these so that the &'s don't force the real ones into
    4608             :            memory.  */
    4609             :         YYSTYPE *yyvs1 = yyvs;
    4610             :         yytype_int16 *yyss1 = yyss;
    4611             : 
    4612             :         /* Each stack pointer address is followed by the size of the
    4613             :            data in use in that stack, in bytes.  This used to be a
    4614             :            conditional around just the two extra args, but that might
    4615             :            be undefined if yyoverflow is a macro.  */
    4616             :         yyoverflow (YY_("memory exhausted"),
    4617             :                     &yyss1, yysize * sizeof (*yyssp),
    4618             :                     &yyvs1, yysize * sizeof (*yyvsp),
    4619             :                     &yystacksize);
    4620             : 
    4621             :         yyss = yyss1;
    4622             :         yyvs = yyvs1;
    4623             :       }
    4624             : #else /* no yyoverflow */
    4625             : # ifndef YYSTACK_RELOCATE
    4626             :       goto yyexhaustedlab;
    4627             : # else
    4628             :       /* Extend the stack our own way.  */
    4629           0 :       if (YYMAXDEPTH <= yystacksize)
    4630           0 :         goto yyexhaustedlab;
    4631           0 :       yystacksize *= 2;
    4632           0 :       if (YYMAXDEPTH < yystacksize)
    4633           0 :         yystacksize = YYMAXDEPTH;
    4634             : 
    4635             :       {
    4636           0 :         yytype_int16 *yyss1 = yyss;
    4637             :         union yyalloc *yyptr =
    4638           0 :           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
    4639           0 :         if (! yyptr)
    4640           0 :           goto yyexhaustedlab;
    4641           0 :         YYSTACK_RELOCATE (yyss_alloc, yyss);
    4642           0 :         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
    4643             : #  undef YYSTACK_RELOCATE
    4644           0 :         if (yyss1 != yyssa)
    4645           0 :           YYSTACK_FREE (yyss1);
    4646             :       }
    4647             : # endif
    4648             : #endif /* no yyoverflow */
    4649             : 
    4650           0 :       yyssp = yyss + yysize - 1;
    4651           0 :       yyvsp = yyvs + yysize - 1;
    4652             : 
    4653             :       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
    4654             :                   (unsigned long int) yystacksize));
    4655             : 
    4656           0 :       if (yyss + yystacksize - 1 <= yyssp)
    4657           0 :         YYABORT;
    4658             :     }
    4659             : 
    4660             :   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
    4661             : 
    4662         248 :   if (yystate == YYFINAL)
    4663           4 :     YYACCEPT;
    4664             : 
    4665         244 :   goto yybackup;
    4666             : 
    4667             : /*-----------.
    4668             : | yybackup.  |
    4669             : `-----------*/
    4670             : yybackup:
    4671             : 
    4672             :   /* Do appropriate processing given the current state.  Read a
    4673             :      lookahead token if we need one and don't already have one.  */
    4674             : 
    4675             :   /* First try to decide what to do without reference to lookahead token.  */
    4676         244 :   yyn = yypact[yystate];
    4677         244 :   if (yypact_value_is_default (yyn))
    4678          98 :     goto yydefault;
    4679             : 
    4680             :   /* Not known => get a lookahead token if don't already have one.  */
    4681             : 
    4682             :   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
    4683         146 :   if (yychar == YYEMPTY)
    4684             :     {
    4685             :       YYDPRINTF ((stderr, "Reading a token: "));
    4686          34 :       yychar = YYLEX;
    4687             :     }
    4688             : 
    4689         146 :   if (yychar <= YYEOF)
    4690             :     {
    4691          56 :       yychar = yytoken = YYEOF;
    4692             :       YYDPRINTF ((stderr, "Now at end of input.\n"));
    4693             :     }
    4694             :   else
    4695             :     {
    4696          90 :       yytoken = YYTRANSLATE (yychar);
    4697             :       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    4698             :     }
    4699             : 
    4700             :   /* If the proper action on seeing token YYTOKEN is to reduce or to
    4701             :      detect an error, take that action.  */
    4702         146 :   yyn += yytoken;
    4703         146 :   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    4704             :     goto yydefault;
    4705          36 :   yyn = yytable[yyn];
    4706          36 :   if (yyn <= 0)
    4707             :     {
    4708             :       if (yytable_value_is_error (yyn))
    4709             :         goto yyerrlab;
    4710           2 :       yyn = -yyn;
    4711           2 :       goto yyreduce;
    4712             :     }
    4713             : 
    4714             :   /* Count tokens shifted since error; after three, turn off error
    4715             :      status.  */
    4716          34 :   if (yyerrstatus)
    4717           0 :     yyerrstatus--;
    4718             : 
    4719             :   /* Shift the lookahead token.  */
    4720             :   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
    4721             : 
    4722             :   /* Discard the shifted token.  */
    4723          34 :   yychar = YYEMPTY;
    4724             : 
    4725          34 :   yystate = yyn;
    4726          34 :   *++yyvsp = yylval;
    4727             : 
    4728          34 :   goto yynewstate;
    4729             : 
    4730             : 
    4731             : /*-----------------------------------------------------------.
    4732             : | yydefault -- do the default action for the current state.  |
    4733             : `-----------------------------------------------------------*/
    4734             : yydefault:
    4735         208 :   yyn = yydefact[yystate];
    4736         208 :   if (yyn == 0)
    4737           0 :     goto yyerrlab;
    4738         208 :   goto yyreduce;
    4739             : 
    4740             : 
    4741             : /*-----------------------------.
    4742             : | yyreduce -- Do a reduction.  |
    4743             : `-----------------------------*/
    4744             : yyreduce:
    4745             :   /* yyn is the number of a rule to reduce with.  */
    4746         210 :   yylen = yyr2[yyn];
    4747             : 
    4748             :   /* If YYLEN is nonzero, implement the default value of the action:
    4749             :      `$$ = $1'.
    4750             : 
    4751             :      Otherwise, the following line sets YYVAL to garbage.
    4752             :      This behavior is undocumented and Bison
    4753             :      users should not rely upon it.  Assigning to YYVAL
    4754             :      unconditionally makes the parser a bit smaller, and it avoids a
    4755             :      GCC warning that YYVAL may be used uninitialized.  */
    4756         210 :   yyval = yyvsp[1-yylen];
    4757             : 
    4758             : 
    4759             :   YY_REDUCE_PRINT (yyn);
    4760         210 :   switch (yyn)
    4761             :     {
    4762             :         case 2:
    4763             : 
    4764           4 :     { xxx_pGLOBAL_SQLPARSER->setParseTree( (yyvsp[(1) - (1)].pParseNode) ); }
    4765           4 :     break;
    4766             : 
    4767             :   case 3:
    4768             : 
    4769           0 :     { xxx_pGLOBAL_SQLPARSER->setParseTree( (yyvsp[(1) - (2)].pParseNode) ); }
    4770           0 :     break;
    4771             : 
    4772             :   case 5:
    4773             : 
    4774             :     {
    4775           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    4776           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    4777             :            }
    4778           0 :     break;
    4779             : 
    4780             :   case 10:
    4781             : 
    4782           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4783           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    4784           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode));
    4785           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    4786           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4787           0 :                 (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    4788           0 :                 (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4789           0 :     break;
    4790             : 
    4791             :   case 11:
    4792             : 
    4793           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    4794           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    4795           0 :     break;
    4796             : 
    4797             :   case 12:
    4798             : 
    4799           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    4800           0 :                 (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    4801           0 :     break;
    4802             : 
    4803             :   case 15:
    4804             : 
    4805           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4806           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    4807           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    4808           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    4809             :                         }
    4810           0 :     break;
    4811             : 
    4812             :   case 16:
    4813             : 
    4814           0 :     {(yyval.pParseNode) = SQL_NEW_LISTRULE;}
    4815           0 :     break;
    4816             : 
    4817             :   case 17:
    4818             : 
    4819           0 :     {(yyvsp[(1) - (2)].pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    4820           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (2)].pParseNode);}
    4821           0 :     break;
    4822             : 
    4823             :   case 20:
    4824             : 
    4825             :     {
    4826           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    4827           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4828           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    4829             :                 }
    4830           0 :     break;
    4831             : 
    4832             :   case 21:
    4833             : 
    4834           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4835           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4836           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    4837           0 :     break;
    4838             : 
    4839             :   case 23:
    4840             : 
    4841           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4842           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4843           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    4844           0 :     break;
    4845             : 
    4846             :   case 24:
    4847             : 
    4848           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4849           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4850           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    4851           0 :     break;
    4852             : 
    4853             :   case 25:
    4854             : 
    4855           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4856           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4857           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    4858           0 :     break;
    4859             : 
    4860             :   case 26:
    4861             : 
    4862             :     {
    4863           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    4864           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4865           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    4866             :                         }
    4867           0 :     break;
    4868             : 
    4869             :   case 28:
    4870             : 
    4871           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4872           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    4873           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4874           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    4875           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4876           0 :     break;
    4877             : 
    4878             :   case 29:
    4879             : 
    4880           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4881           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    4882           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    4883           0 :     break;
    4884             : 
    4885             :   case 30:
    4886             : 
    4887           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4888           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    4889           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    4890           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4891           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    4892           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4893           0 :     break;
    4894             : 
    4895             :   case 31:
    4896             : 
    4897           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4898           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    4899           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4900           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    4901           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4902           0 :     break;
    4903             : 
    4904             :   case 32:
    4905             : 
    4906           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4907           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    4908           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode));
    4909           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4910           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    4911           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    4912           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode));
    4913           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));}
    4914           0 :     break;
    4915             : 
    4916             :   case 33:
    4917             : 
    4918           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4919           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (10)].pParseNode));
    4920           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (10)].pParseNode));
    4921           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (10)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4922           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (10)].pParseNode));
    4923           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (10)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    4924           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (10)].pParseNode));
    4925           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (10)].pParseNode));
    4926           0 :                         (yyval.pParseNode)->append((yyvsp[(8) - (10)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4927           0 :                         (yyval.pParseNode)->append((yyvsp[(9) - (10)].pParseNode));
    4928           0 :                         (yyval.pParseNode)->append((yyvsp[(10) - (10)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4929           0 :     break;
    4930             : 
    4931             :   case 34:
    4932             : 
    4933           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4934           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    4935           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4936           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    4937           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    4938           0 :     break;
    4939             : 
    4940             :   case 35:
    4941             : 
    4942           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    4943           0 :     break;
    4944             : 
    4945             :   case 36:
    4946             : 
    4947           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4948           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    4949           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    4950           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    4951             :                 }
    4952           0 :     break;
    4953             : 
    4954             :   case 37:
    4955             : 
    4956           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    4957           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    4958           0 :     break;
    4959             : 
    4960             :   case 38:
    4961             : 
    4962           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    4963           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    4964           0 :     break;
    4965             : 
    4966             :   case 39:
    4967             : 
    4968           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4969           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    4970           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode));
    4971           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    4972           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    4973           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    4974           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode));
    4975           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));}
    4976           0 :     break;
    4977             : 
    4978             :   case 40:
    4979             : 
    4980           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    4981           0 :     break;
    4982             : 
    4983             :   case 41:
    4984             : 
    4985           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4986           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    4987           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    4988           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    4989           0 :     break;
    4990             : 
    4991             :   case 42:
    4992             : 
    4993           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    4994           0 :     break;
    4995             : 
    4996             :   case 43:
    4997             : 
    4998           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    4999           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5000           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5001           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    5002           0 :     break;
    5003             : 
    5004             :   case 44:
    5005             : 
    5006           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5007           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    5008           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode));
    5009           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    5010           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    5011           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    5012           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode));
    5013           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));}
    5014           0 :     break;
    5015             : 
    5016             :   case 45:
    5017             : 
    5018           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5019           0 :     break;
    5020             : 
    5021             :   case 46:
    5022             : 
    5023           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5024           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5025           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5026           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    5027           0 :     break;
    5028             : 
    5029             :   case 47:
    5030             : 
    5031           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5032           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5033           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5034           0 :     break;
    5035             : 
    5036             :   case 49:
    5037             : 
    5038           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5039           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5040           0 :     break;
    5041             : 
    5042             :   case 50:
    5043             : 
    5044           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5045           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5046           0 :     break;
    5047             : 
    5048             :   case 52:
    5049             : 
    5050           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5051           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5052           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5053           0 :     break;
    5054             : 
    5055             :   case 54:
    5056             : 
    5057           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5058           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5059           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5060           0 :     break;
    5061             : 
    5062             :   case 55:
    5063             : 
    5064           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5065           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5066           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5067           0 :     break;
    5068             : 
    5069             :   case 57:
    5070             : 
    5071           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5072           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5073           0 :     break;
    5074             : 
    5075             :   case 58:
    5076             : 
    5077           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5078           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5079           0 :     break;
    5080             : 
    5081             :   case 61:
    5082             : 
    5083           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5084           2 :     break;
    5085             : 
    5086             :   case 62:
    5087             : 
    5088           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5089           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5090           2 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5091           2 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    5092           2 :     break;
    5093             : 
    5094             :   case 63:
    5095             : 
    5096           2 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5097           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5098           2 :     break;
    5099             : 
    5100             :   case 64:
    5101             : 
    5102           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5103           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5104           0 :     break;
    5105             : 
    5106             :   case 65:
    5107             : 
    5108           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5109           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5110           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5111           0 :     break;
    5112             : 
    5113             :   case 66:
    5114             : 
    5115           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5116           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5117           2 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5118           2 :     break;
    5119             : 
    5120             :   case 67:
    5121             : 
    5122           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5123           2 :     break;
    5124             : 
    5125             :   case 70:
    5126             : 
    5127           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5128           2 :     break;
    5129             : 
    5130             :   case 80:
    5131             : 
    5132             :     {
    5133           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5134           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("{", SQL_NODE_PUNCTUATION));
    5135           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5136           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode("}", SQL_NODE_PUNCTUATION));
    5137             :                 }
    5138           0 :     break;
    5139             : 
    5140             :   case 82:
    5141             : 
    5142             :     {
    5143           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5144           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5145           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5146           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5147           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5148             :                 }
    5149           0 :     break;
    5150             : 
    5151             :   case 83:
    5152             : 
    5153           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5154           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5155           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5156           0 :     break;
    5157             : 
    5158             :   case 84:
    5159             : 
    5160           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5161           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5162           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5163           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5164           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));}
    5165           0 :     break;
    5166             : 
    5167             :   case 85:
    5168             : 
    5169           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5170           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5171           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5172           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5173           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));}
    5174           0 :     break;
    5175             : 
    5176             :   case 86:
    5177             : 
    5178           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5179           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    5180           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    5181           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    5182           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    5183           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));}
    5184           0 :     break;
    5185             : 
    5186             :   case 87:
    5187             : 
    5188           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5189           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5190           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5191           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5192           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    5193             :                 }
    5194           0 :     break;
    5195             : 
    5196             :   case 88:
    5197             : 
    5198           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5199           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5200           0 :     break;
    5201             : 
    5202             :   case 89:
    5203             : 
    5204           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5205           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5206           0 :     break;
    5207             : 
    5208             :   case 93:
    5209             : 
    5210           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5211           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5212           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5213           0 :     break;
    5214             : 
    5215             :   case 94:
    5216             : 
    5217           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5218           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    5219           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode));
    5220           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    5221           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    5222           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    5223           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode)); }
    5224           0 :     break;
    5225             : 
    5226             :   case 95:
    5227             : 
    5228           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5229           4 :     break;
    5230             : 
    5231             :   case 98:
    5232             : 
    5233           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5234           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5235           0 :     break;
    5236             : 
    5237             :   case 99:
    5238             : 
    5239           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5240           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5241           0 :     break;
    5242             : 
    5243             :   case 100:
    5244             : 
    5245           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5246           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5247           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5248           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    5249           0 :     break;
    5250             : 
    5251             :   case 103:
    5252             : 
    5253           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5254           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    5255           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    5256           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    5257           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    5258           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));}
    5259           0 :     break;
    5260             : 
    5261             :   case 104:
    5262             : 
    5263           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5264           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5265           0 :     break;
    5266             : 
    5267             :   case 105:
    5268             : 
    5269           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5270           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5271           0 :     break;
    5272             : 
    5273             :   case 107:
    5274             : 
    5275           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5276           2 :     break;
    5277             : 
    5278             :   case 109:
    5279             : 
    5280             :     {
    5281           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5282           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5283             :                 }
    5284           0 :     break;
    5285             : 
    5286             :   case 110:
    5287             : 
    5288             :     {
    5289           4 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5290           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5291           4 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5292           4 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5293           4 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5294             :                 }
    5295           4 :     break;
    5296             : 
    5297             :   case 111:
    5298             : 
    5299             :     {
    5300           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5301           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("*", SQL_NODE_PUNCTUATION));
    5302             :                 }
    5303           0 :     break;
    5304             : 
    5305             :   case 113:
    5306             : 
    5307           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5308           4 :     break;
    5309             : 
    5310             :   case 115:
    5311             : 
    5312             :     {
    5313           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5314           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5315           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5316           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5317             :         }
    5318           0 :     break;
    5319             : 
    5320             :   case 116:
    5321             : 
    5322           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5323           0 :     break;
    5324             : 
    5325             :   case 122:
    5326             : 
    5327           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5328           4 :     break;
    5329             : 
    5330             :   case 124:
    5331             : 
    5332             :     {
    5333           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5334           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    5335           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    5336           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    5337           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    5338           0 :                 (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    5339             :         }
    5340           0 :     break;
    5341             : 
    5342             :   case 127:
    5343             : 
    5344           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5345           4 :     break;
    5346             : 
    5347             :   case 129:
    5348             : 
    5349           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5350           0 :     break;
    5351             : 
    5352             :   case 130:
    5353             : 
    5354             :     {
    5355           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5356           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5357           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5358             :         }
    5359           0 :     break;
    5360             : 
    5361             :   case 131:
    5362             : 
    5363             :     {
    5364           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5365           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5366           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5367           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5368             :         }
    5369           0 :     break;
    5370             : 
    5371             :   case 132:
    5372             : 
    5373             :     {
    5374           4 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5375           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (9)].pParseNode));
    5376           4 :                         (yyval.pParseNode)->append((yyvsp[(2) - (9)].pParseNode));
    5377           4 :                         (yyval.pParseNode)->append((yyvsp[(3) - (9)].pParseNode));
    5378           4 :                         (yyval.pParseNode)->append((yyvsp[(4) - (9)].pParseNode));
    5379           4 :                         (yyval.pParseNode)->append((yyvsp[(5) - (9)].pParseNode));
    5380           4 :                         (yyval.pParseNode)->append((yyvsp[(6) - (9)].pParseNode));
    5381           4 :                         (yyval.pParseNode)->append((yyvsp[(7) - (9)].pParseNode));
    5382           4 :                         (yyval.pParseNode)->append((yyvsp[(8) - (9)].pParseNode));
    5383           4 :                         (yyval.pParseNode)->append((yyvsp[(9) - (9)].pParseNode));
    5384             :                 }
    5385           4 :     break;
    5386             : 
    5387             :   case 133:
    5388             : 
    5389           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5390           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5391           4 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5392           4 :     break;
    5393             : 
    5394             :   case 134:
    5395             : 
    5396           4 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5397           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5398           4 :     break;
    5399             : 
    5400             :   case 135:
    5401             : 
    5402           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5403           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5404           0 :     break;
    5405             : 
    5406             :   case 136:
    5407             : 
    5408           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5409           0 :     break;
    5410             : 
    5411             :   case 138:
    5412             : 
    5413           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5414           0 :     break;
    5415             : 
    5416             :   case 140:
    5417             : 
    5418           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5419           4 :     break;
    5420             : 
    5421             :   case 141:
    5422             : 
    5423           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5424           0 :                     (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5425           0 :                     (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5426           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5427             :                 }
    5428           0 :     break;
    5429             : 
    5430             :   case 142:
    5431             : 
    5432             :     {
    5433           4 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5434           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5435           4 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5436             :                 }
    5437           4 :     break;
    5438             : 
    5439             :   case 143:
    5440             : 
    5441             :     {
    5442           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5443           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5444           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5445           0 :                     (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5446             :                 }
    5447           0 :     break;
    5448             : 
    5449             :   case 145:
    5450             : 
    5451             :     {
    5452           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5453           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode) = newNode("{", SQL_NODE_PUNCTUATION));
    5454           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5455           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5456           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode("}", SQL_NODE_PUNCTUATION));
    5457             :                 }
    5458           0 :     break;
    5459             : 
    5460             :   case 146:
    5461             : 
    5462             :     {
    5463           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5464           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5465           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5466           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    5467             :                 }
    5468           0 :     break;
    5469             : 
    5470             :   case 147:
    5471             : 
    5472           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5473           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5474           2 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5475           2 :     break;
    5476             : 
    5477             :   case 148:
    5478             : 
    5479           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5480           4 :     break;
    5481             : 
    5482             :   case 149:
    5483             : 
    5484           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5485           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5486           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5487           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    5488           0 :     break;
    5489             : 
    5490             :   case 150:
    5491             : 
    5492           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5493           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5494           0 :     break;
    5495             : 
    5496             :   case 151:
    5497             : 
    5498           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5499           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    5500           0 :     break;
    5501             : 
    5502             :   case 152:
    5503             : 
    5504           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5505           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5506           0 :     break;
    5507             : 
    5508             :   case 153:
    5509             : 
    5510           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5511           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    5512           0 :     break;
    5513             : 
    5514             :   case 154:
    5515             : 
    5516           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5517           4 :     break;
    5518             : 
    5519             :   case 155:
    5520             : 
    5521           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5522           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5523           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5524           0 :     break;
    5525             : 
    5526             :   case 161:
    5527             : 
    5528             :     { // boolean_primary: rule 2
    5529           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5530           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5531           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5532           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    5533             :                 }
    5534           0 :     break;
    5535             : 
    5536             :   case 162:
    5537             : 
    5538             :     {
    5539           0 :                 if(xxx_pGLOBAL_SQLPARSER->inPredicateCheck())// boolean_primary: rule 3
    5540             :                         {
    5541           0 :                             (yyval.pParseNode) = SQL_NEW_RULE;
    5542           0 :                             sal_Int16 nErg = xxx_pGLOBAL_SQLPARSER->buildComparsionRule((yyval.pParseNode),(yyvsp[(1) - (1)].pParseNode));
    5543           0 :                             if(nErg == 1)
    5544             :                             {
    5545           0 :                                     OSQLParseNode* pTemp = (yyval.pParseNode);
    5546           0 :                                     (yyval.pParseNode) = pTemp->removeAt((sal_uInt32)0);
    5547           0 :                                     delete pTemp;
    5548             :                             }
    5549             :                             else
    5550             :                             {
    5551           0 :                                     delete (yyval.pParseNode);
    5552           0 :                                     if(nErg)
    5553           0 :                                             YYERROR;
    5554             :                                     else
    5555           0 :                                             YYABORT;
    5556             :                             }
    5557             :                         }
    5558             :                         else
    5559           0 :                                 YYERROR;
    5560             :                 }
    5561           0 :     break;
    5562             : 
    5563             :   case 163:
    5564             : 
    5565             :     { // boolean_primary: rule 2
    5566           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5567           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5568           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5569           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    5570             :         }
    5571           0 :     break;
    5572             : 
    5573             :   case 165:
    5574             : 
    5575             :     {
    5576           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5577           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5578           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5579           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5580           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5581             :                 }
    5582           0 :     break;
    5583             : 
    5584             :   case 167:
    5585             : 
    5586             :     { // boolean_factor: rule 1
    5587           0 :                     (yyval.pParseNode) = SQL_NEW_RULE;
    5588           0 :                     (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5589           0 :                     (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5590             :                 }
    5591           0 :     break;
    5592             : 
    5593             :   case 169:
    5594             : 
    5595             :     {
    5596           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // boolean_term: rule 1
    5597           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5598           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5599           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5600             :                 }
    5601           0 :     break;
    5602             : 
    5603             :   case 171:
    5604             : 
    5605             :     {
    5606           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // search_condition
    5607           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5608           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5609           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5610             :                 }
    5611           0 :     break;
    5612             : 
    5613             :   case 180:
    5614             : 
    5615             :     {
    5616           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // comparison_predicate: rule 1
    5617           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5618           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5619             :                 }
    5620           0 :     break;
    5621             : 
    5622             :   case 181:
    5623             : 
    5624             :     {
    5625           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // comparison_predicate: rule 1
    5626           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5627           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5628           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5629             :                 }
    5630           0 :     break;
    5631             : 
    5632             :   case 182:
    5633             : 
    5634             :     {
    5635           0 :                         if(xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // comparison_predicate: rule 2
    5636             :                         {
    5637           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5638           0 :                                 sal_Int16 nErg = xxx_pGLOBAL_SQLPARSER->buildPredicateRule((yyval.pParseNode),(yyvsp[(2) - (2)].pParseNode),(yyvsp[(1) - (2)].pParseNode));
    5639           0 :                                 if(nErg == 1)
    5640             :                                 {
    5641           0 :                                         OSQLParseNode* pTemp = (yyval.pParseNode);
    5642           0 :                                         (yyval.pParseNode) = pTemp->removeAt((sal_uInt32)0);
    5643           0 :                                         delete pTemp;
    5644             :                                 }
    5645             :                                 else
    5646             :                                 {
    5647           0 :                                         delete (yyval.pParseNode);
    5648           0 :                                         YYABORT;
    5649             :                                 }
    5650             :                         }
    5651             :                         else
    5652             :                         {
    5653           0 :                                 YYERROR;
    5654             :                         }
    5655             :                 }
    5656           0 :     break;
    5657             : 
    5658             :   case 189:
    5659             : 
    5660             :     {
    5661           0 :                   (yyval.pParseNode) = SQL_NEW_RULE;
    5662           0 :                   (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5663           0 :                   (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5664           0 :                   (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5665           0 :                   (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5666             :                 }
    5667           0 :     break;
    5668             : 
    5669             :   case 190:
    5670             : 
    5671             :     {
    5672           0 :                   (yyval.pParseNode) = SQL_NEW_RULE;
    5673           0 :                   (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5674           0 :                   (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5675             :                 }
    5676           0 :     break;
    5677             : 
    5678             :   case 191:
    5679             : 
    5680             :     {
    5681           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // between_predicate: rule 2
    5682             :                         {
    5683           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5684             : 
    5685           0 :                                 sal_Int16 nErg = xxx_pGLOBAL_SQLPARSER->buildPredicateRule((yyval.pParseNode),(yyvsp[(3) - (5)].pParseNode),(yyvsp[(2) - (5)].pParseNode),(yyvsp[(5) - (5)].pParseNode));
    5686           0 :                                 if(nErg == 1)
    5687             :                                 {
    5688           0 :                                         OSQLParseNode* pTemp = (yyval.pParseNode);
    5689           0 :                                         (yyval.pParseNode) = pTemp->removeAt((sal_uInt32)0);
    5690           0 :                                         OSQLParseNode* pColumnRef = (yyval.pParseNode)->removeAt((sal_uInt32)0);
    5691           0 :                                         (yyval.pParseNode)->insert(0,(yyvsp[(1) - (5)].pParseNode));
    5692           0 :                                         OSQLParseNode* pBetween_predicate = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::between_predicate));
    5693           0 :                                         pBetween_predicate->append(pColumnRef);
    5694           0 :                                         pBetween_predicate->append((yyval.pParseNode));
    5695           0 :                                         (yyval.pParseNode) = pBetween_predicate;
    5696             : 
    5697           0 :                                         delete pTemp;
    5698           0 :                                         delete (yyvsp[(4) - (5)].pParseNode);
    5699             :                                 }
    5700             :                                 else
    5701             :                                 {
    5702           0 :                                         delete (yyval.pParseNode);
    5703           0 :                                         YYABORT;
    5704             :                                 }
    5705             :                         }
    5706             :                         else
    5707             :                         {
    5708           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE; // between_predicate: rule 1
    5709           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    5710           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    5711           0 :                                 (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    5712           0 :                                 (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    5713           0 :                                 (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    5714             :                         }
    5715             :                 }
    5716           0 :     break;
    5717             : 
    5718             :   case 192:
    5719             : 
    5720             :     {
    5721           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // between_predicate: rule 1
    5722           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5723           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5724             :                 }
    5725           0 :     break;
    5726             : 
    5727             :   case 194:
    5728             : 
    5729             :     {
    5730           2 :                         (yyval.pParseNode) = SQL_NEW_RULE; // like_predicate: rule 1
    5731           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5732           2 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5733           2 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5734           2 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5735             :                 }
    5736           2 :     break;
    5737             : 
    5738             :   case 195:
    5739             : 
    5740             :     {
    5741           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // like_predicate: rule 1
    5742           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    5743           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5744           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5745           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    5746             :                 }
    5747           0 :     break;
    5748             : 
    5749             :   case 196:
    5750             : 
    5751             :     {
    5752           2 :                         (yyval.pParseNode) = SQL_NEW_RULE; // like_predicate: rule 1
    5753           2 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5754           2 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5755             :                 }
    5756           2 :     break;
    5757             : 
    5758             :   case 197:
    5759             : 
    5760             :     {
    5761           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;  // like_predicate: rule 3
    5762           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5763           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5764             :                 }
    5765           0 :     break;
    5766             : 
    5767             :   case 198:
    5768             : 
    5769             :     {
    5770           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())  // like_predicate: rule 5
    5771             :                         {
    5772           0 :                                 OSQLParseNode* pColumnRef = newNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    5773           0 :                                 pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
    5774             : 
    5775           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5776           0 :                                 (yyval.pParseNode)->append(pColumnRef);
    5777           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5778           0 :                                 OSQLParseNode* p2nd = (yyvsp[(1) - (1)].pParseNode)->removeAt(2);
    5779           0 :                                 OSQLParseNode* p3rd = (yyvsp[(1) - (1)].pParseNode)->removeAt(2);
    5780           0 :                                 if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule((yyvsp[(1) - (1)].pParseNode),p2nd,p3rd) )
    5781             :                                 {
    5782           0 :                                         delete (yyval.pParseNode);
    5783             :                                         YYABORT;
    5784             :                                 }
    5785           0 :                                 (yyvsp[(1) - (1)].pParseNode)->append(p3rd);
    5786             :                         }
    5787             :                         else
    5788           0 :                                 YYERROR;
    5789             :                 }
    5790           0 :     break;
    5791             : 
    5792             :   case 199:
    5793             : 
    5794             :     {
    5795           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // like_predicate: rule 6
    5796             :                         {
    5797           0 :                                 OSQLParseNode* pColumnRef = newNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    5798           0 :                                 pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
    5799             : 
    5800           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5801           0 :                                 (yyval.pParseNode)->append(pColumnRef);
    5802           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5803           0 :                                 OSQLParseNode* p2nd = (yyvsp[(1) - (1)].pParseNode)->removeAt(2);
    5804           0 :                                 OSQLParseNode* p3rd = (yyvsp[(1) - (1)].pParseNode)->removeAt(2);
    5805           0 :                                 if ( !xxx_pGLOBAL_SQLPARSER->buildLikeRule((yyvsp[(1) - (1)].pParseNode),p2nd,p3rd) )
    5806             :                                 {
    5807           0 :                                         delete (yyval.pParseNode);
    5808             :                                         YYABORT;
    5809             :                                 }
    5810           0 :                                 (yyvsp[(1) - (1)].pParseNode)->append(p3rd);
    5811             :                         }
    5812             :                         else
    5813           0 :                                 YYERROR;
    5814             :                 }
    5815           0 :     break;
    5816             : 
    5817             :   case 200:
    5818             : 
    5819           2 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    5820           2 :     break;
    5821             : 
    5822             :   case 201:
    5823             : 
    5824           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5825           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5826           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5827           0 :     break;
    5828             : 
    5829             :   case 202:
    5830             : 
    5831             :     {
    5832           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5833           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode) = newNode("{", SQL_NODE_PUNCTUATION));
    5834           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    5835           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    5836           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode("}", SQL_NODE_PUNCTUATION));
    5837             :                 }
    5838           0 :     break;
    5839             : 
    5840             :   case 203:
    5841             : 
    5842             :     {
    5843           0 :                 (yyval.pParseNode) = SQL_NEW_RULE; // test_for_null: rule 1
    5844           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5845           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5846           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5847             :         }
    5848           0 :     break;
    5849             : 
    5850             :   case 204:
    5851             : 
    5852             :     {
    5853           0 :                         (yyval.pParseNode) = SQL_NEW_RULE; // test_for_null: rule 1
    5854           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5855           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5856             :                 }
    5857           0 :     break;
    5858             : 
    5859             :   case 205:
    5860             : 
    5861             :     {
    5862           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())// test_for_null: rule 2
    5863             :                         {
    5864           0 :                                 OSQLParseNode* pColumnRef = newNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    5865           0 :                                 pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
    5866             : 
    5867           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5868           0 :                                 (yyval.pParseNode)->append(pColumnRef);
    5869           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5870             :                         }
    5871             :                         else
    5872           0 :                                 YYERROR;
    5873             :                 }
    5874           0 :     break;
    5875             : 
    5876             :   case 206:
    5877             : 
    5878           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5879           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5880             :                 }
    5881           0 :     break;
    5882             : 
    5883             :   case 207:
    5884             : 
    5885           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5886           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5887           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5888           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    5889             :                 }
    5890           0 :     break;
    5891             : 
    5892             :   case 208:
    5893             : 
    5894             :     {
    5895           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;// in_predicate: rule 1
    5896           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5897           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5898           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5899             :         }
    5900           0 :     break;
    5901             : 
    5902             :   case 209:
    5903             : 
    5904             :     {
    5905           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;// in_predicate: rule 1
    5906           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5907           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5908             :                 }
    5909           0 :     break;
    5910             : 
    5911             :   case 210:
    5912             : 
    5913             :     {
    5914           0 :                         if ( xxx_pGLOBAL_SQLPARSER->inPredicateCheck() )// in_predicate: rule 2
    5915             :                         {
    5916           0 :                                 OSQLParseNode* pColumnRef = newNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    5917           0 :                                 pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
    5918             : 
    5919           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5920           0 :                                 (yyval.pParseNode)->append(pColumnRef);
    5921           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5922             :                         }
    5923             :                         else
    5924           0 :                                 YYERROR;
    5925             :                 }
    5926           0 :     break;
    5927             : 
    5928             :   case 211:
    5929             : 
    5930             :     {
    5931           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    5932           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    5933           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5934           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5935             :         }
    5936           0 :     break;
    5937             : 
    5938             :   case 212:
    5939             : 
    5940             :     {
    5941           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    5942           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5943           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    5944             :                 }
    5945           0 :     break;
    5946             : 
    5947             :   case 213:
    5948             : 
    5949             :     {
    5950           0 :                         if(xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    5951             :                         {
    5952           0 :                                 OSQLParseNode* pColumnRef = newNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    5953           0 :                                 pColumnRef->append(newNode(xxx_pGLOBAL_SQLPARSER->getFieldName(),SQL_NODE_NAME));
    5954             : 
    5955           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    5956           0 :                                 (yyval.pParseNode)->append(pColumnRef);
    5957           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5958             :                         }
    5959             :                         else
    5960           0 :                                 YYERROR;
    5961             :                 }
    5962           0 :     break;
    5963             : 
    5964             :   case 217:
    5965             : 
    5966           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5967           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5968           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5969           0 :     break;
    5970             : 
    5971             :   case 218:
    5972             : 
    5973           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5974           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    5975           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    5976           0 :     break;
    5977             : 
    5978             :   case 219:
    5979             : 
    5980           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    5981           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    5982           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    5983           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));}
    5984           0 :     break;
    5985             : 
    5986             :   case 220:
    5987             : 
    5988             :     {
    5989           4 :                         (yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    5990           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    5991             :                 }
    5992           4 :     break;
    5993             : 
    5994             :   case 221:
    5995             : 
    5996             :     {
    5997           0 :                         (yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    5998           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);
    5999             :                 }
    6000           0 :     break;
    6001             : 
    6002             :   case 229:
    6003             : 
    6004             :     {
    6005           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    6006             :                         {
    6007           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6008           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6009           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6010           0 :                                 xxx_pGLOBAL_SQLPARSER->reduceLiteral((yyval.pParseNode), sal_True);
    6011             :                         }
    6012             :                         else
    6013           0 :                                 YYERROR;
    6014             :                 }
    6015           0 :     break;
    6016             : 
    6017             :   case 230:
    6018             : 
    6019             :     {
    6020           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    6021             :                         {
    6022           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6023           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6024           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6025           0 :                                 xxx_pGLOBAL_SQLPARSER->reduceLiteral((yyval.pParseNode), sal_True);
    6026             :                         }
    6027             :                         else
    6028           0 :                                 YYERROR;
    6029             :                 }
    6030           0 :     break;
    6031             : 
    6032             :   case 231:
    6033             : 
    6034             :     {
    6035           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    6036             :                         {
    6037           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6038           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6039           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6040           0 :                                 xxx_pGLOBAL_SQLPARSER->reduceLiteral((yyval.pParseNode), sal_True);
    6041             :                         }
    6042             :                         else
    6043           0 :                                 YYERROR;
    6044             :                 }
    6045           0 :     break;
    6046             : 
    6047             :   case 232:
    6048             : 
    6049             :     {
    6050           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    6051             :                         {
    6052           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6053           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6054           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6055           0 :                                 xxx_pGLOBAL_SQLPARSER->reduceLiteral((yyval.pParseNode), sal_True);
    6056             :                         }
    6057             :                         else
    6058           0 :                                 YYERROR;
    6059             :                 }
    6060           0 :     break;
    6061             : 
    6062             :   case 233:
    6063             : 
    6064           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6065           4 :     break;
    6066             : 
    6067             :   case 234:
    6068             : 
    6069             :     {
    6070           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6071           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6072           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6073             :                 }
    6074           0 :     break;
    6075             : 
    6076             :   case 236:
    6077             : 
    6078             :     {
    6079           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6080           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    6081           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6082           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    6083           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    6084           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    6085           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6086             :                 }
    6087           0 :     break;
    6088             : 
    6089             :   case 237:
    6090             : 
    6091             :     {
    6092           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6093           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6094           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6095           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6096           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6097             :                 }
    6098           0 :     break;
    6099             : 
    6100             :   case 241:
    6101             : 
    6102             :     {
    6103           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6104           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6105           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6106           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6107           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6108             :                 }
    6109           0 :     break;
    6110             : 
    6111             :   case 242:
    6112             : 
    6113             :     {
    6114           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6115           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6116           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6117           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6118           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6119             :                 }
    6120           0 :     break;
    6121             : 
    6122             :   case 243:
    6123             : 
    6124             :     {
    6125           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6126           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6127           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6128           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6129           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6130             :                 }
    6131           0 :     break;
    6132             : 
    6133             :   case 244:
    6134             : 
    6135             :     {
    6136           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6137           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6138           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6139           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6140           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6141             :                 }
    6142           0 :     break;
    6143             : 
    6144             :   case 245:
    6145             : 
    6146             :     {
    6147           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6148           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6149             :                 }
    6150           0 :     break;
    6151             : 
    6152             :   case 246:
    6153             : 
    6154             :     {
    6155           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6156           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6157             :                 }
    6158           0 :     break;
    6159             : 
    6160             :   case 247:
    6161             : 
    6162             :     {
    6163           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6164           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6165             :                 }
    6166           0 :     break;
    6167             : 
    6168             :   case 248:
    6169             : 
    6170             :     {
    6171           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6172           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6173             :                 }
    6174           0 :     break;
    6175             : 
    6176             :   case 249:
    6177             : 
    6178             :     {
    6179           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6180           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6181             :                 }
    6182           0 :     break;
    6183             : 
    6184             :   case 253:
    6185             : 
    6186             :     {
    6187           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6188           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6189             :                 }
    6190           0 :     break;
    6191             : 
    6192             :   case 254:
    6193             : 
    6194             :     {
    6195           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6196           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6197             :                 }
    6198           0 :     break;
    6199             : 
    6200             :   case 255:
    6201             : 
    6202             :     {
    6203           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6204           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    6205           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6206           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    6207           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    6208           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    6209           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6210             :                 }
    6211           0 :     break;
    6212             : 
    6213             :   case 273:
    6214             : 
    6215             :     {
    6216           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6217           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("{", SQL_NODE_PUNCTUATION));
    6218           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6219           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode("}", SQL_NODE_PUNCTUATION));
    6220             :                 }
    6221           0 :     break;
    6222             : 
    6223             :   case 274:
    6224             : 
    6225             :     {
    6226           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6227           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6228           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6229           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6230             :                 }
    6231           0 :     break;
    6232             : 
    6233             :   case 275:
    6234             : 
    6235             :     {
    6236           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6237           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6238           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6239           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6240             :                 }
    6241           0 :     break;
    6242             : 
    6243             :   case 276:
    6244             : 
    6245             :     {
    6246           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6247           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6248           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6249           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6250           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6251             :                 }
    6252           0 :     break;
    6253             : 
    6254             :   case 277:
    6255             : 
    6256             :     {
    6257           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6258           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6259           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6260           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6261           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6262             :                 }
    6263           0 :     break;
    6264             : 
    6265             :   case 278:
    6266             : 
    6267             :     {
    6268           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6269           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6270           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6271           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6272           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6273             :                 }
    6274           0 :     break;
    6275             : 
    6276             :   case 279:
    6277             : 
    6278             :     {
    6279           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6280           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6281           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6282           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6283           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6284             :                 }
    6285           0 :     break;
    6286             : 
    6287             :   case 280:
    6288             : 
    6289             :     {
    6290           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6291           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6292           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6293           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6294           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6295             :                 }
    6296           0 :     break;
    6297             : 
    6298             :   case 281:
    6299             : 
    6300             :     {
    6301           0 :                         if ( (yyvsp[(3) - (4)].pParseNode)->count() == 1 || (yyvsp[(3) - (4)].pParseNode)->count() == 2 )
    6302             :                         {
    6303           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6304           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6305           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6306           0 :                                 (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6307           0 :                                 (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6308             :                         }
    6309             :                         else
    6310           0 :                                 YYERROR;
    6311             :                 }
    6312           0 :     break;
    6313             : 
    6314             :   case 282:
    6315             : 
    6316             :     {
    6317           0 :                         if ( (yyvsp[(3) - (4)].pParseNode)->count() == 2 || (yyvsp[(3) - (4)].pParseNode)->count() == 3)
    6318             :                         {
    6319           0 :                                 (yyval.pParseNode) = SQL_NEW_RULE;
    6320           0 :                                 (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6321           0 :                                 (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6322           0 :                                 (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6323           0 :                                 (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6324             :                         }
    6325             :                         else
    6326           0 :                                 YYERROR;
    6327             :                 }
    6328           0 :     break;
    6329             : 
    6330             :   case 361:
    6331             : 
    6332             :     {
    6333           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6334           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6335           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6336           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6337             :         }
    6338           0 :     break;
    6339             : 
    6340             :   case 362:
    6341             : 
    6342             :     {
    6343           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6344           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6345           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6346           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6347             :                 }
    6348           0 :     break;
    6349             : 
    6350             :   case 363:
    6351             : 
    6352             :     {
    6353           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6354           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6355           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6356           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6357             :                 }
    6358           0 :     break;
    6359             : 
    6360             :   case 369:
    6361             : 
    6362             :     {
    6363           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6364           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6365           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6366           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6367           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6368             :         }
    6369           0 :     break;
    6370             : 
    6371             :   case 374:
    6372             : 
    6373           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6374           0 :     break;
    6375             : 
    6376             :   case 375:
    6377             : 
    6378             :     {
    6379           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6380           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    6381           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6382             :                 }
    6383           0 :     break;
    6384             : 
    6385             :   case 376:
    6386             : 
    6387             :     {
    6388           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6389           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    6390           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6391           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    6392           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6393             :                 }
    6394           0 :     break;
    6395             : 
    6396             :   case 377:
    6397             : 
    6398           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6399           0 :     break;
    6400             : 
    6401             :   case 379:
    6402             : 
    6403             :     {
    6404           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6405           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    6406           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6407           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    6408           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    6409           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6410           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode));
    6411             :         }
    6412           0 :     break;
    6413             : 
    6414             :   case 387:
    6415             : 
    6416             :     {
    6417           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6418           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6419           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6420           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6421           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6422           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    6423             :         }
    6424           0 :     break;
    6425             : 
    6426             :   case 390:
    6427             : 
    6428           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6429           0 :     break;
    6430             : 
    6431             :   case 392:
    6432             : 
    6433             :     {
    6434           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6435           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (8)].pParseNode));
    6436           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (8)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6437           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (8)].pParseNode));
    6438           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (8)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    6439           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (8)].pParseNode));
    6440           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (8)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6441           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (8)].pParseNode));
    6442           0 :                         (yyval.pParseNode)->append((yyvsp[(8) - (8)].pParseNode));
    6443             :         }
    6444           0 :     break;
    6445             : 
    6446             :   case 395:
    6447             : 
    6448             :     {
    6449           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6450           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6451           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6452             :                 }
    6453           0 :     break;
    6454             : 
    6455             :   case 396:
    6456             : 
    6457             :     {
    6458           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6459           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6460           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6461             :                 }
    6462           0 :     break;
    6463             : 
    6464             :   case 401:
    6465             : 
    6466           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6467           4 :     break;
    6468             : 
    6469             :   case 403:
    6470             : 
    6471             :     {
    6472           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6473           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6474           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6475             :         }
    6476           0 :     break;
    6477             : 
    6478             :   case 404:
    6479             : 
    6480           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6481           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    6482           0 :     break;
    6483             : 
    6484             :   case 405:
    6485             : 
    6486           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    6487           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    6488           0 :     break;
    6489             : 
    6490             :   case 406:
    6491             : 
    6492             :     {
    6493           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6494           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6495           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6496           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6497             :         }
    6498           0 :     break;
    6499             : 
    6500             :   case 408:
    6501             : 
    6502             :     {
    6503           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6504           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6505           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6506           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6507             :         }
    6508           0 :     break;
    6509             : 
    6510             :   case 409:
    6511             : 
    6512           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6513           0 :     break;
    6514             : 
    6515             :   case 411:
    6516             : 
    6517           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6518           0 :     break;
    6519             : 
    6520             :   case 413:
    6521             : 
    6522           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6523           0 :     break;
    6524             : 
    6525             :   case 417:
    6526             : 
    6527             :     {
    6528           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6529           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6530           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6531           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6532             :         }
    6533           0 :     break;
    6534             : 
    6535             :   case 418:
    6536             : 
    6537           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6538           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    6539           0 :     break;
    6540             : 
    6541             :   case 419:
    6542             : 
    6543           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    6544           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    6545           0 :     break;
    6546             : 
    6547             :   case 420:
    6548             : 
    6549             :     {
    6550           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6551           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6552           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6553             :         }
    6554           0 :     break;
    6555             : 
    6556             :   case 421:
    6557             : 
    6558           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6559           0 :     break;
    6560             : 
    6561             :   case 423:
    6562             : 
    6563             :     {
    6564           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6565           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6566           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6567           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6568             :         }
    6569           0 :     break;
    6570             : 
    6571             :   case 428:
    6572             : 
    6573             :     {
    6574           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6575           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6576           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6577             :                 }
    6578           0 :     break;
    6579             : 
    6580             :   case 430:
    6581             : 
    6582             :     {
    6583           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6584           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6585           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6586             :                 }
    6587           0 :     break;
    6588             : 
    6589             :   case 431:
    6590             : 
    6591             :     {
    6592           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6593           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6594           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6595             :         }
    6596           0 :     break;
    6597             : 
    6598             :   case 432:
    6599             : 
    6600             :     {
    6601           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6602           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6603           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6604           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6605           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6606             :         }
    6607           0 :     break;
    6608             : 
    6609             :   case 436:
    6610             : 
    6611             :     {
    6612           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6613           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6614           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6615             :         }
    6616           0 :     break;
    6617             : 
    6618             :   case 438:
    6619             : 
    6620             :     {
    6621           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6622           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6623           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6624             :         }
    6625           0 :     break;
    6626             : 
    6627             :   case 439:
    6628             : 
    6629             :     {
    6630           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6631           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6632           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6633           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6634             :                 }
    6635           0 :     break;
    6636             : 
    6637             :   case 440:
    6638             : 
    6639             :     {
    6640           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6641           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6642           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6643             :                 }
    6644           0 :     break;
    6645             : 
    6646             :   case 441:
    6647             : 
    6648             :     {
    6649           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6650           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6651           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6652             :                 }
    6653           0 :     break;
    6654             : 
    6655             :   case 442:
    6656             : 
    6657             :     {
    6658           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6659           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    6660           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6661           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6662             :                 }
    6663           0 :     break;
    6664             : 
    6665             :   case 443:
    6666             : 
    6667           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6668           0 :     break;
    6669             : 
    6670             :   case 444:
    6671             : 
    6672             :     {
    6673           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6674           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode) = newNode("?", SQL_NODE_PUNCTUATION));
    6675           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6676             :                 }
    6677           0 :     break;
    6678             : 
    6679             :   case 445:
    6680             : 
    6681             :     {
    6682           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6683           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6684           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6685           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6686           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6687             :                 }
    6688           0 :     break;
    6689             : 
    6690             :   case 446:
    6691             : 
    6692           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6693           0 :     break;
    6694             : 
    6695             :   case 447:
    6696             : 
    6697             :     {
    6698           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6699           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6700           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6701           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6702             :                 }
    6703           0 :     break;
    6704             : 
    6705             :   case 448:
    6706             : 
    6707           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    6708           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    6709           0 :     break;
    6710             : 
    6711             :   case 449:
    6712             : 
    6713             :     {
    6714           0 :                         (yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    6715           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);
    6716             :                 }
    6717           0 :     break;
    6718             : 
    6719             :   case 450:
    6720             : 
    6721           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6722           0 :     break;
    6723             : 
    6724             :   case 453:
    6725             : 
    6726             :     {
    6727           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6728           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6729           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6730             :                 }
    6731           0 :     break;
    6732             : 
    6733             :   case 454:
    6734             : 
    6735             :     {
    6736           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6737           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6738           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6739             :                 }
    6740           0 :     break;
    6741             : 
    6742             :   case 458:
    6743             : 
    6744             :     {
    6745           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6746           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6747           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6748           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6749           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6750           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6751             :                 }
    6752           0 :     break;
    6753             : 
    6754             :   case 459:
    6755             : 
    6756             :     {
    6757           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6758           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6759           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6760           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode) = newNode("*", SQL_NODE_PUNCTUATION));
    6761           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6762             :                 }
    6763           0 :     break;
    6764             : 
    6765             :   case 460:
    6766             : 
    6767             :     {
    6768           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6769           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6770           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6771           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6772           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6773           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6774             :                 }
    6775           0 :     break;
    6776             : 
    6777             :   case 479:
    6778             : 
    6779             :     {
    6780           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6781           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6782           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6783           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6784           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6785           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    6786             :                 }
    6787           0 :     break;
    6788             : 
    6789             :   case 480:
    6790             : 
    6791             :     {
    6792           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6793           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    6794           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6795           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    6796           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    6797           0 :                 (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    6798           0 :                 (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6799           0 :                 (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));
    6800             :         }
    6801           0 :     break;
    6802             : 
    6803             :   case 481:
    6804             : 
    6805             :     {
    6806           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6807             :         }
    6808           0 :     break;
    6809             : 
    6810             :   case 482:
    6811             : 
    6812             :     {
    6813           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6814           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6815           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    6816           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6817           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6818           0 :                 (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6819             :         }
    6820           0 :     break;
    6821             : 
    6822             :   case 484:
    6823             : 
    6824             :     {
    6825           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6826           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6827           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6828           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6829           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6830             :         }
    6831           0 :     break;
    6832             : 
    6833             :   case 488:
    6834             : 
    6835             :     {
    6836           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    6837           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6838           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6839           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6840           0 :                 (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6841           0 :                 (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6842             :         }
    6843           0 :     break;
    6844             : 
    6845             :   case 493:
    6846             : 
    6847             :     {
    6848           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6849           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6850             :                 }
    6851           0 :     break;
    6852             : 
    6853             :   case 494:
    6854             : 
    6855             :     {
    6856           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6857           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6858             :                 }
    6859           0 :     break;
    6860             : 
    6861             :   case 495:
    6862             : 
    6863             :     {
    6864           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6865           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6866             :                 }
    6867           0 :     break;
    6868             : 
    6869             :   case 496:
    6870             : 
    6871             :     {
    6872           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6873           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6874           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6875             :                 }
    6876           0 :     break;
    6877             : 
    6878             :   case 499:
    6879             : 
    6880           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6881           0 :     break;
    6882             : 
    6883             :   case 500:
    6884             : 
    6885             :     {
    6886           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6887           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    6888             :                 }
    6889           0 :     break;
    6890             : 
    6891             :   case 502:
    6892             : 
    6893             :     {
    6894           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6895           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    6896           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    6897             :                 }
    6898           0 :     break;
    6899             : 
    6900             :   case 503:
    6901             : 
    6902             :     {
    6903           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6904           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6905           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6906           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6907           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6908             :                 }
    6909           0 :     break;
    6910             : 
    6911             :   case 504:
    6912             : 
    6913             :     {
    6914           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6915           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6916           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    6917           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6918           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6919           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    6920             :                 }
    6921           0 :     break;
    6922             : 
    6923             :   case 505:
    6924             : 
    6925             :     {
    6926           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6927           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    6928           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    6929           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    6930           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    6931           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    6932             :                 }
    6933           0 :     break;
    6934             : 
    6935             :   case 508:
    6936             : 
    6937             :     {
    6938           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6939           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6940           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6941           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6942           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6943             :                 }
    6944           0 :     break;
    6945             : 
    6946             :   case 512:
    6947             : 
    6948             :     {
    6949           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6950           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    6951           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    6952           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    6953             :                 }
    6954           0 :     break;
    6955             : 
    6956             :   case 514:
    6957             : 
    6958             :     {
    6959           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6960           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6961           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6962           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6963           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6964             :                 }
    6965           0 :     break;
    6966             : 
    6967             :   case 517:
    6968             : 
    6969             :     {
    6970           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6971           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6972           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6973           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6974           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6975             :                 }
    6976           0 :     break;
    6977             : 
    6978             :   case 518:
    6979             : 
    6980             :     {
    6981           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6982           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    6983           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    6984           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    6985           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    6986             :                 }
    6987           0 :     break;
    6988             : 
    6989             :   case 519:
    6990             : 
    6991           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    6992           0 :     break;
    6993             : 
    6994             :   case 526:
    6995             : 
    6996             :     {
    6997           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    6998           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    6999           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7000           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    7001           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    7002           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    7003           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7004             :                 }
    7005           0 :     break;
    7006             : 
    7007             :   case 533:
    7008             : 
    7009             :     {
    7010           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7011           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7012           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7013           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7014             :                 }
    7015           0 :     break;
    7016             : 
    7017             :   case 538:
    7018             : 
    7019             :     {
    7020           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7021           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode) = newNode("-", SQL_NODE_PUNCTUATION));
    7022           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7023             :                 }
    7024           0 :     break;
    7025             : 
    7026             :   case 539:
    7027             : 
    7028             :     {
    7029           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7030           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode) = newNode("+", SQL_NODE_PUNCTUATION));
    7031           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7032             :                 }
    7033           0 :     break;
    7034             : 
    7035             :   case 541:
    7036             : 
    7037             :     {
    7038           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7039           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7040           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("*", SQL_NODE_PUNCTUATION));
    7041           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7042             :                 }
    7043           0 :     break;
    7044             : 
    7045             :   case 542:
    7046             : 
    7047             :     {
    7048           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7049           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7050           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("/", SQL_NODE_PUNCTUATION));
    7051           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7052             :                 }
    7053           0 :     break;
    7054             : 
    7055             :   case 544:
    7056             : 
    7057             :     {
    7058           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7059           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7060           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("+", SQL_NODE_PUNCTUATION));
    7061           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7062             :                 }
    7063           0 :     break;
    7064             : 
    7065             :   case 545:
    7066             : 
    7067             :     {
    7068           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7069           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7070           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("-", SQL_NODE_PUNCTUATION));
    7071           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7072             :                 }
    7073           0 :     break;
    7074             : 
    7075             :   case 546:
    7076             : 
    7077             :     {
    7078           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7079           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7080             :                 }
    7081           0 :     break;
    7082             : 
    7083             :   case 547:
    7084             : 
    7085             :     {
    7086           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7087           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7088             :                 }
    7089           0 :     break;
    7090             : 
    7091             :   case 548:
    7092             : 
    7093             :     {
    7094           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7095           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7096             :                 }
    7097           0 :     break;
    7098             : 
    7099             :   case 549:
    7100             : 
    7101             :     {
    7102           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7103           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7104             :                 }
    7105           0 :     break;
    7106             : 
    7107             :   case 550:
    7108             : 
    7109             :     {
    7110           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7111           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7112           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7113             :                 }
    7114           0 :     break;
    7115             : 
    7116             :   case 551:
    7117             : 
    7118             :     {
    7119           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7120           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7121             :                 }
    7122           0 :     break;
    7123             : 
    7124             :   case 552:
    7125             : 
    7126             :     {
    7127           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7128           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7129             :                 }
    7130           0 :     break;
    7131             : 
    7132             :   case 553:
    7133             : 
    7134             :     {
    7135           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7136           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7137           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7138             :                 }
    7139           0 :     break;
    7140             : 
    7141             :   case 554:
    7142             : 
    7143             :     {
    7144           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7145           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7146             :                 }
    7147           0 :     break;
    7148             : 
    7149             :   case 555:
    7150             : 
    7151             :     {
    7152           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7153           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7154             :                 }
    7155           0 :     break;
    7156             : 
    7157             :   case 561:
    7158             : 
    7159             :     {
    7160           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7161           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7162           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7163             :                 }
    7164           0 :     break;
    7165             : 
    7166             :   case 563:
    7167             : 
    7168             :     {
    7169           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7170           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7171           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7172             :                 }
    7173           0 :     break;
    7174             : 
    7175             :   case 564:
    7176             : 
    7177             :     {
    7178           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7179           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7180           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7181             :                 }
    7182           0 :     break;
    7183             : 
    7184             :   case 565:
    7185             : 
    7186             :     {
    7187           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7188           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7189           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7190             :                 }
    7191           0 :     break;
    7192             : 
    7193             :   case 566:
    7194             : 
    7195             :     {
    7196           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7197           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7198           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7199           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7200             :                 }
    7201           0 :     break;
    7202             : 
    7203             :   case 568:
    7204             : 
    7205           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    7206           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7207           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));}
    7208           0 :     break;
    7209             : 
    7210             :   case 569:
    7211             : 
    7212             :     {
    7213           0 :                         (yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    7214           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    7215           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    7216           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    7217             :                 }
    7218           0 :     break;
    7219             : 
    7220             :   case 570:
    7221             : 
    7222             :     {
    7223           0 :                         (yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    7224           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    7225           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    7226           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    7227           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));
    7228             :                 }
    7229           0 :     break;
    7230             : 
    7231             :   case 571:
    7232             : 
    7233           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    7234           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    7235           0 :     break;
    7236             : 
    7237             :   case 572:
    7238             : 
    7239           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7240           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    7241           0 :     break;
    7242             : 
    7243             :   case 573:
    7244             : 
    7245             :     {
    7246           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    7247             :                         {
    7248           0 :                                 (yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7249           0 :                                 (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);
    7250             :                         }
    7251             :                         else
    7252           0 :                                 YYERROR;
    7253             :                 }
    7254           0 :     break;
    7255             : 
    7256             :   case 575:
    7257             : 
    7258             :     {
    7259           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7260           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7261           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7262           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7263             :                 }
    7264           0 :     break;
    7265             : 
    7266             :   case 576:
    7267             : 
    7268             :     {
    7269           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7270           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    7271           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    7272           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    7273           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    7274             :                 }
    7275           0 :     break;
    7276             : 
    7277             :   case 577:
    7278             : 
    7279             :     {
    7280           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7281           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7282           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7283           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7284             :                 }
    7285           0 :     break;
    7286             : 
    7287             :   case 578:
    7288             : 
    7289           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    7290           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    7291           0 :     break;
    7292             : 
    7293             :   case 579:
    7294             : 
    7295           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7296           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    7297           0 :     break;
    7298             : 
    7299             :   case 580:
    7300             : 
    7301             :     {
    7302           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck())
    7303             :                         {
    7304           0 :                                 (yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7305           0 :                                 (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);
    7306             :                         }
    7307             :                         else
    7308           0 :                                 YYERROR;
    7309             :                 }
    7310           0 :     break;
    7311             : 
    7312             :   case 583:
    7313             : 
    7314             :     {
    7315           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7316           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7317             :                 }
    7318           0 :     break;
    7319             : 
    7320             :   case 587:
    7321             : 
    7322             :     {
    7323           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7324           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7325           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode("+", SQL_NODE_PUNCTUATION));
    7326           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7327             :                 }
    7328           0 :     break;
    7329             : 
    7330             :   case 588:
    7331             : 
    7332             :     {
    7333           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7334           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7335           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7336           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7337             :                 }
    7338           0 :     break;
    7339             : 
    7340             :   case 591:
    7341             : 
    7342             :     {
    7343           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7344           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7345           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7346             :                 }
    7347           0 :     break;
    7348             : 
    7349             :   case 593:
    7350             : 
    7351             :     {
    7352           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7353           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7354           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7355             :                 }
    7356           0 :     break;
    7357             : 
    7358             :   case 596:
    7359             : 
    7360             :     {
    7361           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7362           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7363             :                 }
    7364           0 :     break;
    7365             : 
    7366             :   case 597:
    7367             : 
    7368             :     {
    7369           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7370           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    7371           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7372           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    7373           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    7374           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    7375           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode));
    7376           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7377             :                 }
    7378           0 :     break;
    7379             : 
    7380             :   case 598:
    7381             : 
    7382             :     {
    7383           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7384           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7385             :                 }
    7386           0 :     break;
    7387             : 
    7388             :   case 599:
    7389             : 
    7390             :     {
    7391           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7392           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7393             :                 }
    7394           0 :     break;
    7395             : 
    7396             :   case 600:
    7397             : 
    7398           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7399           0 :     break;
    7400             : 
    7401             :   case 603:
    7402             : 
    7403             :     {
    7404           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7405           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7406             :                 }
    7407           0 :     break;
    7408             : 
    7409             :   case 604:
    7410             : 
    7411             :     {
    7412           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7413           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7414             :                 }
    7415           0 :     break;
    7416             : 
    7417             :   case 605:
    7418             : 
    7419             :     {
    7420           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7421           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    7422             :                 }
    7423           0 :     break;
    7424             : 
    7425             :   case 606:
    7426             : 
    7427           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7428           0 :     break;
    7429             : 
    7430             :   case 607:
    7431             : 
    7432             :     {
    7433           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7434           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7435           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7436             :                 }
    7437           0 :     break;
    7438             : 
    7439             :   case 608:
    7440             : 
    7441             :     {
    7442           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7443           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    7444           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7445           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    7446           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode));
    7447           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    7448           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode));
    7449           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7450             :                 }
    7451           0 :     break;
    7452             : 
    7453             :   case 609:
    7454             : 
    7455             :     {
    7456           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7457           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7458           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7459           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7460           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7461             :                 }
    7462           0 :     break;
    7463             : 
    7464             :   case 612:
    7465             : 
    7466             :     {
    7467           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7468           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7469           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7470           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7471           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7472             :                 }
    7473           0 :     break;
    7474             : 
    7475             :   case 613:
    7476             : 
    7477             :     {
    7478           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7479           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    7480           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7481           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    7482           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    7483           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    7484           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7485             :                 }
    7486           0 :     break;
    7487             : 
    7488             :   case 614:
    7489             : 
    7490             :     {
    7491           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7492           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    7493           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7494           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    7495           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    7496           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    7497           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7498             :                 }
    7499           0 :     break;
    7500             : 
    7501             :   case 615:
    7502             : 
    7503             :     {
    7504           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7505           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (6)].pParseNode));
    7506           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (6)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7507           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (6)].pParseNode));
    7508           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (6)].pParseNode));
    7509           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (6)].pParseNode));
    7510           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (6)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7511             :                 }
    7512           0 :     break;
    7513             : 
    7514             :   case 616:
    7515             : 
    7516             :     {
    7517           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7518           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7519           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7520           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7521           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7522             :                 }
    7523           0 :     break;
    7524             : 
    7525             :   case 617:
    7526             : 
    7527             :     {
    7528           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7529           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7530           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7531           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7532           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7533             :                 }
    7534           0 :     break;
    7535             : 
    7536             :   case 618:
    7537             : 
    7538             :     {
    7539           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7540           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7541           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7542           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7543             :                 }
    7544           0 :     break;
    7545             : 
    7546             :   case 619:
    7547             : 
    7548             :     {
    7549           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7550           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7551           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7552           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7553             :                 }
    7554           0 :     break;
    7555             : 
    7556             :   case 620:
    7557             : 
    7558             :     {
    7559           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7560           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7561           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7562             :                 }
    7563           0 :     break;
    7564             : 
    7565             :   case 625:
    7566             : 
    7567             :     {
    7568           4 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7569           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7570           4 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7571             :                 }
    7572           4 :     break;
    7573             : 
    7574             :   case 629:
    7575             : 
    7576             :     {
    7577           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7578           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7579           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7580           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7581             :                 }
    7582           0 :     break;
    7583             : 
    7584             :   case 630:
    7585             : 
    7586             :     {
    7587           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7588           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7589           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode(":", SQL_NODE_PUNCTUATION));
    7590           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7591             :                 }
    7592           0 :     break;
    7593             : 
    7594             :   case 631:
    7595             : 
    7596             :     {
    7597           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7598           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7599           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7600           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7601             :                 }
    7602           0 :     break;
    7603             : 
    7604             :   case 632:
    7605             : 
    7606           4 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7607           4 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    7608           4 :     break;
    7609             : 
    7610             :   case 633:
    7611             : 
    7612           8 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7613           8 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    7614           8 :     break;
    7615             : 
    7616             :   case 634:
    7617             : 
    7618           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7619           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7620           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7621           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7622             :                         }
    7623           0 :     break;
    7624             : 
    7625             :   case 635:
    7626             : 
    7627           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7628           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    7629           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7630           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    7631           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7632           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));}
    7633           0 :     break;
    7634             : 
    7635             :   case 636:
    7636             : 
    7637           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7638           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    7639           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode)= newNode(".", SQL_NODE_PUNCTUATION));
    7640           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    7641           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7642           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    7643           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7644           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));
    7645             :                         }
    7646           0 :     break;
    7647             : 
    7648             :   case 637:
    7649             : 
    7650           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7651           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (7)].pParseNode));
    7652           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (7)].pParseNode)= newNode(":", SQL_NODE_PUNCTUATION));
    7653           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (7)].pParseNode));
    7654           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (7)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7655           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (7)].pParseNode));
    7656           0 :                         (yyval.pParseNode)->append((yyvsp[(6) - (7)].pParseNode) = newNode(".", SQL_NODE_PUNCTUATION));
    7657           0 :                         (yyval.pParseNode)->append((yyvsp[(7) - (7)].pParseNode));
    7658             :                         }
    7659           0 :     break;
    7660             : 
    7661             :   case 638:
    7662             : 
    7663           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    7664           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    7665           0 :     break;
    7666             : 
    7667             :   case 639:
    7668             : 
    7669             :     {
    7670           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7671           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("*", SQL_NODE_PUNCTUATION));
    7672             :                 }
    7673           0 :     break;
    7674             : 
    7675             :   case 641:
    7676             : 
    7677           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7678           0 :     break;
    7679             : 
    7680             :   case 642:
    7681             : 
    7682             :     {
    7683           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7684           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7685           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7686           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7687             :                 }
    7688           0 :     break;
    7689             : 
    7690             :   case 643:
    7691             : 
    7692           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7693           0 :     break;
    7694             : 
    7695             :   case 645:
    7696             : 
    7697             :     {
    7698           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7699           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7700           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7701           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7702             :                 }
    7703           0 :     break;
    7704             : 
    7705             :   case 646:
    7706             : 
    7707             :     {
    7708           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7709           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7710           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7711             :                 }
    7712           0 :     break;
    7713             : 
    7714             :   case 652:
    7715             : 
    7716             :     {
    7717           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7718           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7719           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7720             :                 }
    7721           0 :     break;
    7722             : 
    7723             :   case 653:
    7724             : 
    7725             :     {
    7726           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7727           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7728           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7729             :                 }
    7730           0 :     break;
    7731             : 
    7732             :   case 654:
    7733             : 
    7734             :     {
    7735           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7736           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7737           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7738           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7739             :                 }
    7740           0 :     break;
    7741             : 
    7742             :   case 655:
    7743             : 
    7744             :     {
    7745           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7746           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7747           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7748           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7749             :                 }
    7750           0 :     break;
    7751             : 
    7752             :   case 656:
    7753             : 
    7754             :     {
    7755           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7756           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7757           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7758             :                 }
    7759           0 :     break;
    7760             : 
    7761             :   case 658:
    7762             : 
    7763           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7764           0 :     break;
    7765             : 
    7766             :   case 660:
    7767             : 
    7768             :     {
    7769           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    7770           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7771           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7772           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7773             :         }
    7774           0 :     break;
    7775             : 
    7776             :   case 661:
    7777             : 
    7778           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7779           0 :     break;
    7780             : 
    7781             :   case 663:
    7782             : 
    7783             :     {
    7784           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    7785           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    7786           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7787           0 :                 (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    7788             :         }
    7789           0 :     break;
    7790             : 
    7791             :   case 664:
    7792             : 
    7793             :     {
    7794           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    7795           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7796           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7797             :         }
    7798           0 :     break;
    7799             : 
    7800             :   case 665:
    7801             : 
    7802           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    7803           0 :     break;
    7804             : 
    7805             :   case 666:
    7806             : 
    7807             :     {
    7808           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7809           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("K", SQL_NODE_PUNCTUATION));
    7810             :                 }
    7811           0 :     break;
    7812             : 
    7813             :   case 667:
    7814             : 
    7815             :     {
    7816           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7817           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("M", SQL_NODE_PUNCTUATION));
    7818             :                 }
    7819           0 :     break;
    7820             : 
    7821             :   case 668:
    7822             : 
    7823             :     {
    7824           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7825           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("G", SQL_NODE_PUNCTUATION));
    7826             :                 }
    7827           0 :     break;
    7828             : 
    7829             :   case 669:
    7830             : 
    7831             :     {
    7832           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7833           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("T", SQL_NODE_PUNCTUATION));
    7834             :                 }
    7835           0 :     break;
    7836             : 
    7837             :   case 670:
    7838             : 
    7839             :     {
    7840           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7841           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("P", SQL_NODE_PUNCTUATION));
    7842             :                 }
    7843           0 :     break;
    7844             : 
    7845             :   case 671:
    7846             : 
    7847             :     {
    7848           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7849           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7850           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7851           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7852           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7853             :                 }
    7854           0 :     break;
    7855             : 
    7856             :   case 672:
    7857             : 
    7858             :     {
    7859           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7860           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7861           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7862           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7863           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7864             :                 }
    7865           0 :     break;
    7866             : 
    7867             :   case 673:
    7868             : 
    7869             :     {
    7870           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7871           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7872           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7873             :                 }
    7874           0 :     break;
    7875             : 
    7876             :   case 674:
    7877             : 
    7878             :     {
    7879           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7880           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7881           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7882           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7883             :                 }
    7884           0 :     break;
    7885             : 
    7886             :   case 675:
    7887             : 
    7888             :     {
    7889           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7890           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7891           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7892           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7893             :                 }
    7894           0 :     break;
    7895             : 
    7896             :   case 676:
    7897             : 
    7898             :     {
    7899           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7900           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7901           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7902             :                 }
    7903           0 :     break;
    7904             : 
    7905             :   case 677:
    7906             : 
    7907             :     {
    7908           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7909           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7910           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7911           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7912           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7913             :                 }
    7914           0 :     break;
    7915             : 
    7916             :   case 678:
    7917             : 
    7918             :     {
    7919           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7920           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7921           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7922           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7923           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7924             :                 }
    7925           0 :     break;
    7926             : 
    7927             :   case 679:
    7928             : 
    7929             :     {
    7930           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7931           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7932           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7933           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7934             :                 }
    7935           0 :     break;
    7936             : 
    7937             :   case 681:
    7938             : 
    7939             :     {
    7940           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7941           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    7942           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    7943           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    7944           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    7945           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    7946             :                 }
    7947           0 :     break;
    7948             : 
    7949             :   case 682:
    7950             : 
    7951             :     {
    7952           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7953           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    7954           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    7955           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    7956           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    7957             :                 }
    7958           0 :     break;
    7959             : 
    7960             :   case 683:
    7961             : 
    7962             :     {
    7963           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7964           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7965           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7966             :                 }
    7967           0 :     break;
    7968             : 
    7969             :   case 684:
    7970             : 
    7971             :     {
    7972           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7973           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7974           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7975             :                 }
    7976           0 :     break;
    7977             : 
    7978             :   case 685:
    7979             : 
    7980             :     {
    7981           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7982           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    7983           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    7984           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    7985             :                 }
    7986           0 :     break;
    7987             : 
    7988             :   case 686:
    7989             : 
    7990             :     {
    7991           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    7992           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    7993           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    7994             :                 }
    7995           0 :     break;
    7996             : 
    7997             :   case 688:
    7998             : 
    7999             :     {
    8000           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8001           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8002           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8003           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8004           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8005             :                 }
    8006           0 :     break;
    8007             : 
    8008             :   case 689:
    8009             : 
    8010             :     {
    8011           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8012           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8013           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8014             :                 }
    8015           0 :     break;
    8016             : 
    8017             :   case 692:
    8018             : 
    8019           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    8020           0 :     break;
    8021             : 
    8022             :   case 693:
    8023             : 
    8024             :     {
    8025           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8026           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8027           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8028           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8029             :                 }
    8030           0 :     break;
    8031             : 
    8032             :   case 694:
    8033             : 
    8034             :     {
    8035           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8036           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8037           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    8038           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode) = newNode(",", SQL_NODE_PUNCTUATION));
    8039           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    8040           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8041             :                 }
    8042           0 :     break;
    8043             : 
    8044             :   case 695:
    8045             : 
    8046             :     {
    8047           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8048           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8049           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8050             :                 }
    8051           0 :     break;
    8052             : 
    8053             :   case 696:
    8054             : 
    8055             :     {
    8056           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8057           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8058           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8059             :                 }
    8060           0 :     break;
    8061             : 
    8062             :   case 697:
    8063             : 
    8064             :     {
    8065           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8066           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8067           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8068             :                 }
    8069           0 :     break;
    8070             : 
    8071             :   case 702:
    8072             : 
    8073             :     {
    8074           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8075           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8076           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8077           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8078           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8079             :                 }
    8080           0 :     break;
    8081             : 
    8082             :   case 706:
    8083             : 
    8084             :     {
    8085           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8086           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8087           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8088             :                 }
    8089           0 :     break;
    8090             : 
    8091             :   case 709:
    8092             : 
    8093             :     {
    8094           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8095           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8096           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8097           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8098             :                 }
    8099           0 :     break;
    8100             : 
    8101             :   case 710:
    8102             : 
    8103             :     {
    8104           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8105           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8106           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8107           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8108             :                 }
    8109           0 :     break;
    8110             : 
    8111             :   case 711:
    8112             : 
    8113           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    8114           0 :     break;
    8115             : 
    8116             :   case 712:
    8117             : 
    8118             :     {
    8119           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8120           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8121           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8122           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8123             :                 }
    8124           0 :     break;
    8125             : 
    8126             :   case 713:
    8127             : 
    8128             :     {
    8129           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8130           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8131           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8132           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8133             :                 }
    8134           0 :     break;
    8135             : 
    8136             :   case 714:
    8137             : 
    8138             :     {
    8139           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8140           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8141           0 :                 (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8142             :         }
    8143           0 :     break;
    8144             : 
    8145             :   case 716:
    8146             : 
    8147             :     {
    8148           0 :                         sal_uInt32 nNod = (yyval.pParseNode)->getRuleID();
    8149           0 :                         delete (yyval.pParseNode);
    8150           0 :                         (yyval.pParseNode) = newNode(xxx_pGLOBAL_SQLPARSER->TokenIDToStr(nNod), SQL_NODE_NAME);
    8151             :                 }
    8152           0 :     break;
    8153             : 
    8154             :   case 717:
    8155             : 
    8156             :     {
    8157           0 :                         sal_uInt32 nNod = (yyval.pParseNode)->getRuleID();
    8158           0 :                         delete (yyval.pParseNode);
    8159           0 :                         (yyval.pParseNode) = newNode(xxx_pGLOBAL_SQLPARSER->TokenIDToStr(nNod), SQL_NODE_NAME);
    8160             :                 }
    8161           0 :     break;
    8162             : 
    8163             :   case 718:
    8164             : 
    8165             :     {
    8166           0 :                         sal_uInt32 nNod = (yyval.pParseNode)->getRuleID();
    8167           0 :                         delete (yyval.pParseNode);
    8168           0 :                         (yyval.pParseNode) = newNode(xxx_pGLOBAL_SQLPARSER->TokenIDToStr(nNod), SQL_NODE_NAME);
    8169             :                 }
    8170           0 :     break;
    8171             : 
    8172             :   case 721:
    8173             : 
    8174             :     {
    8175           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8176           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8177           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8178           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8179           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8180             :                 }
    8181           0 :     break;
    8182             : 
    8183             :   case 722:
    8184             : 
    8185             :     {
    8186           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8187           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8188           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8189           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8190           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8191             :                 }
    8192           0 :     break;
    8193             : 
    8194             :   case 723:
    8195             : 
    8196             :     {
    8197           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8198           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8199           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode) = newNode("(", SQL_NODE_PUNCTUATION));
    8200           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8201           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode) = newNode(")", SQL_NODE_PUNCTUATION));
    8202             :                 }
    8203           0 :     break;
    8204             : 
    8205             :   case 726:
    8206             : 
    8207             :     {
    8208           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8209           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    8210           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    8211           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    8212           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode));
    8213           0 :                         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    8214             :                 }
    8215           0 :     break;
    8216             : 
    8217             :   case 727:
    8218             : 
    8219             :     {
    8220           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8221           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8222           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8223           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8224           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8225             :                 }
    8226           0 :     break;
    8227             : 
    8228             :   case 728:
    8229             : 
    8230             :     {
    8231           0 :                         (yyval.pParseNode) = SQL_NEW_LISTRULE;
    8232           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    8233             :                 }
    8234           0 :     break;
    8235             : 
    8236             :   case 729:
    8237             : 
    8238             :     {
    8239           0 :                         (yyvsp[(1) - (2)].pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8240           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (2)].pParseNode);
    8241             :                 }
    8242           0 :     break;
    8243             : 
    8244             :   case 730:
    8245             : 
    8246             :     {
    8247           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8248           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8249           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8250           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8251           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8252             :                 }
    8253           0 :     break;
    8254             : 
    8255             :   case 731:
    8256             : 
    8257           0 :     {(yyval.pParseNode) = SQL_NEW_COMMALISTRULE;
    8258           0 :                 (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    8259           0 :     break;
    8260             : 
    8261             :   case 732:
    8262             : 
    8263           0 :     {(yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8264           0 :                 (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);}
    8265           0 :     break;
    8266             : 
    8267             :   case 739:
    8268             : 
    8269             :     {
    8270           0 :                         (yyval.pParseNode) = SQL_NEW_LISTRULE;
    8271           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    8272             :                 }
    8273           0 :     break;
    8274             : 
    8275             :   case 740:
    8276             : 
    8277             :     {
    8278           0 :                         (yyvsp[(1) - (2)].pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8279           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (2)].pParseNode);
    8280             :                 }
    8281           0 :     break;
    8282             : 
    8283             :   case 741:
    8284             : 
    8285             :     {
    8286           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8287           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8288           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8289           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8290           0 :                         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8291             :                 }
    8292           0 :     break;
    8293             : 
    8294             :   case 742:
    8295             : 
    8296           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    8297           0 :     break;
    8298             : 
    8299             :   case 743:
    8300             : 
    8301             :     {
    8302           0 :                         (yyval.pParseNode) = SQL_NEW_RULE;
    8303           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8304           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8305             :                 }
    8306           0 :     break;
    8307             : 
    8308             :   case 747:
    8309             : 
    8310           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    8311           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));}
    8312           0 :     break;
    8313             : 
    8314             :   case 748:
    8315             : 
    8316           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    8317           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode) = newNode(":", SQL_NODE_PUNCTUATION));
    8318           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));}
    8319           0 :     break;
    8320             : 
    8321             :   case 749:
    8322             : 
    8323           0 :     {(yyval.pParseNode) = SQL_NEW_RULE; // test
    8324           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode) = newNode("?", SQL_NODE_PUNCTUATION));}
    8325           0 :     break;
    8326             : 
    8327             :   case 750:
    8328             : 
    8329           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    8330           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode) = newNode("[", SQL_NODE_PUNCTUATION));
    8331           0 :                         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8332           0 :                         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode) = newNode("]", SQL_NODE_PUNCTUATION));}
    8333           0 :     break;
    8334             : 
    8335             :   case 751:
    8336             : 
    8337           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;}
    8338           0 :     break;
    8339             : 
    8340             :   case 752:
    8341             : 
    8342           0 :     {(yyval.pParseNode) = SQL_NEW_RULE;
    8343           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8344           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8345             :         }
    8346           0 :     break;
    8347             : 
    8348             :   case 754:
    8349             : 
    8350             :     {
    8351           0 :                         if (xxx_pGLOBAL_SQLPARSER->inPredicateCheck()) // sql: rule 1
    8352             :                         {
    8353           0 :                                 (yyval.pParseNode) = (yyvsp[(1) - (1)].pParseNode);
    8354           0 :                                 if ( SQL_ISRULE((yyval.pParseNode),search_condition) )
    8355             :                                 {
    8356           0 :                                         (yyval.pParseNode)->insert(0,newNode("(", SQL_NODE_PUNCTUATION));
    8357           0 :                                         (yyval.pParseNode)->append(newNode(")", SQL_NODE_PUNCTUATION));
    8358             :                                 }
    8359             :                         }
    8360             :                         else
    8361           0 :                                 YYERROR;
    8362             :                 }
    8363           0 :     break;
    8364             : 
    8365             :   case 756:
    8366             : 
    8367             :     {
    8368           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8369           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (9)].pParseNode));
    8370           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (9)].pParseNode));
    8371           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (9)].pParseNode));
    8372           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (9)].pParseNode));
    8373           0 :         (yyval.pParseNode)->append((yyvsp[(5) - (9)].pParseNode));
    8374           0 :         (yyval.pParseNode)->append((yyvsp[(6) - (9)].pParseNode));
    8375           0 :         (yyval.pParseNode)->append((yyvsp[(7) - (9)].pParseNode));
    8376           0 :         (yyval.pParseNode)->append((yyvsp[(8) - (9)].pParseNode));
    8377           0 :         (yyval.pParseNode)->append((yyvsp[(9) - (9)].pParseNode));
    8378             :     }
    8379           0 :     break;
    8380             : 
    8381             :   case 757:
    8382             : 
    8383             :     {
    8384           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8385             :         }
    8386           0 :     break;
    8387             : 
    8388             :   case 758:
    8389             : 
    8390             :     {
    8391           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8392           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8393           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8394             :     }
    8395           0 :     break;
    8396             : 
    8397             :   case 761:
    8398             : 
    8399             :     {
    8400           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8401           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8402           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8403             :     }
    8404           0 :     break;
    8405             : 
    8406             :   case 764:
    8407             : 
    8408             :     {
    8409           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8410           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8411           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8412             :     }
    8413           0 :     break;
    8414             : 
    8415             :   case 765:
    8416             : 
    8417             :     {
    8418           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8419             :         }
    8420           0 :     break;
    8421             : 
    8422             :   case 766:
    8423             : 
    8424             :     {
    8425           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8426           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8427           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8428             :     }
    8429           0 :     break;
    8430             : 
    8431             :   case 768:
    8432             : 
    8433             :     {
    8434           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8435           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8436           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8437           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8438             :     }
    8439           0 :     break;
    8440             : 
    8441             :   case 769:
    8442             : 
    8443             :     {
    8444           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8445             :                 }
    8446           0 :     break;
    8447             : 
    8448             :   case 770:
    8449             : 
    8450             :     {
    8451           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8452           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (3)].pParseNode));
    8453           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (3)].pParseNode));
    8454           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8455             :     }
    8456           0 :     break;
    8457             : 
    8458             :   case 773:
    8459             : 
    8460             :     {
    8461           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8462             :         }
    8463           0 :     break;
    8464             : 
    8465             :   case 774:
    8466             : 
    8467             :     {
    8468           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8469           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (2)].pParseNode));
    8470           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8471             :     }
    8472           0 :     break;
    8473             : 
    8474             :   case 776:
    8475             : 
    8476             :     {
    8477           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8478           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (5)].pParseNode));
    8479           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (5)].pParseNode));
    8480           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (5)].pParseNode));
    8481           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (5)].pParseNode) = newNode(";", SQL_NODE_PUNCTUATION));
    8482           0 :         (yyval.pParseNode)->append((yyvsp[(5) - (5)].pParseNode));
    8483             :     }
    8484           0 :     break;
    8485             : 
    8486             :   case 777:
    8487             : 
    8488             :     {
    8489           0 :                         (yyval.pParseNode) = SQL_NEW_LISTRULE;
    8490           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    8491             :                 }
    8492           0 :     break;
    8493             : 
    8494             :   case 778:
    8495             : 
    8496             :     {
    8497           0 :                         (yyvsp[(1) - (3)].pParseNode)->append((yyvsp[(3) - (3)].pParseNode));
    8498           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (3)].pParseNode);
    8499             :                 }
    8500           0 :     break;
    8501             : 
    8502             :   case 780:
    8503             : 
    8504             :     {
    8505           0 :                         (yyval.pParseNode) = SQL_NEW_LISTRULE;
    8506           0 :                         (yyval.pParseNode)->append((yyvsp[(1) - (1)].pParseNode));
    8507             :                 }
    8508           0 :     break;
    8509             : 
    8510             :   case 781:
    8511             : 
    8512             :     {
    8513           0 :                         (yyvsp[(1) - (2)].pParseNode)->append((yyvsp[(2) - (2)].pParseNode));
    8514           0 :                         (yyval.pParseNode) = (yyvsp[(1) - (2)].pParseNode);
    8515             :                 }
    8516           0 :     break;
    8517             : 
    8518             :   case 782:
    8519             : 
    8520             :     {
    8521           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8522           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8523           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8524           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8525           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8526             :     }
    8527           0 :     break;
    8528             : 
    8529             :   case 783:
    8530             : 
    8531             :     {
    8532           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8533           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8534           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8535           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8536           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8537             :     }
    8538           0 :     break;
    8539             : 
    8540             :   case 784:
    8541             : 
    8542             :     {
    8543           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8544           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8545           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8546           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8547           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8548             :     }
    8549           0 :     break;
    8550             : 
    8551             :   case 785:
    8552             : 
    8553             :     {
    8554           0 :                 (yyval.pParseNode) = SQL_NEW_RULE;
    8555           0 :         (yyval.pParseNode)->append((yyvsp[(1) - (4)].pParseNode));
    8556           0 :         (yyval.pParseNode)->append((yyvsp[(2) - (4)].pParseNode));
    8557           0 :         (yyval.pParseNode)->append((yyvsp[(3) - (4)].pParseNode));
    8558           0 :         (yyval.pParseNode)->append((yyvsp[(4) - (4)].pParseNode));
    8559             :     }
    8560           0 :     break;
    8561             : 
    8562             : 
    8563             : 
    8564         108 :       default: break;
    8565             :     }
    8566             :   /* User semantic actions sometimes alter yychar, and that requires
    8567             :      that yytoken be updated with the new translation.  We take the
    8568             :      approach of translating immediately before every use of yytoken.
    8569             :      One alternative is translating here after every semantic action,
    8570             :      but that translation would be missed if the semantic action invokes
    8571             :      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
    8572             :      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
    8573             :      incorrect destructor might then be invoked immediately.  In the
    8574             :      case of YYERROR or YYBACKUP, subsequent parser actions might lead
    8575             :      to an incorrect destructor call or verbose syntax error message
    8576             :      before the lookahead is translated.  */
    8577             :   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
    8578             : 
    8579         210 :   YYPOPSTACK (yylen);
    8580         210 :   yylen = 0;
    8581             :   YY_STACK_PRINT (yyss, yyssp);
    8582             : 
    8583         210 :   *++yyvsp = yyval;
    8584             : 
    8585             :   /* Now `shift' the result of the reduction.  Determine what state
    8586             :      that goes to, based on the state we popped back to and the rule
    8587             :      number reduced by.  */
    8588             : 
    8589         210 :   yyn = yyr1[yyn];
    8590             : 
    8591         210 :   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
    8592         210 :   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    8593          34 :     yystate = yytable[yystate];
    8594             :   else
    8595         176 :     yystate = yydefgoto[yyn - YYNTOKENS];
    8596             : 
    8597         210 :   goto yynewstate;
    8598             : 
    8599             : 
    8600             : /*------------------------------------.
    8601             : | yyerrlab -- here on detecting error |
    8602             : `------------------------------------*/
    8603             : yyerrlab:
    8604             :   /* Make sure we have latest lookahead translation.  See comments at
    8605             :      user semantic actions for why this is necessary.  */
    8606           0 :   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
    8607             : 
    8608             :   /* If not already recovering from an error, report this error.  */
    8609           0 :   if (!yyerrstatus)
    8610             :     {
    8611           0 :       ++yynerrs;
    8612             : #if ! YYERROR_VERBOSE
    8613             :       yyerror (YY_("syntax error"));
    8614             : #else
    8615             : # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
    8616             :                                         yyssp, yytoken)
    8617             :       {
    8618           0 :         char const *yymsgp = YY_("syntax error");
    8619             :         int yysyntax_error_status;
    8620           0 :         yysyntax_error_status = YYSYNTAX_ERROR;
    8621           0 :         if (yysyntax_error_status == 0)
    8622           0 :           yymsgp = yymsg;
    8623           0 :         else if (yysyntax_error_status == 1)
    8624             :           {
    8625           0 :             if (yymsg != yymsgbuf)
    8626           0 :               YYSTACK_FREE (yymsg);
    8627           0 :             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
    8628           0 :             if (!yymsg)
    8629             :               {
    8630           0 :                 yymsg = yymsgbuf;
    8631           0 :                 yymsg_alloc = sizeof yymsgbuf;
    8632           0 :                 yysyntax_error_status = 2;
    8633             :               }
    8634             :             else
    8635             :               {
    8636           0 :                 yysyntax_error_status = YYSYNTAX_ERROR;
    8637           0 :                 yymsgp = yymsg;
    8638             :               }
    8639             :           }
    8640           0 :         yyerror (yymsgp);
    8641           0 :         if (yysyntax_error_status == 2)
    8642           0 :           goto yyexhaustedlab;
    8643             :       }
    8644             : # undef YYSYNTAX_ERROR
    8645             : #endif
    8646             :     }
    8647             : 
    8648             : 
    8649             : 
    8650           0 :   if (yyerrstatus == 3)
    8651             :     {
    8652             :       /* If just tried and failed to reuse lookahead token after an
    8653             :          error, discard it.  */
    8654             : 
    8655           0 :       if (yychar <= YYEOF)
    8656             :         {
    8657             :           /* Return failure if at end of input.  */
    8658           0 :           if (yychar == YYEOF)
    8659           0 :             YYABORT;
    8660             :         }
    8661             :       else
    8662             :         {
    8663             :           yydestruct ("Error: discarding",
    8664           0 :                       yytoken, &yylval);
    8665           0 :           yychar = YYEMPTY;
    8666             :         }
    8667             :     }
    8668             : 
    8669             :   /* Else will try to reuse lookahead token after shifting the error
    8670             :      token.  */
    8671           0 :   goto yyerrlab1;
    8672             : 
    8673             : 
    8674             : /*---------------------------------------------------.
    8675             : | yyerrorlab -- error raised explicitly by YYERROR.  |
    8676             : `---------------------------------------------------*/
    8677             : yyerrorlab:
    8678             : 
    8679             :   /* Pacify compilers like GCC when the user code never invokes
    8680             :      YYERROR and the label yyerrorlab therefore never appears in user
    8681             :      code.  */
    8682             :   if (/*CONSTCOND*/ 0)
    8683             :      goto yyerrorlab;
    8684             : 
    8685             :   /* Do not reclaim the symbols of the rule which action triggered
    8686             :      this YYERROR.  */
    8687           0 :   YYPOPSTACK (yylen);
    8688           0 :   yylen = 0;
    8689             :   YY_STACK_PRINT (yyss, yyssp);
    8690           0 :   yystate = *yyssp;
    8691           0 :   goto yyerrlab1;
    8692             : 
    8693             : 
    8694             : /*-------------------------------------------------------------.
    8695             : | yyerrlab1 -- common code for both syntax error and YYERROR.  |
    8696             : `-------------------------------------------------------------*/
    8697             : yyerrlab1:
    8698           0 :   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
    8699             : 
    8700           0 :   for (;;)
    8701             :     {
    8702           0 :       yyn = yypact[yystate];
    8703           0 :       if (!yypact_value_is_default (yyn))
    8704             :         {
    8705           0 :           yyn += YYTERROR;
    8706           0 :           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
    8707             :             {
    8708           0 :               yyn = yytable[yyn];
    8709           0 :               if (0 < yyn)
    8710           0 :                 break;
    8711             :             }
    8712             :         }
    8713             : 
    8714             :       /* Pop the current state because it cannot handle the error token.  */
    8715           0 :       if (yyssp == yyss)
    8716           0 :         YYABORT;
    8717             : 
    8718             : 
    8719             :       yydestruct ("Error: popping",
    8720           0 :                   yystos[yystate], yyvsp);
    8721           0 :       YYPOPSTACK (1);
    8722           0 :       yystate = *yyssp;
    8723             :       YY_STACK_PRINT (yyss, yyssp);
    8724             :     }
    8725             : 
    8726           0 :   *++yyvsp = yylval;
    8727             : 
    8728             : 
    8729             :   /* Shift the error token.  */
    8730             :   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
    8731             : 
    8732           0 :   yystate = yyn;
    8733           0 :   goto yynewstate;
    8734             : 
    8735             : 
    8736             : /*-------------------------------------.
    8737             : | yyacceptlab -- YYACCEPT comes here.  |
    8738             : `-------------------------------------*/
    8739             : yyacceptlab:
    8740           4 :   yyresult = 0;
    8741           4 :   goto yyreturn;
    8742             : 
    8743             : /*-----------------------------------.
    8744             : | yyabortlab -- YYABORT comes here.  |
    8745             : `-----------------------------------*/
    8746             : yyabortlab:
    8747           0 :   yyresult = 1;
    8748           0 :   goto yyreturn;
    8749             : 
    8750             : #if !defined(yyoverflow) || YYERROR_VERBOSE
    8751             : /*-------------------------------------------------.
    8752             : | yyexhaustedlab -- memory exhaustion comes here.  |
    8753             : `-------------------------------------------------*/
    8754             : yyexhaustedlab:
    8755           0 :   yyerror (YY_("memory exhausted"));
    8756           0 :   yyresult = 2;
    8757             :   /* Fall through.  */
    8758             : #endif
    8759             : 
    8760             : yyreturn:
    8761           4 :   if (yychar != YYEMPTY)
    8762             :     {
    8763             :       /* Make sure we have latest lookahead translation.  See comments at
    8764             :          user semantic actions for why this is necessary.  */
    8765           0 :       yytoken = YYTRANSLATE (yychar);
    8766             :       yydestruct ("Cleanup: discarding lookahead",
    8767           0 :                   yytoken, &yylval);
    8768             :     }
    8769             :   /* Do not reclaim the symbols of the rule which action triggered
    8770             :      this YYABORT or YYACCEPT.  */
    8771           4 :   YYPOPSTACK (yylen);
    8772             :   YY_STACK_PRINT (yyss, yyssp);
    8773          16 :   while (yyssp != yyss)
    8774             :     {
    8775             :       yydestruct ("Cleanup: popping",
    8776           8 :                   yystos[*yyssp], yyvsp);
    8777           8 :       YYPOPSTACK (1);
    8778             :     }
    8779             : #ifndef yyoverflow
    8780           4 :   if (yyss != yyssa)
    8781           0 :     YYSTACK_FREE (yyss);
    8782             : #endif
    8783             : #if YYERROR_VERBOSE
    8784           4 :   if (yymsg != yymsgbuf)
    8785           0 :     YYSTACK_FREE (yymsg);
    8786             : #endif
    8787             :   /* Make sure YYID is used.  */
    8788           4 :   return YYID (yyresult);
    8789             : }
    8790             : 
    8791             : 
    8792             : 
    8793             : 
    8794             : 
    8795             : 
    8796             : using namespace ::com::sun::star::sdbc;
    8797             : using namespace ::com::sun::star::beans;
    8798             : using namespace ::com::sun::star::uno;
    8799             : using namespace ::com::sun::star::i18n;
    8800             : using namespace ::com::sun::star::lang;
    8801             : using namespace ::com::sun::star::util;
    8802             : using namespace ::osl;
    8803             : using namespace ::dbtools;
    8804             : 
    8805             : //============================================================
    8806             : //= a helper for static ascii pseudo-unicode strings
    8807             : //============================================================
    8808             : // string constants
    8809             : struct _ConstAsciiString_
    8810             : {
    8811             :         sal_Int32 length;
    8812             :         sal_Char  const* str;
    8813             : 
    8814           0 :         operator rtl::OUString () const { return rtl::OUString(str, length, RTL_TEXTENCODING_ASCII_US); }
    8815             :         operator const sal_Char * () const { return str; }
    8816           0 :         operator ::rtl::OString() const { return str; }
    8817             : };
    8818             : 
    8819             : #define IMPLEMENT_CONSTASCII_STRING( name, string ) \
    8820             :         _ConstAsciiString_ const name = { sizeof(string)-1, string }
    8821             : 
    8822             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_GENERAL, "Syntax error in SQL expression");
    8823             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_VALUE_NO_LIKE, "The value #1 can not be used with LIKE.");
    8824             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_FIELD_NO_LIKE, "LIKE can not be used with this field.");
    8825             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_COMPARE, "The entered criterion can not be compared with this field.");
    8826             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_DATE_COMPARE, "The field can not be compared with a date.");
    8827             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_REAL_COMPARE,     "The field can not be compared with a floating point number.");
    8828             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_INT_COMPARE,      "The field can not be compared with a number.");
    8829             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE,    "The database does not contain a table named \"#\".");
    8830             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE_OR_QUERY,   "The database does contain neither a table nor a query named \"#\".");
    8831             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_COLUMN,   "The column \"#1\" is unknown in the table \"#2\".");
    8832             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_TABLE_EXIST,      "The database already contains a table or view with name \"#\".");
    8833             : IMPLEMENT_CONSTASCII_STRING(ERROR_STR_INVALID_QUERY_EXIST,      "The database already contains a query with name \"#\".");
    8834             : 
    8835             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_LIKE, "LIKE");
    8836             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_NOT, "NOT");
    8837             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_NULL, "NULL");
    8838             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_TRUE, "True");
    8839             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_FALSE, "False");
    8840             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_IS, "IS");
    8841             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_BETWEEN, "BETWEEN");
    8842             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_OR, "OR");
    8843             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_AND, "AND");
    8844             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_AVG, "AVG");
    8845             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_COUNT, "COUNT");
    8846             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_MAX, "MAX");
    8847             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_MIN, "MIN");
    8848             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_SUM, "SUM");
    8849             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_EVERY, "EVERY");
    8850             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_ANY, "ANY");
    8851             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_SOME, "SOME");
    8852             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_STDDEV_POP, "STDDEV_POP");
    8853             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_STDDEV_SAMP, "STDDEV_SAMP");
    8854             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_VAR_SAMP, "VAR_SAMP");
    8855             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_VAR_POP, "VAR_POP");
    8856             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_COLLECT, "COLLECT");
    8857             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_FUSION, "FUSION");
    8858             : IMPLEMENT_CONSTASCII_STRING(KEY_STR_INTERSECTION, "INTERSECTION");
    8859             : 
    8860             : IMPLEMENT_CONSTASCII_STRING(FIELD_STR_NULLDATE, "NullDate");
    8861             : 
    8862             : IMPLEMENT_CONSTASCII_STRING(STR_SQL_TOKEN, "SQL_TOKEN_");
    8863             : 
    8864             : //==========================================================================
    8865             : //= OParseContext
    8866             : //==========================================================================
    8867             : //-----------------------------------------------------------------------------
    8868          25 : OParseContext::OParseContext()
    8869             : {
    8870          25 : }
    8871             : 
    8872             : //-----------------------------------------------------------------------------
    8873          25 : OParseContext::~OParseContext()
    8874             : {
    8875          25 : }
    8876             : 
    8877             : //-----------------------------------------------------------------------------
    8878           0 : ::rtl::OUString OParseContext::getErrorMessage(ErrorCode _eCode) const
    8879             : {
    8880           0 :         ::rtl::OUString aMsg;
    8881           0 :         switch (_eCode)
    8882             :         {
    8883           0 :                 case ERROR_GENERAL:                                     aMsg = ERROR_STR_GENERAL; break;
    8884           0 :                 case ERROR_VALUE_NO_LIKE:                       aMsg = ERROR_STR_VALUE_NO_LIKE; break;
    8885           0 :                 case ERROR_FIELD_NO_LIKE:                       aMsg = ERROR_STR_FIELD_NO_LIKE; break;
    8886           0 :                 case ERROR_INVALID_COMPARE:                     aMsg = ERROR_STR_INVALID_COMPARE; break;
    8887           0 :                 case ERROR_INVALID_INT_COMPARE:         aMsg = ERROR_STR_INVALID_INT_COMPARE; break;
    8888           0 :                 case ERROR_INVALID_DATE_COMPARE:        aMsg = ERROR_STR_INVALID_DATE_COMPARE; break;
    8889           0 :                 case ERROR_INVALID_REAL_COMPARE:        aMsg = ERROR_STR_INVALID_REAL_COMPARE; break;
    8890           0 :                 case ERROR_INVALID_TABLE:                       aMsg = ERROR_STR_INVALID_TABLE; break;
    8891           0 :                 case ERROR_INVALID_TABLE_OR_QUERY:  aMsg = ERROR_STR_INVALID_TABLE_OR_QUERY; break;
    8892           0 :                 case ERROR_INVALID_COLUMN:                      aMsg = ERROR_STR_INVALID_COLUMN; break;
    8893           0 :                 case ERROR_INVALID_TABLE_EXIST:         aMsg = ERROR_STR_INVALID_TABLE_EXIST; break;
    8894           0 :                 case ERROR_INVALID_QUERY_EXIST:         aMsg = ERROR_STR_INVALID_QUERY_EXIST; break;
    8895             :         default:
    8896             :             OSL_FAIL( "OParseContext::getErrorMessage: unknown error code!" );
    8897           0 :             break;
    8898             :         }
    8899           0 :         return aMsg;
    8900             : }
    8901             : 
    8902             : //-----------------------------------------------------------------------------
    8903           0 : ::rtl::OString OParseContext::getIntlKeywordAscii(InternationalKeyCode _eKey) const
    8904             : {
    8905           0 :         ::rtl::OString aKeyword;
    8906           0 :         switch (_eKey)
    8907             :         {
    8908           0 :                 case KEY_LIKE:          aKeyword = KEY_STR_LIKE; break;
    8909           0 :                 case KEY_NOT:           aKeyword = KEY_STR_NOT; break;
    8910           0 :                 case KEY_NULL:          aKeyword = KEY_STR_NULL; break;
    8911           0 :                 case KEY_TRUE:          aKeyword = KEY_STR_TRUE; break;
    8912           0 :                 case KEY_FALSE:         aKeyword = KEY_STR_FALSE; break;
    8913           0 :                 case KEY_IS:            aKeyword = KEY_STR_IS; break;
    8914           0 :                 case KEY_BETWEEN:       aKeyword = KEY_STR_BETWEEN; break;
    8915           0 :                 case KEY_OR:            aKeyword = KEY_STR_OR; break;
    8916           0 :                 case KEY_AND:           aKeyword = KEY_STR_AND; break;
    8917           0 :                 case KEY_AVG:           aKeyword = KEY_STR_AVG; break;
    8918           0 :                 case KEY_COUNT:         aKeyword = KEY_STR_COUNT; break;
    8919           0 :                 case KEY_MAX:           aKeyword = KEY_STR_MAX; break;
    8920           0 :                 case KEY_MIN:           aKeyword = KEY_STR_MIN; break;
    8921           0 :                 case KEY_SUM:           aKeyword = KEY_STR_SUM; break;
    8922           0 :         case KEY_EVERY:     aKeyword = KEY_STR_EVERY; break;
    8923           0 :         case KEY_ANY:       aKeyword = KEY_STR_ANY; break;
    8924           0 :         case KEY_SOME:      aKeyword = KEY_STR_SOME; break;
    8925           0 :         case KEY_STDDEV_POP: aKeyword = KEY_STR_STDDEV_POP; break;
    8926           0 :         case KEY_STDDEV_SAMP: aKeyword = KEY_STR_STDDEV_SAMP; break;
    8927           0 :         case KEY_VAR_SAMP:  aKeyword = KEY_STR_VAR_SAMP; break;
    8928           0 :         case KEY_VAR_POP:   aKeyword = KEY_STR_VAR_POP; break;
    8929           0 :         case KEY_COLLECT:   aKeyword = KEY_STR_COLLECT; break;
    8930           0 :         case KEY_FUSION:    aKeyword = KEY_STR_FUSION; break;
    8931           0 :         case KEY_INTERSECTION:aKeyword = KEY_STR_INTERSECTION; break;
    8932           0 :         case KEY_NONE:      break;
    8933             :         default:
    8934             :             OSL_FAIL( "OParseContext::getIntlKeywordAscii: unknown key!" );
    8935           0 :             break;
    8936             :         }
    8937           0 :         return aKeyword;
    8938             : }
    8939             : 
    8940             : //-----------------------------------------------------------------------------
    8941           0 : IParseContext::InternationalKeyCode OParseContext::getIntlKeyCode(const ::rtl::OString& rToken) const
    8942             : {
    8943             :         static IParseContext::InternationalKeyCode Intl_TokenID[] =
    8944             :         {
    8945             :                 KEY_LIKE, KEY_NOT, KEY_NULL, KEY_TRUE,
    8946             :                 KEY_FALSE, KEY_IS, KEY_BETWEEN, KEY_OR,
    8947             :                 KEY_AND, KEY_AVG, KEY_COUNT, KEY_MAX,
    8948             :                 KEY_MIN, KEY_SUM, KEY_EVERY,KEY_ANY,KEY_SOME,
    8949             :         KEY_STDDEV_POP,KEY_STDDEV_SAMP,KEY_VAR_SAMP,
    8950             :         KEY_VAR_POP,KEY_COLLECT,KEY_FUSION,KEY_INTERSECTION
    8951             :         };
    8952             : 
    8953           0 :         sal_uInt32 nCount = SAL_N_ELEMENTS( Intl_TokenID );
    8954           0 :         for (sal_uInt32 i = 0; i < nCount; i++)
    8955             :         {
    8956           0 :                 ::rtl::OString aKey = getIntlKeywordAscii(Intl_TokenID[i]);
    8957           0 :                 if (rToken.equalsIgnoreAsciiCase(aKey))
    8958           0 :                         return Intl_TokenID[i];
    8959           0 :         }
    8960             : 
    8961           0 :         return KEY_NONE;
    8962             : }
    8963             : 
    8964             : //------------------------------------------------------------------------------
    8965           4 : static Locale& impl_getLocaleInstance( )
    8966             : {
    8967             :         static Locale s_aLocale(
    8968             :                 ::rtl::OUString( "en"  ),
    8969             :                 ::rtl::OUString( "US"  ),
    8970             :                 ::rtl::OUString( )
    8971           4 :         );
    8972           4 :         return s_aLocale;
    8973             : }
    8974             : 
    8975             : //------------------------------------------------------------------------------
    8976           4 : Locale OParseContext::getPreferredLocale( ) const
    8977             : {
    8978           4 :         return getDefaultLocale();
    8979             : }
    8980             : 
    8981             : //------------------------------------------------------------------------------
    8982           4 : const Locale& OParseContext::getDefaultLocale()
    8983             : {
    8984           4 :         return impl_getLocaleInstance();
    8985             : }
    8986             : 
    8987             : //==========================================================================
    8988             : //= misc
    8989             : //==========================================================================
    8990             : // Der (leider globale) yylval fuer die Uebergabe von
    8991             : // Werten vom Scanner an den Parser. Die globale Variable
    8992             : // wird nur kurzzeitig verwendet, der Parser liest die Variable
    8993             : // sofort nach dem Scanner-Aufruf in eine gleichnamige eigene
    8994             : // Member-Variable.
    8995             : 
    8996             : const double fMilliSecondsPerDay = 86400000.0;
    8997             : 
    8998             : //------------------------------------------------------------------------------
    8999             : 
    9000             : 
    9001             : //------------------------------------------------------------------
    9002           0 : ::rtl::OUString ConvertLikeToken(const OSQLParseNode* pTokenNode, const OSQLParseNode* pEscapeNode, sal_Bool bInternational)
    9003             : {
    9004           0 :         ::rtl::OUStringBuffer aMatchStr(0);
    9005           0 :         if (pTokenNode->isToken())
    9006             :         {
    9007           0 :                 sal_Unicode cEscape = 0;
    9008           0 :                 if (pEscapeNode->count())
    9009           0 :                         cEscape = pEscapeNode->getChild(1)->getTokenValue().toChar();
    9010             : 
    9011             :                 // Platzhalter austauschen
    9012           0 :                 aMatchStr = pTokenNode->getTokenValue();
    9013           0 :                 const sal_Int32 nLen = aMatchStr.getLength();
    9014           0 :                 ::rtl::OUStringBuffer sSearch,sReplace;
    9015           0 :                 if ( bInternational )
    9016             :                 {
    9017           0 :                     sSearch.appendAscii("%_",2);
    9018           0 :                     sReplace.appendAscii("*?",2);
    9019             :                 }
    9020             :                 else
    9021             :                 {
    9022           0 :                     sSearch.appendAscii("*?",2);
    9023           0 :                     sReplace.appendAscii("%_",2);
    9024             :                 }
    9025             : 
    9026           0 :                 bool wasEscape = false;
    9027           0 :                 for (sal_Int32 i = 0; i < nLen; i++)
    9028             :                 {
    9029           0 :                         const sal_Unicode c = aMatchStr[i];
    9030             :                         // SQL standard requires the escape to be followed
    9031             :                         // by a meta-character ('%', '_' or itself), else error
    9032             :                         // We are more lenient here and let it escape anything.
    9033             :                         // Especially since some databases (e.g. Microsoft SQL Server)
    9034             :                         // have more meta-characters than the standard, such as e.g. '[' and ']'
    9035           0 :                         if (wasEscape)
    9036             :                         {
    9037           0 :                                 wasEscape=false;
    9038           0 :                                 continue;
    9039             :                         }
    9040           0 :                         if (c == cEscape)
    9041             :                         {
    9042           0 :                                 wasEscape=true;
    9043           0 :                                 continue;
    9044             :                         }
    9045           0 :                         int match = -1;
    9046           0 :                         if (c == sSearch[0])
    9047           0 :                                 match=0;
    9048           0 :                         else if (c == sSearch[1])
    9049           0 :                                 match=1;
    9050             : 
    9051           0 :                         if (match != -1)
    9052             :                         {
    9053           0 :                                 aMatchStr[i] = sReplace[match];
    9054             :                         }
    9055           0 :                 }
    9056             :         }
    9057           0 :         return aMatchStr.makeStringAndClear();
    9058             : }
    9059             : 
    9060             : //==========================================================================
    9061             : //= OSQLParser
    9062             : //==========================================================================
    9063             : 
    9064             : sal_uInt32                          OSQLParser::s_nRuleIDs[OSQLParseNode::rule_count + 1];
    9065          25 : OSQLParser::RuleIDMap   OSQLParser::s_aReverseRuleIDLookup;
    9066          25 : OParseContext               OSQLParser::s_aDefaultContext;
    9067             : 
    9068             : sal_Int32                       OSQLParser::s_nRefCount = 0;
    9069             : //      ::osl::Mutex            OSQLParser::s_aMutex;
    9070             : OSQLScanner*            OSQLParser::s_pScanner = 0;
    9071             : OSQLParseNodesGarbageCollector*         OSQLParser::s_pGarbageCollector = 0;
    9072          25 : ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XLocaleData4>           OSQLParser::s_xLocaleData = NULL;
    9073             : //-----------------------------------------------------------------------------
    9074           8 : void setParser(OSQLParser* _pParser)
    9075             : {
    9076           8 :         xxx_pGLOBAL_SQLPARSER = _pParser;
    9077           8 : }
    9078             : // -------------------------------------------------------------------------
    9079           4 : void OSQLParser::setParseTree(OSQLParseNode * pNewParseTree)
    9080             : {
    9081           4 :         ::osl::MutexGuard aGuard(getMutex());
    9082           4 :         m_pParseTree = pNewParseTree;
    9083           4 : }
    9084             : //-----------------------------------------------------------------------------
    9085             : 
    9086             : /** Delete all comments in a query.
    9087             : 
    9088             :     See also getComment()/concatComment() implementation for
    9089             :     OQueryController::translateStatement().
    9090             :  */
    9091           4 : static ::rtl::OUString delComment( const ::rtl::OUString& rQuery )
    9092             : {
    9093             :     // First a quick search if there is any "--" or "//" or "/*", if not then the whole
    9094             :     // copying loop is pointless.
    9095           8 :     if (rQuery.indexOfAsciiL( "--", 2, 0) < 0 && rQuery.indexOfAsciiL( "//", 2, 0) < 0 &&
    9096           4 :             rQuery.indexOfAsciiL( "/*", 2, 0) < 0)
    9097           4 :         return rQuery;
    9098             : 
    9099           0 :     const sal_Unicode* pCopy = rQuery.getStr();
    9100           0 :     sal_Int32 nQueryLen = rQuery.getLength();
    9101           0 :     bool bIsText1  = false;     // "text"
    9102           0 :     bool bIsText2  = false;     // 'text'
    9103           0 :     bool bComment2 = false;     // /* comment */
    9104           0 :     bool bComment  = false;     // -- or // comment
    9105           0 :     ::rtl::OUStringBuffer aBuf(nQueryLen);
    9106           0 :     for (sal_Int32 i=0; i < nQueryLen; ++i)
    9107             :     {
    9108           0 :         if (bComment2)
    9109             :         {
    9110           0 :             if ((i+1) < nQueryLen)
    9111             :             {
    9112           0 :                 if (pCopy[i]=='*' && pCopy[i+1]=='/')
    9113             :                 {
    9114           0 :                     bComment2 = false;
    9115           0 :                     ++i;
    9116             :                 }
    9117             :             }
    9118             :             else
    9119             :             {
    9120             :                 // comment can't close anymore, actually an error, but..
    9121             :             }
    9122           0 :             continue;
    9123             :         }
    9124           0 :         if (pCopy[i] == '\n')
    9125           0 :             bComment = false;
    9126           0 :         else if (!bComment)
    9127             :         {
    9128           0 :             if (pCopy[i] == '\"' && !bIsText2)
    9129           0 :                 bIsText1 = !bIsText1;
    9130           0 :             else if (pCopy[i] == '\'' && !bIsText1)
    9131           0 :                 bIsText2 = !bIsText2;
    9132           0 :             if (!bIsText1 && !bIsText2 && (i+1) < nQueryLen)
    9133             :             {
    9134           0 :                 if ((pCopy[i]=='-' && pCopy[i+1]=='-') || (pCopy[i]=='/' && pCopy[i+1]=='/'))
    9135           0 :                     bComment = true;
    9136           0 :                 else if ((pCopy[i]=='/' && pCopy[i+1]=='*'))
    9137           0 :                     bComment2 = true;
    9138             :             }
    9139             :         }
    9140           0 :         if (!bComment && !bComment2)
    9141           0 :             aBuf.append( &pCopy[i], 1);
    9142             :     }
    9143           0 :     return aBuf.makeStringAndClear();
    9144             : }
    9145             : //-----------------------------------------------------------------------------
    9146           4 : OSQLParseNode* OSQLParser::parseTree(::rtl::OUString& rErrorMessage,
    9147             :                                                                          const ::rtl::OUString& rStatement,
    9148             :                                                                      sal_Bool bInternational)
    9149             : {
    9150             : 
    9151             : 
    9152             :         // Guard the parsing
    9153           4 :         ::osl::MutexGuard aGuard(getMutex());
    9154             :         // must be reset
    9155           4 :         setParser(this);
    9156             : 
    9157             :         // delete comments before parsing
    9158           4 :         ::rtl::OUString sTemp = delComment(rStatement);
    9159             : 
    9160             :         // defines how to scan
    9161           4 :         s_pScanner->SetRule(s_pScanner->GetSQLRule()); // initial
    9162           4 :         s_pScanner->prepareScan(sTemp, m_pContext, bInternational);
    9163             : 
    9164           4 :         SQLyylval.pParseNode = NULL;
    9165             :         //      SQLyypvt = NULL;
    9166           4 :         m_pParseTree = NULL;
    9167           4 :         m_sErrorMessage = ::rtl::OUString();
    9168             : 
    9169             :         // ... und den Parser anwerfen ...
    9170           4 :         if (SQLyyparse() != 0)
    9171             :         {
    9172             :                 // only set the error message, if it's not already set
    9173           0 :                 if (!m_sErrorMessage.getLength())
    9174           0 :                         m_sErrorMessage = s_pScanner->getErrorMessage();
    9175           0 :                 if (!m_sErrorMessage.getLength())
    9176           0 :                         m_sErrorMessage = m_pContext->getErrorMessage(IParseContext::ERROR_GENERAL);
    9177             : 
    9178           0 :                 rErrorMessage = m_sErrorMessage;
    9179             : 
    9180             :                 // clear the garbage collector
    9181           0 :                 (*s_pGarbageCollector)->clearAndDelete();
    9182           0 :                 return NULL;
    9183             :         }
    9184             :         else
    9185             :         {
    9186           4 :                 (*s_pGarbageCollector)->clear();
    9187             : 
    9188             :                 // Das Ergebnis liefern (den Root Parse Node):
    9189             : 
    9190             :                 //      OSL_ENSURE(Sdbyyval.pParseNode != NULL,"OSQLParser: Parser hat keinen ParseNode geliefert");
    9191             :                 //      return Sdbyyval.pParseNode;
    9192             :                 // geht nicht wegen Bug in MKS YACC-erzeugtem Code (es wird ein falscher ParseNode
    9193             :                 // geliefert).
    9194             : 
    9195             :                 // Stattdessen setzt die Parse-Routine jetzt den Member pParseTree
    9196             :                 // - einfach diesen zurueckliefern:
    9197             :                 OSL_ENSURE(m_pParseTree != NULL,"OSQLParser: Parser hat keinen ParseTree geliefert");
    9198           4 :                 return m_pParseTree;
    9199           4 :         }
    9200             : }
    9201             : //-----------------------------------------------------------------------------
    9202           0 : ::rtl::OString OSQLParser::TokenIDToStr(sal_uInt32 nTokenID, const IParseContext* pContext)
    9203             : {
    9204           0 :         ::rtl::OString aStr;
    9205           0 :         if (pContext)
    9206             :         {
    9207           0 :                 IParseContext::InternationalKeyCode eKeyCode = IParseContext::KEY_NONE;
    9208           0 :                 switch( nTokenID )
    9209             :                 {
    9210           0 :                         case SQL_TOKEN_LIKE: eKeyCode = IParseContext::KEY_LIKE; break;
    9211           0 :                         case SQL_TOKEN_NOT: eKeyCode = IParseContext::KEY_NOT; break;
    9212           0 :                         case SQL_TOKEN_NULL: eKeyCode = IParseContext::KEY_NULL; break;
    9213           0 :                         case SQL_TOKEN_TRUE: eKeyCode = IParseContext::KEY_TRUE; break;
    9214           0 :                         case SQL_TOKEN_FALSE: eKeyCode = IParseContext::KEY_FALSE; break;
    9215           0 :                         case SQL_TOKEN_IS: eKeyCode = IParseContext::KEY_IS; break;
    9216           0 :                         case SQL_TOKEN_BETWEEN: eKeyCode = IParseContext::KEY_BETWEEN; break;
    9217           0 :                         case SQL_TOKEN_OR: eKeyCode = IParseContext::KEY_OR; break;
    9218           0 :                         case SQL_TOKEN_AND: eKeyCode = IParseContext::KEY_AND; break;
    9219           0 :                         case SQL_TOKEN_AVG: eKeyCode = IParseContext::KEY_AVG; break;
    9220           0 :                         case SQL_TOKEN_COUNT: eKeyCode = IParseContext::KEY_COUNT; break;
    9221           0 :                         case SQL_TOKEN_MAX: eKeyCode = IParseContext::KEY_MAX; break;
    9222           0 :                         case SQL_TOKEN_MIN: eKeyCode = IParseContext::KEY_MIN; break;
    9223           0 :                         case SQL_TOKEN_SUM: eKeyCode = IParseContext::KEY_SUM; break;
    9224             :                 }
    9225           0 :                 if ( eKeyCode != IParseContext::KEY_NONE )
    9226           0 :                     aStr = pContext->getIntlKeywordAscii(eKeyCode);
    9227             :         }
    9228             : 
    9229           0 :         if (!aStr.getLength())
    9230             :         {
    9231           0 :                 aStr = yytname[YYTRANSLATE(nTokenID)];
    9232           0 :                 if(!aStr.compareTo("SQL_TOKEN_",10))
    9233           0 :                         aStr = aStr.copy(10);
    9234             :         }
    9235           0 :         return aStr;
    9236             : }
    9237             : 
    9238             : #if OSL_DEBUG_LEVEL > 1
    9239             : ::rtl::OUString OSQLParser::RuleIDToStr(sal_uInt32 nRuleID)
    9240             : {
    9241             :         OSL_ENSURE(nRuleID < SAL_N_ELEMENTS(yytname), "OSQLParser::RuleIDToStr: Invalid nRuleId!");
    9242             :         return ::rtl::OUString::createFromAscii(yytname[nRuleID]);
    9243             : }
    9244             : #endif
    9245             : 
    9246             : //-----------------------------------------------------------------------------
    9247         198 : sal_uInt32 OSQLParser::StrToRuleID(const ::rtl::OString & rValue)
    9248             : {
    9249             :         // Search for the given name in yytname and return the index
    9250             :         // (or UNKNOWN_RULE, if not found)
    9251             :         static sal_uInt32 nLen = SAL_N_ELEMENTS(yytname);
    9252       30808 :         for (sal_uInt32 i = YYTRANSLATE(SQL_TOKEN_INVALIDSYMBOL); i < (nLen-1); i++)
    9253             :         {
    9254       30794 :                 if (rValue == yytname[i])
    9255         184 :                         return i;
    9256             :         }
    9257             : 
    9258             :         // Not found
    9259          14 :         return OSQLParseNode::UNKNOWN_RULE;
    9260             : }
    9261             : 
    9262             : //-----------------------------------------------------------------------------
    9263           0 : OSQLParseNode::Rule OSQLParser::RuleIDToRule( sal_uInt32 _nRule )
    9264             : {
    9265           0 :     return s_aReverseRuleIDLookup[ _nRule ];
    9266             : }
    9267             : 
    9268             : //-----------------------------------------------------------------------------
    9269         718 : sal_uInt32 OSQLParser::RuleID(OSQLParseNode::Rule eRule)
    9270             : {
    9271         718 :         return s_nRuleIDs[(sal_uInt16)eRule];
    9272             : }
    9273             : // -------------------------------------------------------------------------
    9274           0 : sal_Int16 OSQLParser::buildNode(OSQLParseNode*& pAppend,OSQLParseNode* pCompare,OSQLParseNode* pLiteral,OSQLParseNode* pLiteral2)
    9275             : {
    9276           0 :         OSQLParseNode* pColumnRef = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::column_ref));
    9277           0 :         pColumnRef->append(new OSQLInternalNode(m_sFieldName,SQL_NODE_NAME));
    9278           0 :         OSQLParseNode* pComp = NULL;
    9279           0 :         if ( SQL_ISTOKEN( pCompare, BETWEEN) && pLiteral2 )
    9280           0 :                 pComp = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::between_predicate_part_2));
    9281             :         else
    9282           0 :                 pComp = new OSQLInternalNode(aEmptyString, SQL_NODE_RULE,OSQLParser::RuleID(OSQLParseNode::comparison_predicate));
    9283             : 
    9284           0 :         pComp->append(pColumnRef);
    9285           0 :         pComp->append(pCompare);
    9286           0 :         pComp->append(pLiteral);
    9287           0 :         if ( pLiteral2 )
    9288             :         {
    9289           0 :                 pComp->append(new OSQLInternalNode(aEmptyString, SQL_NODE_KEYWORD,SQL_TOKEN_AND));
    9290           0 :                 pComp->append(pLiteral2);
    9291             :         }
    9292           0 :         pAppend->append(pComp);
    9293           0 :         return 1;
    9294             : }
    9295             : //-----------------------------------------------------------------------------
    9296           0 : sal_Int16 OSQLParser::buildStringNodes(OSQLParseNode*& pLiteral)
    9297             : {
    9298           0 :         if(!pLiteral)
    9299           0 :                 return 1;
    9300             : 
    9301           0 :         if(SQL_ISRULE(pLiteral,set_fct_spec) || SQL_ISRULE(pLiteral,general_set_fct) || SQL_ISRULE(pLiteral,column_ref)
    9302           0 :                 || SQL_ISRULE(pLiteral,subquery))
    9303           0 :                 return 1; // here I have a function that I can't transform into a string
    9304             : 
    9305           0 :         if(pLiteral->getNodeType() == SQL_NODE_INTNUM || pLiteral->getNodeType() == SQL_NODE_APPROXNUM || pLiteral->getNodeType() == SQL_NODE_ACCESS_DATE)
    9306             :         {
    9307           0 :                 OSQLParseNode* pParent = pLiteral->getParent();
    9308             : 
    9309           0 :                 OSQLParseNode* pNewNode = new OSQLInternalNode(pLiteral->getTokenValue(), SQL_NODE_STRING);
    9310           0 :                 pParent->replace(pLiteral, pNewNode);
    9311           0 :                 delete pLiteral;
    9312           0 :                 pLiteral = NULL;
    9313           0 :                 return 1;
    9314             :         }
    9315             : 
    9316           0 :         for(sal_uInt32 i=0;i<pLiteral->count();++i)
    9317             :         {
    9318           0 :                 OSQLParseNode* pChild = pLiteral->getChild(i);
    9319           0 :                 buildStringNodes(pChild);
    9320             :         }
    9321           0 :         if(SQL_ISRULE(pLiteral,term) || SQL_ISRULE(pLiteral,value_exp_primary))
    9322             :         {
    9323           0 :                 m_sErrorMessage = m_pContext->getErrorMessage(IParseContext::ERROR_INVALID_COMPARE);
    9324           0 :                 return 0;
    9325             :         }
    9326           0 :         return 1;
    9327             : }
    9328             : //-----------------------------------------------------------------------------
    9329           0 : sal_Int16 OSQLParser::buildComparsionRule(OSQLParseNode*& pAppend,OSQLParseNode* pLiteral)
    9330             : {
    9331           0 :         OSQLParseNode* pComp = new OSQLInternalNode(::rtl::OUString("="), SQL_NODE_EQUAL);
    9332           0 :         return buildPredicateRule(pAppend,pLiteral,pComp);
    9333             : }
    9334             : 
    9335             : 
    9336             : //-----------------------------------------------------------------------------
    9337           0 : void OSQLParser::reduceLiteral(OSQLParseNode*& pLiteral, sal_Bool bAppendBlank)
    9338             : {
    9339             :         OSL_ENSURE(pLiteral->isRule(), "This is no ::com::sun::star::chaos::Rule");
    9340             :         OSL_ENSURE(pLiteral->count() == 2, "OSQLParser::ReduceLiteral() Invalid count");
    9341           0 :         OSQLParseNode* pTemp = pLiteral;
    9342           0 :         ::rtl::OUStringBuffer aValue(pLiteral->getChild(0)->getTokenValue());
    9343           0 :         if (bAppendBlank)
    9344             :         {
    9345           0 :                 aValue.appendAscii(" ");
    9346             :         }
    9347             : 
    9348           0 :         aValue.append(pLiteral->getChild(1)->getTokenValue());
    9349             : 
    9350           0 :         pLiteral = new OSQLInternalNode(aValue.makeStringAndClear(),SQL_NODE_STRING);
    9351           0 :         delete pTemp;
    9352           0 : }
    9353             : 
    9354             : // -------------------------------------------------------------------------
    9355           0 : void OSQLParser::error(const sal_Char *fmt)
    9356             : {
    9357           0 :         if(!m_sErrorMessage.getLength())
    9358             :         {
    9359           0 :                 ::rtl::OUString sStr(fmt,strlen(fmt),RTL_TEXTENCODING_UTF8);
    9360           0 :                 ::rtl::OUString sSQL_TOKEN("SQL_TOKEN_");
    9361             : 
    9362           0 :                 sal_Int32 nPos1 = sStr.indexOf(sSQL_TOKEN);
    9363           0 :                 if(nPos1 != -1)
    9364             :                 {
    9365           0 :                         ::rtl::OUString sFirst  = sStr.copy(0,nPos1);
    9366           0 :                         sal_Int32 nPos2 = sStr.indexOf(sSQL_TOKEN,nPos1+1);
    9367           0 :                         if(nPos2 != -1)
    9368             :                         {
    9369           0 :                                 ::rtl::OUString sSecond = sStr.copy(nPos1+sSQL_TOKEN.getLength(),nPos2-nPos1-sSQL_TOKEN.getLength());
    9370           0 :                                 sFirst  += sSecond;
    9371           0 :                                 sFirst  += sStr.copy(nPos2+sSQL_TOKEN.getLength());
    9372             :                         }
    9373             :                         else
    9374           0 :                                 sFirst += sStr.copy(nPos1+sSQL_TOKEN.getLength());
    9375             : 
    9376           0 :                         m_sErrorMessage = sFirst;
    9377             :                 }
    9378             :                 else
    9379           0 :                         m_sErrorMessage = sStr;
    9380             : 
    9381           0 :                 ::rtl::OUString aError = s_pScanner->getErrorMessage();
    9382           0 :                 if(aError.getLength())
    9383             :                 {
    9384           0 :                         m_sErrorMessage += ::rtl::OUString(", ");
    9385           0 :                         m_sErrorMessage += aError;
    9386           0 :                 }
    9387             :         }
    9388           0 : }
    9389             : // -------------------------------------------------------------------------
    9390          34 : int OSQLParser::SQLlex()
    9391             : {
    9392          34 :         return s_pScanner->SQLlex();
    9393          75 : }
    9394             : 
    9395             : #if defined __SUNPRO_CC
    9396             : #pragma enable_warn
    9397             : #elif defined _MSC_VER
    9398             : #pragma warning(pop)
    9399             : #endif
    9400             : 

Generated by: LCOV version 1.10