mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 02:03:04 +01:00
6883 lines
251 KiB
C++
6883 lines
251 KiB
C++
#ifndef lint
|
|
static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
|
|
#endif
|
|
#define YYBYACC 1
|
|
#define YYMAJOR 1
|
|
#define YYMINOR 9
|
|
#define yyclearin (DSQL_yychar=(-1))
|
|
#define yyerrok (DSQL_yyerrflag=0)
|
|
#define YYRECOVERING (DSQL_yyerrflag!=0)
|
|
#define YYPREFIX "yy"
|
|
/*
|
|
* PROGRAM: Dynamic SQL runtime support
|
|
* MODULE: parse.y
|
|
* DESCRIPTION: Dynamic SQL parser
|
|
*
|
|
* The contents of this file are subject to the Interbase Public
|
|
* License Version 1.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy
|
|
* of the License at http://www.Inprise.com/IPL.html
|
|
*
|
|
* Software distributed under the License is distributed on an
|
|
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code was created by Inprise Corporation
|
|
* and its predecessors. Portions created by Inprise Corporation are
|
|
* Copyright (C) Inprise Corporation.
|
|
*
|
|
* All Rights Reserved.
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
#include "firebird.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "../jrd/common.h"
|
|
#include <stdarg.h>
|
|
|
|
#include "gen/iberror.h"
|
|
#include "../dsql/dsql.h"
|
|
#include "../dsql/node.h"
|
|
#include "../dsql/sym.h"
|
|
#include "../jrd/gds.h"
|
|
#include "../jrd/flags.h"
|
|
#include "../dsql/alld_proto.h"
|
|
#include "../dsql/errd_proto.h"
|
|
#include "../dsql/hsh_proto.h"
|
|
#include "../dsql/make_proto.h"
|
|
#include "../dsql/parse_proto.h"
|
|
#include "../jrd/gds_proto.h"
|
|
#include "../jrd/thd_proto.h"
|
|
/* #include "../jrd/err_proto.h" */
|
|
#ifndef WINDOWS_ONLY
|
|
#include "../wal/wal.h"
|
|
#endif
|
|
|
|
extern "C" TEXT *DLL_EXPORT ERR_string(CONST TEXT*, int);
|
|
|
|
ASSERT_FILENAME
|
|
|
|
static void yyerror (TEXT *);
|
|
|
|
/* Remove compiler warning produced by redef of WRITE & READ from WINDOWS.H */
|
|
#ifdef WINDOWS_ONLY
|
|
#undef READ
|
|
#undef WRITE
|
|
#endif
|
|
|
|
/* since UNIX isn't standard, we have to define
|
|
stuff which is in <limits.h> (which isn't available
|
|
on all UNIXes... */
|
|
|
|
#define SHRT_POS_MAX 32767
|
|
#define SHRT_UNSIGNED_MAX 65535
|
|
#define SHRT_NEG_MAX 32768
|
|
#define LONG_POS_MAX 2147483647
|
|
#define POSITIVE 0
|
|
#define NEGATIVE 1
|
|
#define UNSIGNED 2
|
|
|
|
#define MIN_CACHE_BUFFERS 250
|
|
#define DEF_CACHE_BUFFERS 1000
|
|
|
|
#define YYSTYPE NOD
|
|
#ifdef DEBUG
|
|
#define YYDEBUG 1
|
|
#endif
|
|
|
|
static CONST UCHAR
|
|
INTERNAL_FIELD_NAME [] = "DSQL internal"; /* NTX: placeholder */
|
|
static CONST UCHAR
|
|
NULL_STRING [] = "";
|
|
|
|
#ifndef SHLIB_DEFS
|
|
NOD DSQL_parse;
|
|
#else
|
|
extern NOD DSQL_parse;
|
|
#endif
|
|
|
|
static FLD field;
|
|
static FIL file;
|
|
static NOD field_name;
|
|
static TEXT *beginning;
|
|
static SSHORT log_defined, cache_defined;
|
|
|
|
|
|
#define ACTIVE 257
|
|
#define ADD 258
|
|
#define AFTER 259
|
|
#define ALL 260
|
|
#define ALTER 261
|
|
#define AND 262
|
|
#define ANY 263
|
|
#define AS 264
|
|
#define ASC 265
|
|
#define AT 266
|
|
#define AVG 267
|
|
#define AUTO 268
|
|
#define BASENAME 269
|
|
#define BEFORE 270
|
|
#define BEGIN 271
|
|
#define BETWEEN 272
|
|
#define BLOB 273
|
|
#define BY 274
|
|
#define CACHE 275
|
|
#define CAST 276
|
|
#define CHARACTER 277
|
|
#define CHECK 278
|
|
#define CHECK_POINT_LEN 279
|
|
#define COLLATE 280
|
|
#define COLLATION 281
|
|
#define COMMA 282
|
|
#define COMMIT 283
|
|
#define COMMITTED 284
|
|
#define COMPUTED 285
|
|
#define CONCATENATE 286
|
|
#define CONDITIONAL 287
|
|
#define CONSTRAINT 288
|
|
#define CONTAINING 289
|
|
#define COUNT 290
|
|
#define CREATE 291
|
|
#define CSTRING 292
|
|
#define CURRENT 293
|
|
#define CURSOR 294
|
|
#define DATABASE 295
|
|
#define DATE 296
|
|
#define DB_KEY 297
|
|
#define DEBUG 298
|
|
#define DECIMAL 299
|
|
#define DECLARE 300
|
|
#define DEFAULT 301
|
|
#define DELETE 302
|
|
#define DESC 303
|
|
#define DISTINCT 304
|
|
#define DO 305
|
|
#define DOMAIN 306
|
|
#define DROP 307
|
|
#define ELSE 308
|
|
#define END 309
|
|
#define ENTRY_POINT 310
|
|
#define EQL 311
|
|
#define ESCAPE 312
|
|
#define EXCEPTION 313
|
|
#define EXECUTE 314
|
|
#define EXISTS 315
|
|
#define EXIT 316
|
|
#define EXTERNAL 317
|
|
#define FILTER 318
|
|
#define FOR 319
|
|
#define FOREIGN 320
|
|
#define FROM 321
|
|
#define FULL 322
|
|
#define FUNCTION 323
|
|
#define GDSCODE 324
|
|
#define GEQ 325
|
|
#define GENERATOR 326
|
|
#define GEN_ID 327
|
|
#define GRANT 328
|
|
#define GROUP 329
|
|
#define GROUP_COMMIT_WAIT 330
|
|
#define GTR 331
|
|
#define HAVING 332
|
|
#define IF 333
|
|
#define IN 334
|
|
#define INACTIVE 335
|
|
#define INNER 336
|
|
#define INPUT_TYPE 337
|
|
#define INDEX 338
|
|
#define INSERT 339
|
|
#define INTEGER 340
|
|
#define INTO 341
|
|
#define IS 342
|
|
#define ISOLATION 343
|
|
#define JOIN 344
|
|
#define KEY 345
|
|
#define KW_CHAR 346
|
|
#define KW_DEC 347
|
|
#define KW_DOUBLE 348
|
|
#define KW_FILE 349
|
|
#define KW_FLOAT 350
|
|
#define KW_INT 351
|
|
#define KW_LONG 352
|
|
#define KW_NULL 353
|
|
#define KW_NUMERIC 354
|
|
#define KW_UPPER 355
|
|
#define KW_VALUE 356
|
|
#define LENGTH 357
|
|
#define LOGFILE 358
|
|
#define LPAREN 359
|
|
#define LEFT 360
|
|
#define LEQ 361
|
|
#define LEVEL 362
|
|
#define LIKE 363
|
|
#define LOG_BUF_SIZE 364
|
|
#define LSS 365
|
|
#define MANUAL 366
|
|
#define MAXIMUM 367
|
|
#define MAX_SEGMENT 368
|
|
#define MERGE 369
|
|
#define MESSAGE 370
|
|
#define MINIMUM 371
|
|
#define MODULE_NAME 372
|
|
#define NAMES 373
|
|
#define NATIONAL 374
|
|
#define NATURAL 375
|
|
#define NCHAR 376
|
|
#define NEQ 377
|
|
#define NO 378
|
|
#define NOT 379
|
|
#define NOT_GTR 380
|
|
#define NOT_LSS 381
|
|
#define NUM_LOG_BUFS 382
|
|
#define OF 383
|
|
#define ON 384
|
|
#define ONLY 385
|
|
#define OPTION 386
|
|
#define OR 387
|
|
#define ORDER 388
|
|
#define OUTER 389
|
|
#define OUTPUT_TYPE 390
|
|
#define OVERFLOW 391
|
|
#define PAGE 392
|
|
#define PAGES 393
|
|
#define PAGE_SIZE 394
|
|
#define PARAMETER 395
|
|
#define PASSWORD 396
|
|
#define PLAN 397
|
|
#define POSITION 398
|
|
#define POST_EVENT 399
|
|
#define PRECISION 400
|
|
#define PRIMARY 401
|
|
#define PRIVILEGES 402
|
|
#define PROCEDURE 403
|
|
#define PROTECTED 404
|
|
#define RAW_PARTITIONS 405
|
|
#define READ 406
|
|
#define REAL 407
|
|
#define REFERENCES 408
|
|
#define RESERVING 409
|
|
#define RETAIN 410
|
|
#define RETURNING_VALUES 411
|
|
#define RETURNS 412
|
|
#define REVOKE 413
|
|
#define RIGHT 414
|
|
#define RPAREN 415
|
|
#define ROLLBACK 416
|
|
#define SEGMENT 417
|
|
#define SELECT 418
|
|
#define SET 419
|
|
#define SHADOW 420
|
|
#define SHARED 421
|
|
#define SINGULAR 422
|
|
#define SIZE 423
|
|
#define SMALLINT 424
|
|
#define SNAPSHOT 425
|
|
#define SOME 426
|
|
#define SORT 427
|
|
#define SQLCODE 428
|
|
#define STABILITY 429
|
|
#define STARTING 430
|
|
#define STATISTICS 431
|
|
#define SUB_TYPE 432
|
|
#define SUSPEND 433
|
|
#define SUM 434
|
|
#define TABLE 435
|
|
#define THEN 436
|
|
#define TO 437
|
|
#define TRANSACTION 438
|
|
#define TRIGGER 439
|
|
#define UNCOMMITTED 440
|
|
#define UNION 441
|
|
#define UNIQUE 442
|
|
#define UPDATE 443
|
|
#define USER 444
|
|
#define VALUES 445
|
|
#define VARCHAR 446
|
|
#define VARIABLE 447
|
|
#define VARYING 448
|
|
#define VERSION 449
|
|
#define VIEW 450
|
|
#define WAIT 451
|
|
#define WHEN 452
|
|
#define WHERE 453
|
|
#define WHILE 454
|
|
#define WITH 455
|
|
#define WORK 456
|
|
#define WRITE 457
|
|
#define FLOAT 458
|
|
#define NUMBER 459
|
|
#define NUMERIC 460
|
|
#define SYMBOL 461
|
|
#define STRING 462
|
|
#define INTRODUCER 463
|
|
#define ACTION 464
|
|
#define ADMIN 465
|
|
#define CASCADE 466
|
|
#define FREE_IT 467
|
|
#define RESTRICT 468
|
|
#define ROLE 469
|
|
#define COLUMN 470
|
|
#define TYPE 471
|
|
#define EXTRACT 472
|
|
#define YEAR 473
|
|
#define MONTH 474
|
|
#define DAY 475
|
|
#define HOUR 476
|
|
#define MINUTE 477
|
|
#define SECOND 478
|
|
#define WEEKDAY 479
|
|
#define YEARDAY 480
|
|
#define TIME 481
|
|
#define TIMESTAMP 482
|
|
#define CURRENT_DATE 483
|
|
#define CURRENT_TIME 484
|
|
#define CURRENT_TIMESTAMP 485
|
|
#define NUMBER64BIT 486
|
|
#define SCALEDINT 487
|
|
#define LIMIT 488
|
|
#define INT64 489
|
|
#define SUBSTRING 490
|
|
#define YYERRCODE 256
|
|
static short yylhs[] = { -1,
|
|
0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 9, 9,
|
|
9, 9, 9, 19, 19, 18, 18, 18, 29, 29,
|
|
22, 30, 30, 30, 30, 30, 21, 21, 27, 27,
|
|
23, 12, 12, 12, 12, 12, 12, 12, 33, 24,
|
|
24, 24, 24, 34, 34, 34, 20, 20, 35, 35,
|
|
35, 25, 25, 39, 26, 26, 41, 41, 6, 42,
|
|
42, 44, 49, 49, 49, 46, 46, 46, 53, 53,
|
|
54, 47, 47, 56, 56, 56, 56, 43, 5, 59,
|
|
59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
|
|
61, 61, 64, 64, 64, 72, 80, 80, 80, 81,
|
|
81, 82, 82, 83, 83, 87, 87, 71, 90, 90,
|
|
92, 92, 93, 93, 96, 96, 97, 98, 98, 99,
|
|
100, 69, 73, 70, 84, 84, 103, 104, 104, 106,
|
|
106, 107, 107, 107, 107, 107, 105, 105, 108, 108,
|
|
109, 109, 109, 109, 111, 111, 111, 111, 110, 110,
|
|
115, 115, 114, 88, 116, 116, 117, 120, 121, 121,
|
|
122, 118, 119, 119, 123, 123, 124, 124, 125, 125,
|
|
125, 86, 86, 86, 66, 126, 126, 126, 127, 127,
|
|
128, 128, 129, 129, 129, 135, 76, 76, 131, 131,
|
|
94, 94, 89, 140, 141, 55, 132, 132, 95, 95,
|
|
95, 95, 133, 133, 145, 145, 146, 148, 148, 148,
|
|
148, 148, 130, 147, 147, 151, 151, 151, 151, 153,
|
|
154, 155, 150, 149, 149, 149, 149, 149, 156, 157,
|
|
158, 158, 158, 158, 65, 163, 159, 159, 160, 160,
|
|
164, 164, 165, 161, 161, 166, 166, 167, 168, 168,
|
|
162, 162, 170, 170, 169, 169, 169, 169, 169, 169,
|
|
169, 169, 169, 169, 169, 169, 169, 173, 174, 175,
|
|
175, 176, 182, 178, 178, 178, 179, 179, 179, 184,
|
|
184, 184, 184, 184, 184, 184, 184, 180, 180, 180,
|
|
180, 177, 181, 181, 171, 171, 186, 187, 187, 188,
|
|
188, 188, 188, 11, 190, 190, 190, 191, 191, 191,
|
|
191, 191, 191, 68, 193, 196, 196, 196, 197, 200,
|
|
205, 205, 206, 206, 207, 207, 137, 195, 77, 79,
|
|
194, 194, 67, 210, 210, 210, 211, 211, 211, 211,
|
|
211, 211, 212, 212, 213, 2, 215, 215, 215, 215,
|
|
215, 215, 215, 221, 221, 223, 223, 223, 223, 223,
|
|
223, 223, 216, 216, 224, 224, 224, 224, 224, 224,
|
|
224, 220, 229, 229, 229, 229, 229, 229, 229, 229,
|
|
229, 229, 229, 229, 229, 229, 229, 229, 229, 226,
|
|
226, 228, 228, 227, 225, 225, 225, 222, 222, 218,
|
|
219, 219, 230, 230, 230, 230, 231, 231, 217, 232,
|
|
232, 233, 233, 8, 234, 234, 234, 234, 234, 234,
|
|
234, 234, 234, 234, 234, 91, 91, 134, 134, 237,
|
|
237, 240, 240, 242, 242, 50, 50, 239, 239, 239,
|
|
239, 239, 239, 239, 239, 247, 247, 238, 238, 238,
|
|
238, 248, 248, 58, 58, 58, 52, 52, 244, 244,
|
|
244, 241, 241, 241, 252, 252, 252, 251, 251, 250,
|
|
250, 250, 245, 245, 255, 253, 253, 253, 254, 254,
|
|
246, 246, 246, 246, 256, 256, 15, 15, 15, 258,
|
|
258, 258, 4, 13, 260, 260, 261, 261, 262, 262,
|
|
257, 263, 263, 264, 264, 265, 265, 265, 265, 266,
|
|
266, 267, 267, 268, 268, 270, 270, 270, 271, 271,
|
|
271, 272, 272, 272, 269, 274, 274, 274, 275, 275,
|
|
273, 273, 276, 278, 278, 277, 277, 259, 14, 279,
|
|
279, 279, 280, 280, 283, 283, 284, 284, 62, 62,
|
|
62, 281, 281, 285, 285, 282, 198, 198, 199, 199,
|
|
289, 289, 290, 290, 290, 286, 293, 293, 294, 294,
|
|
295, 295, 296, 296, 297, 297, 299, 299, 300, 300,
|
|
208, 208, 28, 209, 209, 209, 209, 209, 209, 209,
|
|
209, 202, 202, 301, 301, 302, 302, 302, 203, 203,
|
|
201, 201, 287, 287, 304, 304, 304, 204, 204, 305,
|
|
306, 306, 306, 306, 306, 307, 307, 308, 308, 309,
|
|
309, 310, 310, 310, 311, 311, 10, 10, 312, 312,
|
|
7, 7, 313, 314, 315, 16, 16, 316, 317, 318,
|
|
318, 172, 291, 291, 3, 3, 319, 319, 319, 321,
|
|
321, 58, 320, 320, 322, 322, 31, 31, 75, 74,
|
|
74, 139, 139, 139, 136, 101, 101, 101, 101, 324,
|
|
324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
|
|
325, 325, 325, 325, 325, 325, 325, 325, 330, 330,
|
|
330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
|
|
330, 330, 330, 330, 336, 336, 326, 326, 327, 327,
|
|
327, 327, 328, 328, 332, 332, 333, 333, 333, 333,
|
|
331, 334, 329, 329, 337, 337, 335, 339, 78, 78,
|
|
78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
|
|
78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
|
|
144, 144, 144, 340, 343, 343, 142, 142, 344, 344,
|
|
344, 344, 344, 342, 342, 342, 342, 342, 338, 338,
|
|
338, 338, 338, 338, 192, 345, 48, 48, 17, 17,
|
|
214, 346, 51, 113, 243, 243, 85, 341, 341, 341,
|
|
341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
|
|
341, 341, 303, 303, 347, 347, 347, 347, 347, 347,
|
|
347, 347, 288, 288, 143, 45, 249, 112, 138, 323,
|
|
152, 185, 236, 60, 57, 189, 102, 63, 292, 32,
|
|
40, 298, 235, 36, 38, 183, 37,
|
|
};
|
|
static short yylen[] = { 2,
|
|
1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 2, 7, 8,
|
|
6, 7, 5, 1, 2, 1, 2, 1, 1, 3,
|
|
1, 1, 1, 1, 2, 2, 3, 0, 3, 0,
|
|
1, 7, 8, 6, 7, 6, 7, 4, 3, 1,
|
|
3, 3, 3, 2, 2, 2, 1, 3, 1, 2,
|
|
2, 1, 3, 1, 1, 3, 1, 2, 2, 2,
|
|
3, 8, 1, 1, 5, 0, 1, 3, 1, 3,
|
|
2, 1, 3, 2, 3, 4, 2, 9, 2, 3,
|
|
7, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
|
1, 0, 1, 1, 6, 6, 1, 1, 0, 0,
|
|
1, 0, 4, 0, 1, 1, 2, 8, 1, 0,
|
|
3, 0, 0, 1, 1, 2, 1, 1, 1, 2,
|
|
6, 1, 1, 3, 0, 1, 1, 0, 1, 1,
|
|
2, 3, 4, 2, 2, 3, 0, 1, 1, 2,
|
|
1, 1, 1, 4, 3, 3, 3, 3, 1, 1,
|
|
6, 3, 1, 3, 1, 3, 2, 1, 0, 2,
|
|
3, 1, 0, 1, 1, 2, 3, 4, 0, 1,
|
|
2, 0, 1, 1, 5, 3, 2, 0, 1, 3,
|
|
1, 1, 6, 3, 2, 6, 2, 1, 2, 2,
|
|
2, 0, 1, 1, 2, 0, 2, 0, 1, 1,
|
|
1, 1, 0, 1, 1, 2, 2, 2, 4, 1,
|
|
1, 2, 2, 2, 0, 1, 1, 1, 1, 2,
|
|
3, 7, 6, 1, 1, 2, 2, 0, 3, 3,
|
|
1, 2, 2, 2, 8, 8, 3, 0, 2, 0,
|
|
1, 3, 2, 1, 0, 1, 2, 5, 1, 1,
|
|
3, 4, 1, 2, 2, 2, 3, 1, 1, 1,
|
|
2, 3, 1, 2, 1, 2, 2, 6, 7, 8,
|
|
6, 4, 2, 1, 3, 0, 2, 4, 0, 1,
|
|
1, 1, 1, 3, 3, 3, 3, 1, 1, 3,
|
|
3, 6, 3, 0, 1, 2, 4, 1, 3, 2,
|
|
2, 2, 1, 4, 1, 3, 0, 1, 1, 1,
|
|
3, 3, 3, 7, 1, 1, 3, 4, 8, 2,
|
|
1, 3, 1, 1, 6, 3, 0, 0, 0, 0,
|
|
3, 0, 9, 1, 1, 0, 2, 2, 2, 2,
|
|
2, 2, 2, 0, 4, 2, 3, 3, 2, 2,
|
|
3, 3, 2, 1, 2, 4, 3, 2, 2, 2,
|
|
2, 3, 1, 3, 3, 3, 2, 2, 4, 4,
|
|
5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
2, 2, 2, 1, 1, 1, 0, 2, 2, 0,
|
|
1, 2, 2, 2, 2, 2, 1, 3, 7, 1,
|
|
0, 1, 0, 2, 2, 2, 2, 2, 2, 2,
|
|
2, 2, 3, 2, 2, 1, 1, 1, 1, 4,
|
|
5, 1, 3, 1, 3, 1, 2, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 4, 4, 6,
|
|
5, 3, 0, 2, 2, 0, 3, 0, 4, 1,
|
|
5, 4, 1, 4, 1, 2, 2, 1, 1, 1,
|
|
2, 2, 2, 2, 1, 0, 3, 5, 1, 1,
|
|
2, 3, 1, 2, 3, 0, 1, 1, 1, 5,
|
|
5, 6, 3, 2, 1, 0, 2, 0, 1, 0,
|
|
3, 1, 0, 1, 2, 1, 1, 1, 1, 2,
|
|
2, 1, 2, 3, 1, 1, 3, 3, 1, 2,
|
|
3, 1, 2, 0, 2, 1, 1, 0, 1, 1,
|
|
1, 3, 2, 3, 0, 1, 3, 4, 3, 1,
|
|
3, 4, 3, 0, 1, 3, 3, 3, 1, 1,
|
|
0, 3, 0, 2, 0, 9, 1, 1, 1, 1,
|
|
1, 3, 1, 2, 3, 2, 1, 3, 1, 1,
|
|
6, 3, 3, 2, 3, 0, 1, 3, 1, 1,
|
|
1, 2, 1, 1, 1, 2, 1, 2, 1, 2,
|
|
0, 3, 0, 1, 3, 1, 1, 3, 2, 0,
|
|
2, 0, 2, 0, 3, 5, 0, 2, 0, 4,
|
|
1, 2, 1, 1, 0, 1, 3, 2, 1, 1,
|
|
2, 1, 4, 2, 1, 3, 8, 5, 1, 3,
|
|
1, 1, 4, 4, 4, 1, 1, 5, 5, 1,
|
|
3, 3, 1, 1, 7, 7, 5, 3, 0, 1,
|
|
1, 1, 2, 0, 1, 1, 1, 0, 3, 1,
|
|
3, 1, 3, 3, 1, 1, 3, 3, 2, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
|
|
3, 3, 3, 3, 3, 3, 3, 3, 6, 6,
|
|
6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
|
6, 6, 6, 6, 1, 1, 5, 6, 3, 4,
|
|
5, 6, 3, 4, 3, 4, 3, 4, 4, 5,
|
|
4, 4, 3, 4, 3, 3, 8, 8, 1, 1,
|
|
1, 1, 1, 1, 1, 2, 2, 3, 3, 3,
|
|
3, 3, 3, 3, 3, 1, 1, 3, 1, 1,
|
|
1, 1, 1, 4, 1, 3, 1, 2, 1, 1,
|
|
1, 1, 1, 1, 1, 2, 2, 2, 1, 1,
|
|
1, 3, 3, 3, 1, 1, 1, 2, 1, 2,
|
|
1, 1, 1, 1, 1, 2, 1, 4, 5, 5,
|
|
5, 5, 5, 5, 5, 5, 5, 5, 6, 4,
|
|
6, 6, 4, 3, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
|
1, 1, 1, 1, 1, 1, 1,
|
|
};
|
|
static short yydefred[] = { 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 3, 4,
|
|
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
|
15, 16, 17, 497, 498, 499, 0, 550, 641, 642,
|
|
646, 647, 410, 0, 0, 0, 0, 0, 0, 356,
|
|
505, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
101, 0, 0, 89, 0, 791, 0, 18, 789, 0,
|
|
0, 69, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 424, 0, 0, 34, 31, 33,
|
|
0, 32, 0, 841, 0, 0, 0, 0, 29, 62,
|
|
64, 0, 0, 0, 0, 0, 0, 0, 0, 504,
|
|
823, 567, 0, 568, 0, 0, 0, 843, 591, 0,
|
|
0, 2, 0, 0, 0, 0, 399, 383, 384, 385,
|
|
386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
|
|
396, 397, 398, 0, 382, 834, 0, 838, 0, 363,
|
|
840, 0, 360, 0, 593, 844, 0, 359, 0, 503,
|
|
787, 0, 137, 97, 0, 0, 98, 0, 672, 203,
|
|
0, 675, 0, 837, 96, 132, 0, 92, 0, 99,
|
|
793, 0, 93, 0, 94, 847, 0, 95, 133, 100,
|
|
559, 560, 0, 792, 790, 0, 835, 70, 0, 0,
|
|
833, 432, 425, 0, 431, 426, 427, 434, 428, 429,
|
|
430, 435, 0, 27, 0, 36, 667, 35, 0, 0,
|
|
0, 0, 0, 830, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 757, 0, 825,
|
|
0, 759, 0, 0, 0, 756, 771, 770, 769, 0,
|
|
0, 0, 0, 761, 762, 763, 772, 773, 0, 0,
|
|
570, 0, 0, 785, 0, 775, 0, 0, 654, 760,
|
|
744, 743, 0, 0, 571, 0, 0, 745, 740, 741,
|
|
742, 774, 0, 0, 0, 0, 0, 0, 0, 522,
|
|
511, 0, 514, 516, 517, 518, 519, 525, 526, 0,
|
|
842, 592, 0, 0, 551, 0, 549, 0, 0, 0,
|
|
0, 411, 0, 0, 337, 0, 206, 0, 364, 357,
|
|
408, 409, 0, 0, 0, 0, 0, 0, 373, 0,
|
|
344, 345, 0, 509, 507, 788, 0, 0, 0, 0,
|
|
0, 0, 0, 140, 119, 0, 0, 90, 0, 108,
|
|
107, 0, 0, 0, 0, 0, 0, 826, 71, 0,
|
|
0, 0, 643, 644, 433, 0, 0, 319, 320, 314,
|
|
0, 318, 767, 0, 670, 0, 0, 24, 0, 0,
|
|
845, 0, 67, 65, 63, 30, 0, 0, 0, 49,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 776, 0,
|
|
0, 0, 0, 0, 0, 777, 778, 0, 0, 0,
|
|
0, 0, 846, 283, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 839, 574, 0, 0,
|
|
548, 0, 523, 0, 520, 0, 521, 546, 0, 541,
|
|
0, 0, 515, 0, 650, 0, 485, 0, 0, 0,
|
|
555, 552, 0, 172, 0, 0, 116, 416, 159, 160,
|
|
0, 414, 0, 0, 0, 0, 417, 0, 412, 339,
|
|
0, 368, 370, 369, 0, 371, 0, 365, 204, 0,
|
|
0, 251, 0, 0, 0, 0, 377, 378, 0, 401,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 420,
|
|
0, 136, 0, 0, 145, 0, 144, 0, 151, 134,
|
|
0, 149, 152, 153, 141, 0, 0, 453, 489, 456,
|
|
0, 490, 0, 0, 457, 0, 0, 0, 480, 493,
|
|
452, 475, 454, 455, 438, 339, 436, 437, 439, 0,
|
|
0, 448, 449, 450, 451, 0, 0, 0, 0, 674,
|
|
673, 0, 111, 0, 0, 187, 0, 0, 337, 0,
|
|
206, 0, 0, 79, 0, 0, 662, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 676, 680, 681, 682, 683,
|
|
684, 685, 686, 687, 688, 689, 768, 0, 0, 0,
|
|
669, 25, 0, 0, 41, 68, 0, 0, 23, 0,
|
|
0, 638, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 815, 816, 817, 818, 819, 820, 821, 822, 0,
|
|
0, 754, 755, 814, 0, 0, 829, 750, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 579, 580,
|
|
0, 0, 572, 575, 758, 797, 501, 0, 795, 500,
|
|
0, 524, 0, 532, 528, 527, 0, 0, 0, 543,
|
|
531, 0, 0, 648, 649, 0, 0, 0, 0, 0,
|
|
562, 0, 0, 117, 0, 0, 0, 0, 0, 0,
|
|
367, 0, 0, 340, 372, 446, 0, 253, 0, 247,
|
|
249, 337, 831, 224, 0, 0, 339, 0, 0, 195,
|
|
337, 0, 0, 0, 0, 229, 223, 226, 227, 228,
|
|
376, 406, 405, 375, 374, 0, 0, 0, 352, 348,
|
|
350, 351, 347, 349, 0, 339, 0, 142, 146, 0,
|
|
150, 0, 0, 476, 477, 494, 0, 491, 0, 0,
|
|
483, 481, 482, 0, 0, 0, 0, 447, 0, 0,
|
|
0, 0, 484, 337, 0, 186, 0, 189, 191, 192,
|
|
0, 0, 0, 0, 0, 206, 74, 0, 81, 73,
|
|
827, 464, 465, 0, 0, 0, 679, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 316, 322, 323,
|
|
321, 671, 0, 0, 0, 0, 0, 0, 0, 50,
|
|
57, 59, 0, 0, 66, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 206, 0, 798, 0,
|
|
0, 810, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 813, 764, 0, 0, 0, 0, 0, 0, 594,
|
|
0, 0, 0, 0, 0, 502, 796, 533, 542, 537,
|
|
536, 0, 547, 652, 651, 201, 557, 558, 556, 0,
|
|
168, 162, 169, 0, 165, 0, 0, 164, 0, 175,
|
|
156, 155, 794, 158, 157, 418, 0, 210, 207, 209,
|
|
211, 212, 366, 252, 0, 197, 339, 199, 340, 194,
|
|
200, 0, 0, 230, 0, 379, 380, 339, 337, 340,
|
|
353, 0, 183, 184, 143, 0, 0, 0, 0, 0,
|
|
0, 492, 0, 0, 339, 340, 0, 442, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
|
|
0, 0, 0, 0, 326, 0, 78, 0, 0, 0,
|
|
0, 82, 80, 0, 0, 832, 645, 0, 0, 690,
|
|
0, 0, 0, 716, 715, 0, 0, 0, 723, 733,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
678, 0, 61, 54, 55, 60, 56, 0, 0, 19,
|
|
0, 0, 0, 39, 0, 0, 0, 656, 639, 0,
|
|
655, 0, 0, 0, 0, 804, 803, 0, 0, 800,
|
|
799, 0, 808, 807, 806, 805, 802, 801, 0, 0,
|
|
0, 582, 0, 589, 0, 587, 583, 0, 600, 596,
|
|
598, 0, 0, 0, 0, 539, 540, 544, 0, 0,
|
|
0, 0, 0, 0, 176, 0, 0, 0, 0, 256,
|
|
0, 0, 0, 231, 0, 402, 403, 381, 339, 422,
|
|
340, 828, 154, 0, 0, 459, 0, 458, 495, 0,
|
|
487, 0, 0, 0, 440, 0, 467, 0, 0, 469,
|
|
472, 474, 0, 0, 106, 0, 190, 339, 0, 0,
|
|
338, 0, 91, 0, 104, 0, 87, 0, 0, 0,
|
|
0, 0, 731, 732, 0, 0, 0, 0, 786, 779,
|
|
780, 0, 0, 781, 734, 0, 0, 0, 0, 0,
|
|
0, 0, 724, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 53, 58,
|
|
51, 52, 20, 660, 661, 0, 658, 665, 666, 663,
|
|
0, 637, 0, 0, 205, 809, 811, 812, 0, 0,
|
|
585, 0, 0, 0, 604, 607, 0, 0, 0, 0,
|
|
170, 166, 0, 0, 181, 177, 340, 0, 0, 340,
|
|
257, 0, 0, 0, 215, 0, 0, 0, 0, 419,
|
|
461, 0, 462, 0, 121, 0, 0, 0, 125, 127,
|
|
128, 129, 443, 445, 441, 471, 340, 0, 0, 0,
|
|
0, 324, 0, 327, 339, 83, 0, 0, 85, 0,
|
|
0, 0, 0, 0, 0, 736, 0, 735, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 37, 0, 640, 0,
|
|
588, 0, 0, 0, 0, 613, 0, 566, 0, 161,
|
|
178, 131, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 260, 263, 259, 0,
|
|
0, 268, 269, 270, 273, 275, 246, 0, 193, 216,
|
|
0, 0, 0, 221, 217, 220, 0, 340, 0, 460,
|
|
488, 130, 118, 126, 245, 113, 340, 0, 0, 341,
|
|
328, 0, 0, 86, 75, 0, 702, 710, 0, 782,
|
|
783, 784, 703, 711, 706, 714, 0, 0, 704, 712,
|
|
705, 713, 699, 707, 700, 708, 701, 709, 657, 0,
|
|
0, 608, 605, 0, 621, 623, 0, 618, 0, 171,
|
|
0, 0, 0, 277, 0, 0, 0, 276, 0, 266,
|
|
271, 0, 274, 261, 0, 264, 0, 305, 265, 196,
|
|
218, 222, 0, 0, 233, 355, 343, 0, 0, 0,
|
|
333, 334, 0, 0, 72, 88, 0, 738, 615, 0,
|
|
622, 0, 258, 267, 0, 0, 0, 272, 0, 299,
|
|
0, 298, 313, 0, 0, 0, 0, 308, 262, 306,
|
|
0, 0, 232, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 629, 0, 0, 0, 0, 292,
|
|
291, 293, 0, 290, 0, 0, 0, 0, 282, 0,
|
|
312, 836, 311, 310, 0, 0, 219, 0, 0, 0,
|
|
237, 0, 236, 336, 0, 0, 0, 105, 0, 616,
|
|
631, 620, 0, 0, 632, 0, 628, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 300, 301, 307, 309, 0,
|
|
0, 241, 240, 239, 0, 329, 0, 627, 0, 634,
|
|
285, 0, 0, 278, 296, 295, 297, 294, 0, 0,
|
|
0, 302, 244, 242, 243, 0, 737, 0, 0, 0,
|
|
303, 279, 0, 0, 0, 633, 288, 280, 636,
|
|
};
|
|
static short yydgoto[] = { 17,
|
|
18, 19, 20, 21, 22, 23, 1303, 25, 26, 1304,
|
|
28, 29, 30, 1305, 32, 1306, 567, 95, 377, 818,
|
|
1020, 96, 594, 819, 97, 382, 599, 119, 98, 99,
|
|
216, 646, 109, 820, 821, 157, 187, 822, 100, 101,
|
|
384, 72, 198, 359, 265, 562, 960, 266, 779, 535,
|
|
447, 758, 563, 564, 565, 962, 199, 1174, 64, 147,
|
|
65, 193, 1538, 1123, 178, 183, 185, 188, 175, 164,
|
|
167, 180, 190, 374, 217, 706, 471, 574, 903, 352,
|
|
554, 948, 1115, 503, 659, 925, 456, 457, 486, 346,
|
|
536, 936, 1227, 677, 899, 1228, 1229, 1230, 1231, 1232,
|
|
575, 176, 165, 342, 510, 343, 344, 511, 512, 513,
|
|
514, 1093, 894, 459, 460, 884, 882, 461, 888, 883,
|
|
1069, 1201, 889, 890, 1074, 354, 767, 768, 769, 770,
|
|
708, 694, 1213, 537, 710, 169, 475, 638, 268, 480,
|
|
1039, 368, 269, 270, 1214, 1215, 489, 1325, 1443, 716,
|
|
717, 704, 718, 719, 720, 1444, 1445, 1513, 324, 484,
|
|
1078, 1307, 153, 481, 482, 1079, 1080, 1308, 1309, 1310,
|
|
1397, 1311, 1312, 1313, 1314, 1315, 1316, 1463, 1500, 1431,
|
|
1503, 271, 414, 1465, 967, 1398, 1437, 1438, 1473, 370,
|
|
371, 272, 953, 1121, 1242, 954, 955, 113, 273, 1339,
|
|
363, 865, 1065, 1288, 1409, 1410, 1411, 1412, 863, 333,
|
|
500, 736, 1090, 181, 50, 328, 158, 126, 311, 144,
|
|
318, 150, 319, 329, 724, 330, 497, 920, 145, 312,
|
|
468, 501, 1091, 85, 155, 202, 538, 539, 696, 937,
|
|
697, 938, 939, 542, 543, 544, 545, 930, 783, 546,
|
|
547, 548, 751, 549, 449, 748, 34, 35, 36, 52,
|
|
160, 335, 291, 292, 293, 294, 295, 296, 297, 298,
|
|
299, 665, 439, 872, 1068, 440, 441, 670, 37, 125,
|
|
307, 38, 450, 451, 681, 424, 1199, 114, 274, 275,
|
|
276, 428, 647, 648, 649, 650, 857, 277, 1055, 1056,
|
|
1194, 1195, 278, 1286, 1455, 1379, 1456, 1457, 1458, 1497,
|
|
1539, 1030, 39, 40, 364, 41, 42, 446, 827, 1028,
|
|
1176, 1180, 172, 576, 577, 578, 579, 580, 581, 582,
|
|
583, 584, 585, 586, 1142, 977, 979, 1143, 412, 279,
|
|
280, 281, 636, 282, 1144, 195, 630,
|
|
};
|
|
static short yysindex[] = { 5716,
|
|
1361, -212, 2352, 28, 918, -91, 3437, 15, 554, 449,
|
|
157, 2081, -212, 524, -97, -19, 0, 403, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, -153, 0, 0, 0,
|
|
0, 0, 0, 4173, 197, 227, 258, -19, 341, 0,
|
|
0, 409, 1050, 510, 197, 529, 258, 547, -19, 341,
|
|
0, 580, 596, 0, -39, 0, 634, 0, 0, 801,
|
|
668, 0, -19, 739, 197, 884, 668, 227, 258, 547,
|
|
-19, 341, 580, 596, 0, 258, 812, 0, 0, 0,
|
|
1215, 0, 1215, 0, 858, 924, 42, 1258, 0, 0,
|
|
0, 860, -19, 860, 951, 962, 966, 52, 774, 0,
|
|
0, 0, 5299, 0, 529, 1041, 905, 0, 0, 968,
|
|
930, 0, 1123, -104, 1098, -66, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 508, 0, 0, 1050, 0, -38, 0,
|
|
0, 1386, 0, 1108, 0, 0, 453, 0, 1011, 0,
|
|
0, 980, 0, 0, 436, 0, 0, 1184, 0, 0,
|
|
1409, 0, 1050, 0, 0, 0, 1386, 0, -74, 0,
|
|
0, 1171, 0, 1154, 0, 0, 1215, 0, 0, 0,
|
|
0, 0, 1158, 0, 0, 1044, 0, 0, 1191, 1080,
|
|
0, 0, 0, 1044, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 1797, 0, 510, 0, 0, 0, 266, 1135,
|
|
-210, 596, 1049, 0, 1198, 1215, 1223, 1226, 266, 1139,
|
|
-210, 1162, 1163, 1512, 1513, 1516, 1105, 0, 1528, 0,
|
|
1532, 0, 1542, 1543, 1546, 0, 0, 0, 0, 0,
|
|
1547, 1112, 1133, 0, 0, 0, 0, 0, 5866, 5866,
|
|
0, 5396, 1146, 0, 1560, 0, 1725, 1520, 0, 0,
|
|
0, 0, 1291, 1571, 0, -129, 1575, 0, 0, 0,
|
|
0, 0, 1185, 227, 1262, 1174, 492, -19, 1194, 0,
|
|
0, 905, 0, 0, 0, 0, 0, 0, 0, 510,
|
|
0, 0, 699, 1213, 0, 1189, 0, 776, 1275, 701,
|
|
-66, 0, 1346, 394, 0, 860, 0, 508, 0, 0,
|
|
0, 0, 860, 1230, -106, 1179, -46, 1600, 0, 4543,
|
|
0, 0, 407, 0, 0, 0, 1590, 1590, 1050, 1280,
|
|
1050, 1692, 436, 0, 0, 4883, 56, 0, 1230, 0,
|
|
0, 1368, 455, 1621, -19, 1398, 227, 0, 0, 1623,
|
|
159, 4248, 0, 0, 0, 1160, 2500, 0, 0, 0,
|
|
1622, 0, 0, 845, 0, -19, 1231, 0, 258, 1208,
|
|
0, 58, 0, 0, 0, 0, -19, -195, -19, 0,
|
|
1350, 258, 1628, 266, 1270, 948, 5478, 601, 0, 529,
|
|
5866, 1036, 1064, 1104, 3046, 0, 0, 628, 628, 524,
|
|
960, 1639, 0, 0, 5576, 1227, 5866, 5866, 5866, 5866,
|
|
5866, 5866, 25, 1241, 5478, 1237, 0, 0, 43, 14,
|
|
0, -173, 0, -131, 0, -131, 0, 0, 1657, 0,
|
|
80, 1276, 0, 1650, 0, 116, 0, 1434, 1434, 1674,
|
|
0, 0, 1337, 0, 60, 1372, 0, 0, 0, 0,
|
|
1050, 0, 1590, 1590, 1590, 1590, 0, 1678, 0, 0,
|
|
1450, 0, 0, 0, 1428, 0, 4883, 0, 0, 4883,
|
|
855, 0, 1386, 1467, 1272, 5118, 0, 0, 393, 0,
|
|
1272, 816, 1108, 0, 1345, 1298, 1273, 405, 426, 0,
|
|
1347, 0, 1290, 547, 0, 1050, 0, 1474, 0, 0,
|
|
1692, 0, 0, 0, 0, 156, 1305, 0, 0, 0,
|
|
1307, 0, 1352, 1716, 0, 1412, 1719, -61, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1670,
|
|
35, 0, 0, 0, 0, 21, 1723, 1733, 1719, 0,
|
|
0, 1501, 0, 1050, 1050, 0, -106, 453, 0, 1391,
|
|
0, 1362, 1732, 0, 6082, 99, 0, 1388, 1397, 1741,
|
|
4399, 1745, 4345, 6235, 400, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 1082, 2500, 510,
|
|
0, 0, 611, 1349, 0, 0, 1329, -210, 0, 1480,
|
|
1759, 0, 1480, 611, 1485, 1492, 258, 5866, 5866, 1537,
|
|
5866, 1761, 5866, 1771, 1534, 5866, 5866, 5866, 5866, 5866,
|
|
5866, 0, 0, 0, 0, 0, 0, 0, 0, 1495,
|
|
5866, 0, 0, 0, 1725, 1203, 0, 0, 1541, 628,
|
|
628, 578, 578, 704, 25, 1783, 1780, 853, 0, 0,
|
|
4399, 1496, 0, 0, 0, 0, 0, -221, 0, 0,
|
|
-110, 0, 1379, 0, 0, 0, -19, 656, -19, 0,
|
|
0, 5478, 510, 0, 0, 1227, -39, -39, 699, 510,
|
|
0, 1050, 1050, 0, 307, 1290, 1290, 1374, 547, 701,
|
|
0, 1789, 2023, 0, 0, 0, 1554, 0, 860, 0,
|
|
0, 0, 0, 0, 1558, 1796, 0, 1428, 1555, 0,
|
|
0, 1498, 1503, 1215, 1568, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 547, 860, 6243, 0, 0,
|
|
0, 0, 0, 0, 547, 0, 1020, 0, 0, 1430,
|
|
0, 72, 1435, 0, 0, 0, 547, 0, 1716, 48,
|
|
0, 0, 0, 1552, 48, 1436, 48, 0, 1818, 547,
|
|
547, 547, 0, 0, 1502, 0, 1304, 0, 0, 0,
|
|
407, 1446, -19, 1354, 41, 0, 0, 1825, 0, 0,
|
|
0, 0, 0, 159, 1407, 1213, 0, 1213, 6123, 354,
|
|
5866, 5866, 4485, 1827, 647, 4628, 5866, 4713, 944, 4865,
|
|
4948, 5631, 5016, 5100, 5253, 4399, 4399, 0, 0, 0,
|
|
0, 0, 1208, 258, 341, 1208, 580, 93, 1826, 0,
|
|
0, 0, 611, 1486, 0, -134, 1505, 5478, 1505, 1837,
|
|
1826, 611, -151, 1550, 1644, 2141, 0, 2186, 0, 2322,
|
|
5866, 0, 2330, 2413, 2577, 2597, 2898, 3343, 5866, 829,
|
|
5866, 0, 0, 853, 1842, 5478, 930, 25, 1497, 0,
|
|
1499, 1500, 1548, 1624, 1567, 0, 0, 0, 0, 0,
|
|
0, 440, 0, 0, 0, 0, 0, 0, 0, 1857,
|
|
0, 0, 0, 1399, 0, 1590, 1636, 0, 307, 0,
|
|
0, 0, 0, 0, 0, 0, 4399, 0, 0, 0,
|
|
0, 0, 0, 0, 1603, 0, 0, 0, 0, 0,
|
|
0, 1215, 1215, 0, 1865, 0, 0, 0, 0, 0,
|
|
0, 1642, 0, 0, 0, 1449, 28, 1420, 1493, 1554,
|
|
1874, 0, 1290, 1422, 0, 0, 767, 0, 1859, 1449,
|
|
798, 547, 1877, 1878, 1879, 1603, 1590, 1372, -106, 0,
|
|
1347, 524, 1466, 1482, 0, 17, 0, 547, 1531, 1625,
|
|
6082, 0, 0, 547, 1626, 0, 0, 1891, 1893, 0,
|
|
1461, 1725, 1898, 0, 0, 1725, 1900, 1862, 0, 0,
|
|
1588, 1902, 1725, 1904, 899, 1906, 1725, 1907, 5866, 5866,
|
|
1827, 5866, 5831, 1908, 1725, 1910, 1916, 1725, 1917, 5866,
|
|
1725, 1918, 1725, 1919, 1921, 1725, 1922, 1924, 1725, 1925,
|
|
0, 1705, 0, 0, 0, 0, 0, 1640, 611, 0,
|
|
611, 93, 1826, 0, 161, 161, 112, 0, 0, 1431,
|
|
0, 1837, 1826, 1926, -151, 0, 0, 4883, 1928, 0,
|
|
0, 3462, 0, 0, 0, 0, 0, 0, 3492, 1241,
|
|
1725, 0, 1725, 0, 1438, 0, 0, 853, 0, 0,
|
|
0, 25, 1511, 4399, 1504, 0, 0, 0, 1551, 1050,
|
|
1592, 1290, 1587, 1290, 0, 362, 1544, 1717, 1603, 0,
|
|
5866, 1701, 1594, 0, 4399, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 1954, 28, 0, 1374, 0, 0, 48,
|
|
0, 2023, 1617, 48, 0, 48, 0, 1554, 1959, 0,
|
|
0, 0, 1717, 1290, 0, 1372, 0, 0, 5299, 1726,
|
|
0, -57, 0, 1857, 0, 1963, 0, 1967, 1050, -119,
|
|
1974, 1050, 0, 0, 5866, 1601, 1601, 524, 0, 0,
|
|
0, 1980, 1470, 0, 0, 1601, 1601, 5866, 1601, 1601,
|
|
1517, 1725, 0, 1106, 5866, 1725, 1601, 1601, 1601, 1601,
|
|
1725, 1601, 1601, 1601, 1601, 1601, 1601, 1637, 0, 0,
|
|
0, 0, 0, 0, 0, 1593, 0, 0, 0, 0,
|
|
5478, 0, -151, 1926, 0, 0, 0, 0, 1496, 5478,
|
|
0, 1005, 1744, 1983, 0, 0, 400, 1989, 1634, 1590,
|
|
0, 0, 1050, 1020, 0, 0, 0, 510, 4062, 0,
|
|
0, 1725, 1434, 1701, 0, 954, -19, 551, 1603, 0,
|
|
0, 1995, 0, 1997, 0, 1686, 1434, 1617, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 1020, 1642, 1722,
|
|
1654, 0, 1446, 0, 0, 0, 1676, 1691, 0, 1554,
|
|
1679, 1725, 2014, 2017, 5866, 0, 2978, 0, 2018, 2020,
|
|
1725, 2022, 2024, 5866, 5866, 1725, 2030, 2031, 2034, 2037,
|
|
2040, 2044, 2045, 2047, 2050, 2061, 0, 161, 0, 1567,
|
|
0, 4399, 1227, 1511, 1290, 0, 452, 0, 1290, 0,
|
|
0, 0, 4883, 197, 1661, 2051, 1213, 2073, 1773, 5866,
|
|
2056, 2076, 2060, 2062, 1782, 2071, 0, 0, 0, 6359,
|
|
2072, 0, 0, 0, 0, 0, 0, 2092, 0, 0,
|
|
1781, 1792, -19, 0, 0, 0, 1215, 0, 1717, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 29, 1241, 0,
|
|
0, 5866, 1050, 0, 0, 1050, 0, 0, 829, 0,
|
|
0, 0, 0, 0, 0, 0, 1725, 1725, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1634,
|
|
400, 0, 0, 391, 0, 0, 1769, 0, 2099, 0,
|
|
2082, 2084, 258, 0, 1799, 4399, 1695, 0, 4399, 0,
|
|
0, 96, 0, 0, -111, 0, -32, 0, 0, 0,
|
|
0, 0, 1215, 1760, 0, 0, 0, 29, 2104, 853,
|
|
0, 0, 1496, 1725, 0, 0, 1241, 0, 0, 1290,
|
|
0, 506, 0, 0, 941, 96, 582, 0, 604, 0,
|
|
766, 0, 0, 197, 1688, 28, 75, 0, 0, 0,
|
|
1760, -117, 0, 1767, 1768, 853, 2114, 29, 1815, 1567,
|
|
2124, 1496, 2127, -19, 0, 2129, 2128, 790, 2168, 0,
|
|
0, 0, 1762, 0, 2130, 85, 1739, 1875, 0, 96,
|
|
0, 0, 0, 0, 4062, -111, 0, -183, -183, 1883,
|
|
0, 1747, 0, 0, 853, 29, 1634, 0, 1567, 0,
|
|
0, 0, 506, 2147, 0, 227, 0, 1478, 37, 2132,
|
|
2168, 1899, 1887, 4062, 4062, 0, 0, 0, 0, 1730,
|
|
731, 0, 0, 0, 1318, 0, 1634, 0, 227, 0,
|
|
0, 96, 2153, 0, 0, 0, 0, 0, 1407, 4062,
|
|
1892, 0, 0, 0, 0, 4399, 0, 2155, 2163, 1483,
|
|
0, 0, 4062, 400, 227, 0, 0, 0, 0,
|
|
};
|
|
static short yyrindex[] = { 0,
|
|
0, 109, 413, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 640, 5335, 0, 0, 0, 2206, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 367, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 831, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 1870, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1833, 0, 0, 0,
|
|
59, 0, 59, 0, 0, 0, 0, 1834, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 915, 0, 0, 0,
|
|
1102, 0, 0, 0, 82, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, -43, 0, 0, 0, 0, 320, 0, 936, 0,
|
|
0, 0, 0, 0, 985, 3723, 0, 6305, 0, 0,
|
|
0, 0, 0, 0, 0, 0, -43, 0, 460, 0,
|
|
0, 2170, 0, 0, 0, 0, 1947, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 937,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 939, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, -175, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1229,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 63, 1316, 0, 0,
|
|
0, 0, 0, 1903, 0, 62, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 208, 0,
|
|
0, 953, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1021, 0, 1943, 0, 0, 0, 0, 1042, 0, 0,
|
|
0, 0, 0, 1961, 16, 4789, 0, 1058, 0, 0,
|
|
0, 0, 180, 0, 0, 0, 1775, 1775, 0, 0,
|
|
0, 1103, 1526, 0, 0, 0, 0, 0, 1961, 0,
|
|
0, 1074, 0, 0, 0, 0, 0, 0, 0, 5827,
|
|
1840, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 1156, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 1172, 0, 0, 6009, 0, 6009, 0, 0,
|
|
0, 6009, 6009, 6009, 0, 0, 0, 1973, 2207, 6009,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 750, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 768, 0, 768, 0, 0, 287, 0,
|
|
639, 661, 0, 0, 0, 937, 0, 994, 994, 778,
|
|
0, 0, 309, 0, 3093, 163, 0, 0, 0, 0,
|
|
0, 0, 1775, 1775, 1775, 1775, 0, 295, 0, 0,
|
|
0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
|
0, 0, 1975, 0, 0, 0, 0, 0, 1943, 0,
|
|
0, 934, 0, 345, 1770, 0, 0, 0, 0, 0,
|
|
158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1173, 0, 0, 0, 0, 4085, 1675, 0, 0, 0,
|
|
3771, 0, 0, 3875, 0, 0, 3940, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1222,
|
|
2991, 0, 0, 0, 0, 4046, 3858, 0, 3940, 0,
|
|
0, 0, 0, 0, 0, 0, 16, 863, 0, 0,
|
|
0, 0, 1828, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 365, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 207,
|
|
0, 0, 207, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 996, 0, 0, 0, 1665, 2345,
|
|
2432, 1748, 1835, 0, 0, 865, 522, 215, 0, 0,
|
|
0, 186, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 571, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 646, 646, 0, 0,
|
|
0, 0, 0, 0, 4002, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 118, 0, 0, 0,
|
|
0, 0, 0, 0, 2198, 0, 0, 284, 2122, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1998, 0, 0, 0,
|
|
0, 0, 4152, 0, 0, 0, 0, 0, 3875, 0,
|
|
0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 6259, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 1932, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 1202, 1221, 0,
|
|
0, 0, 0, 0, 0, 0, 1228, 0, 1228, 1251,
|
|
1285, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 1909, 691, 0, 3506, 0, 1914, 0,
|
|
1920, 1927, 0, 0, 92, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 311,
|
|
0, 0, 0, 0, 0, 1775, 1784, 0, 4092, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 1976, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 1293, 0, 0, 0, 0, 0, 0, 0, 2161,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 940, 0,
|
|
0, 0, 0, 0, 0, 1976, 1775, 1325, 16, 0,
|
|
1982, 5335, 1370, 83, 0, 0, 0, 0, 6259, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 53, 0, 0, 0, 632, 0, 0, 0, 0,
|
|
0, 0, 1525, 0, 2515, 0, 2592, 0, 0, 0,
|
|
0, 0, 0, 0, 2656, 0, 0, 2676, 0, 0,
|
|
2740, 0, 2763, 0, 0, 2827, 0, 0, 2850, 0,
|
|
0, 3472, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 1202, 1373, 0, 1807, 237, 0, 0, 0, 0,
|
|
0, 1382, 1385, 1390, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 275,
|
|
1066, 0, 1491, 0, 0, 0, 0, 730, 0, 0,
|
|
0, 0, 0, 0, 398, 0, 0, 0, 3759, 0,
|
|
0, 0, 1795, 0, 0, 0, 0, 0, 1990, 0,
|
|
0, 2905, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 130, 0, 0, 0, 0, 2381, 0, 0,
|
|
0, 0, 0, 0, 0, 1394, 0, 0, 0, 0,
|
|
0, 0, 0, 1406, 0, 0, 0, 0, 0, 97,
|
|
0, 0, 0, 0, 0, 0, 0, 6009, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 2913, 0, 2990, 0, 3074, 0, 0, 0, 0,
|
|
3158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 1410, 0, 0, 0, 0, 69, 0,
|
|
0, 1909, 711, 1295, 0, 0, 404, 857, 862, 1775,
|
|
0, 0, 0, 1481, 0, 0, 0, 0, 0, 0,
|
|
0, 2222, 1022, 3323, 0, 1943, 0, 0, 1976, 0,
|
|
0, 0, 0, 0, 0, 0, 1411, 134, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 272, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 47,
|
|
0, 3222, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
3298, 0, 0, 0, 0, 3321, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 237, 0, 49,
|
|
0, 0, 0, 0, 0, 0, 2230, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 337, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 132, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 3332, 3408, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 2231,
|
|
3548, 0, 0, 0, 0, 0, 2233, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 826, 1260, 0, 0, 0, 0, 214, 87,
|
|
0, 0, 68, 2222, 0, 0, 275, 0, 0, 0,
|
|
0, 2230, 0, 0, 189, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
2459, 0, 0, 3075, 3299, 1909, 756, 0, 0, 84,
|
|
0, 69, 0, 1142, 0, 0, 2234, 0, 0, 0,
|
|
0, 0, 2215, 0, 202, 1977, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 153, 0, 55, 0, 49, 0,
|
|
0, 0, 2230, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 1909, 0, 2231, 0, 0, 0,
|
|
0, 0, 2227, 0, 0, 0, 0, 0, 0, 0,
|
|
6400, 0, 0, 0, 0, 0, 0, 2240, 0, 0,
|
|
0, 0, 0, 1490, 0, 0, 0, 0, 0,
|
|
};
|
|
static short yygindex[] = { 0,
|
|
0, 0, 0, 0, 0, 0, 2287, 0, 0, 2289,
|
|
0, 0, 0, 8, 0, 2291, 1, 167, -93, -533,
|
|
1271, 257, -284, 6, 2285, 2070, 0, -31, 0, 2080,
|
|
-86, -41, 0, 476, -850, -35, -50, -169, 2086, 984,
|
|
1706, 0, 0, 0, 1016, 0, 0, -34, 1351, -485,
|
|
-29, -802, 1749, 1535, -276, 1357, 2236, -291, 0, -51,
|
|
0, 806, -44, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, -565, -25, 1371, -447, 339, -860, 0,
|
|
0, 0, 0, -316, -477, -976, 1378, -311, -40, 0,
|
|
-442, 0, 0, -428, 1216, 0, 1101, 0, 0, -108,
|
|
-553, -10, 0, 0, 0, 0, 1987, 0, 1820, 2027,
|
|
-235, 1392, -663, 0, 0, 0, -635, 0, 0, 0,
|
|
0, 0, 0, 1448, 0, 0, 0, 1389, 2015, 2021,
|
|
0, 1631, 0, -450, 1633, -48, 70, -630, -45, 0,
|
|
0, -576, -202, -526, 0, 1137, -906, 0, 917, 1143,
|
|
0, 1888, 0, 0, 0, 921, 938, 889, -78, 2025,
|
|
-826, -456, 0, 0, 1685, 0, 1299, -623, 0, 0,
|
|
0, -226, 0, 0, 0, 0, 0, 0, 0,-1236,
|
|
0, 392, 0, 926, 864, 999, 0, 922, 0, 0,
|
|
2032, -203, 0, 0, 0, 0, -904, -375, 1278, 0,
|
|
-409,-1078, -671, -670, 0, -608, 983, 950, -289, 1843,
|
|
1641, 1457, 1176, -1, 0, 0, 0, 0, 0, 2083,
|
|
0, 0, 2093, 1923, 0, 0, 0, 0, 0, 2107,
|
|
0, 0, 0, 0, -15, 0, 0, 0, -314, 1667,
|
|
-303, 1326, -391, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 1880, 0, 0, 1682, 0, 0, 0, 2420,
|
|
0, 0, 0, 0, 2143, 0, 0, 0, 0, 2004,
|
|
0, 2001, 0, 0, 0, 1776, 0, 0, 0, 0,
|
|
0, -84, 0, 1765, 0, -800, 0, 1195, 0, 2026,
|
|
-374, 2019, 0, -567, 1802, 0, 0, -54, 0, 1263,
|
|
0, 1164, -942, 0, 1165, 0, 957, 0, 1003, 0,
|
|
920, 0, 0, 0, 2028, 0, 0, 0, 1860, 1649,
|
|
-869, 0, -148, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 3433, 1300, 1479, 0, 0, 0,
|
|
0, -201, 2058, 2118, 1233, 0, 0,
|
|
};
|
|
#define YYTABLESIZE 6861
|
|
static short yytable[] = { 171,
|
|
121, 149, 69, 173, 68, 152, 218, 31, 170, 372,
|
|
369, 373, 809, 168, 652, 177, 154, 787, 163, 790,
|
|
678, 504, 610, 203, 184, 737, 695, 182, 179, 698,
|
|
509, 540, 211, 206, 631, 709, 674, 207, 660, 305,
|
|
477, 715, 541, 707, 213, 876, 210, 885, 1082, 1050,
|
|
208, 383, 725, 225, 619, 227, 215, 121, 658, 1088,
|
|
760, 383, 653, 208, 645, 209, 302, 603, 1408, 568,
|
|
830, 226, 67, 445, 467, 1103, 1522, 854, 928, 780,
|
|
959, 563, 325, 610, 550, 222, 331, 468, 754, 610,
|
|
468, 610, 933, 725, 263, 222, 725, 550, 349, 683,
|
|
356, 598, 668, 653, 283, 573, 653, 605, 506, 603,
|
|
1280, 725, 320, 619, 880, 927, 900, 468, 1476, 1113,
|
|
1196, 653, 208, 669, 112, 757, 603, 1098, 1470, 123,
|
|
331, 612, 610, 124, 426, 391, 1019, 84, 348, 388,
|
|
563, 325, 610, 67, 684, 331, 686, 687, 688, 689,
|
|
610, 1433, 332, 263, 1248, 304, 1177, 354, 468, 673,
|
|
171, 468, 413, 372, 369, 373, 902, 506, 1170, 375,
|
|
1172, 540, 122, 434, 264, 1216, 468, 813, 106, 421,
|
|
867, 485, 541, 112, 1478, 603, 1025, 378, 123, 1466,
|
|
612, 308, 124, 350, 1510, 742, 332, 378, 551, 509,
|
|
67, 1434, 1243, 67, 472, 67, 659, 529, 891, 892,
|
|
596, 332, 1435, 330, 577, 752, 354, 1244, 321, 452,
|
|
248, 413, 14, 264, 743, 191, 603, 1291, 115, 73,
|
|
1220, 122, 661, 380, 123, 1511, 466, 656, 421, 431,
|
|
309, 491, 668, 51, 603, 171, 663, 286, 171, 601,
|
|
381, 289, 1011, 1012, 444, 577, 438, 448, 577, 908,
|
|
284, 1336, 1523, 192, 866, 659, 529, 476, 107, 668,
|
|
171, 182, 330, 577, 479, 232, 1439, 918, 492, 170,
|
|
551, 495, 1512, 208, 753, 1540, 535, 124, 922, 1022,
|
|
1058, 351, 816, 225, 415, 466, 322, 874, 1032, 1034,
|
|
606, 705, 1026, 602, 505, 1235, 507, 1216, 565, 381,
|
|
564, 756, 560, 14, 725, 612, 1436, 664, 556, 346,
|
|
468, 208, 834, 558, 208, 1479, 653, 208, 682, 436,
|
|
182, 427, 1170, 116, 1450, 225, 668, 595, 1341, 655,
|
|
117, 1196, 208, 1076, 592, 535, 1292, 1249, 1502, 1317,
|
|
595, 1318, 310, 415, 166, 600, 468, 603, 934, 69,
|
|
952, 691, 378, 1178, 611, 233, 554, 565, 248, 564,
|
|
208, 725, 231, 1489, 725, 468, 1335, 668, 346, 1475,
|
|
668, 725, 573, 653, 725, 811, 810, 373, 725, 614,
|
|
1124, 468, 1329, 725, 970, 668, 725, 614, 668, 603,
|
|
603, 1140, 1207, 609, 701, 611, 84, 339, 1369, 123,
|
|
610, 339, 725, 124, 224, 331, 225, 86, 331, 1395,
|
|
413, 354, 563, 611, 468, 554, 685, 468, 383, 104,
|
|
601, 1419, 610, 1223, 1202, 958, 725, 711, 614, 725,
|
|
725, 118, 668, 421, 609, 610, 875, 1345, 1420, 725,
|
|
122, 267, 122, 1029, 896, 867, 614, 225, 468, 1081,
|
|
612, 122, 609, 612, 603, 603, 725, 1405, 759, 413,
|
|
1086, 739, 656, 112, 738, 780, 1407, 166, 221, 610,
|
|
610, 332, 208, 331, 332, 151, 66, 1102, 610, 118,
|
|
901, 373, 965, 725, 1192, 619, 601, 166, 961, 657,
|
|
208, 1184, 171, 224, 603, 725, 656, 725, 603, 619,
|
|
1197, 170, 597, 468, 69, 653, 224, 603, 506, 765,
|
|
766, 576, 603, 653, 610, 900, 603, 331, 612, 468,
|
|
893, 1218, 610, 577, 208, 171, 468, 325, 610, 331,
|
|
725, 331, 330, 577, 812, 330, 577, 1018, 1417, 332,
|
|
529, 122, 415, 1451, 468, 577, 166, 66, 601, 781,
|
|
1038, 208, 576, 208, 69, 595, 782, 1290, 362, 1072,
|
|
893, 208, 612, 603, 659, 902, 1119, 421, 346, 610,
|
|
576, 413, 603, 346, 468, 529, 612, 566, 468, 346,
|
|
566, 1328, 566, 332, 1204, 1185, 1206, 408, 409, 286,
|
|
411, 415, 577, 612, 466, 332, 612, 332, 1370, 831,
|
|
330, 577, 284, 529, 66, 806, 529, 66, 171, 66,
|
|
182, 1210, 1467, 806, 171, 171, 603, 444, 772, 535,
|
|
1114, 694, 529, 448, 375, 438, 1238, 873, 545, 506,
|
|
1189, 1219, 612, 1013, 1468, 561, 1016, 881, 881, 565,
|
|
479, 564, 1372, 1054, 330, 577, 1237, 146, 529, 895,
|
|
530, 806, 208, 886, 535, 498, 330, 577, 330, 420,
|
|
1239, 612, 694, 603, 421, 694, 499, 102, 917, 919,
|
|
1350, 473, 961, 611, 208, 554, 1396, 148, 914, 561,
|
|
694, 208, 535, 611, 474, 535, 611, 545, 506, 1418,
|
|
376, 968, 577, 969, 561, 611, 729, 554, 1224, 331,
|
|
606, 535, 712, 415, 1234, 102, 614, 346, 151, 530,
|
|
668, 102, 609, 540, 916, 208, 118, 732, 1371, 578,
|
|
943, 944, 945, 921, 541, 267, 887, 535, 614, 615,
|
|
807, 956, 830, 730, 609, 931, 109, 851, 807, 612,
|
|
102, 606, 611, 635, 606, 639, 640, 641, 642, 643,
|
|
635, 611, 1255, 267, 733, 313, 1017, 534, 715, 606,
|
|
578, 905, 1014, 578, 1141, 434, 373, 553, 1487, 1015,
|
|
911, 399, 69, 111, 1319, 614, 807, 332, 578, 103,
|
|
612, 609, 337, 713, 614, 1375, 853, 1342, 1333, 1446,
|
|
609, 156, 1057, 555, 684, 611, 1279, 1374, 612, 1470,
|
|
1104, 1380, 806, 87, 314, 830, 1516, 1517, 159, 611,
|
|
1376, 1175, 1175, 1179, 1469, 668, 534, 112, 1023, 338,
|
|
508, 339, 1427, 946, 714, 1429, 553, 1033, 614, 1485,
|
|
576, 1104, 1381, 806, 609, 1066, 1537, 731, 1461, 1375,
|
|
576, 1508, 611, 576, 340, 88, 617, 416, 609, 1105,
|
|
111, 619, 576, 417, 586, 806, 668, 89, 734, 668,
|
|
420, 418, 1406, 419, 1376, 421, 435, 1515, 1377, 341,
|
|
1531, 1532, 1461, 1289, 668, 591, 1083, 1084, 590, 508,
|
|
1108, 609, 90, 694, 171, 700, 1067, 617, 699, 901,
|
|
373, 171, 619, 170, 611, 586, 1542, 416, 586, 576,
|
|
375, 789, 1109, 417, 513, 617, 161, 162, 576, 1548,
|
|
619, 109, 109, 586, 1526, 69, 315, 1094, 1127, 1413,
|
|
1125, 436, 1377, 407, 1131, 510, 612, 807, 317, 813,
|
|
420, 418, 1453, 419, 316, 421, 835, 836, 437, 838,
|
|
694, 840, 512, 694, 843, 844, 845, 846, 847, 848,
|
|
694, 91, 576, 694, 561, 120, 118, 694, 807, 850,
|
|
166, 92, 694, 513, 576, 694, 538, 407, 317, 463,
|
|
1459, 545, 1544, 444, 138, 366, 561, 1054, 1087, 174,
|
|
807, 694, 407, 202, 510, 612, 93, 317, 263, 980,
|
|
632, 420, 418, 530, 419, 66, 421, 1452, 171, 576,
|
|
267, 512, 579, 814, 94, 694, 545, 1193, 694, 694,
|
|
361, 202, 200, 69, 69, 981, 579, 538, 694, 606,
|
|
464, 1534, 444, 87, 579, 881, 765, 202, 530, 765,
|
|
186, 362, 606, 138, 545, 694, 189, 545, 578, 815,
|
|
579, 606, 202, 1351, 816, 373, 94, 358, 578, 870,
|
|
817, 578, 202, 545, 465, 202, 530, 212, 612, 530,
|
|
578, 381, 694, 601, 1175, 88, 871, 333, 612, 361,
|
|
202, 612, 466, 1535, 694, 530, 694, 89, 765, 545,
|
|
612, 333, 194, 69, 1247, 1222, 553, 1251, 606, 333,
|
|
362, 593, 147, 668, 579, 668, 766, 606, 416, 766,
|
|
534, 530, 90, 668, 417, 333, 358, 578, 553, 694,
|
|
1449, 346, 808, 196, 454, 589, 578, 1494, 197, 971,
|
|
972, 976, 346, 455, 983, 985, 987, 612, 995, 998,
|
|
1001, 1003, 1006, 1009, 315, 593, 612, 420, 418, 423,
|
|
419, 606, 421, 171, 171, 40, 1449, 66, 766, 166,
|
|
593, 147, 170, 444, 1495, 606, 267, 1293, 881, 333,
|
|
578, 48, 148, 534, 859, 617, 534, 1496, 416, 1042,
|
|
619, 91, 578, 586, 417, 1327, 586, 1049, 860, 1051,
|
|
612, 92, 534, 586, 1053, 1449, 586, 617, 606, 201,
|
|
586, 38, 619, 315, 668, 586, 204, 111, 586, 668,
|
|
1148, 360, 861, 214, 40, 989, 93, 578, 534, 365,
|
|
21, 446, 1462, 373, 586, 1449, 668, 664, 830, 171,
|
|
48, 148, 990, 668, 70, 71, 237, 612, 1193, 416,
|
|
1404, 219, 1382, 852, 617, 417, 851, 285, 586, 619,
|
|
44, 608, 586, 617, 215, 171, 1462, 373, 202, 238,
|
|
38, 586, 446, 138, 444, 446, 862, 668, 826, 830,
|
|
830, 830, 830, 830, 842, 830, 69, 991, 586, 21,
|
|
446, 722, 286, 723, 46, 138, 664, 830, 830, 830,
|
|
830, 1403, 423, 240, 602, 111, 202, 617, 1527, 373,
|
|
238, 223, 619, 238, 1385, 586, 992, 220, 1415, 44,
|
|
287, 1416, 202, 288, 138, 739, 1441, 586, 238, 830,
|
|
224, 830, 121, 111, 114, 586, 859, 1151, 1152, 289,
|
|
1154, 1156, 1321, 138, 202, 602, 228, 171, 1161, 616,
|
|
860, 1425, 138, 46, 950, 229, 1430, 949, 138, 230,
|
|
88, 423, 586, 602, 1322, 290, 739, 739, 739, 739,
|
|
739, 1323, 739, 111, 861, 325, 138, 618, 326, 342,
|
|
171, 171, 22, 993, 739, 739, 739, 739, 284, 1460,
|
|
1430, 45, 1471, 114, 47, 416, 300, 90, 1282, 42,
|
|
301, 417, 121, 115, 957, 1324, 303, 776, 247, 248,
|
|
249, 166, 161, 162, 171, 103, 1454, 620, 739, 43,
|
|
202, 923, 924, 1460, 327, 171, 306, 1265, 862, 1212,
|
|
171, 252, 253, 593, 1506, 323, 257, 258, 342, 444,
|
|
593, 22, 121, 593, 69, 334, 1474, 593, 1454, 1071,
|
|
45, 336, 1070, 47, 171, 593, 171, 345, 42, 171,
|
|
171, 1520, 115, 1430, 347, 1525, 91, 267, 444, 444,
|
|
1096, 593, 1101, 1095, 103, 1100, 92, 171, 43, 202,
|
|
121, 1182, 355, 1252, 1181, 171, 1430, 1454, 1191, 630,
|
|
182, 1190, 877, 878, 444, 593, 1261, 353, 171, 335,
|
|
830, 93, 830, 1266, 1169, 357, 1171, 444, 593, 446,
|
|
830, 446, 420, 418, 358, 419, 446, 421, 830, 446,
|
|
1258, 161, 162, 1257, 830, 593, 630, 830, 1521, 267,
|
|
593, 1501, 446, 1547, 695, 139, 1470, 361, 1053, 630,
|
|
335, 590, 362, 335, 590, 110, 110, 379, 387, 182,
|
|
830, 392, 593, 389, 390, 394, 395, 830, 335, 830,
|
|
830, 396, 397, 830, 593, 398, 593, 830, 420, 418,
|
|
830, 419, 830, 421, 830, 695, 399, 400, 695, 830,
|
|
830, 401, 830, 406, 842, 420, 418, 739, 419, 739,
|
|
421, 402, 403, 695, 139, 404, 405, 739, 830, 830,
|
|
609, 830, 613, 1349, 407, 739, 617, 619, 621, 415,
|
|
446, 739, 1357, 1358, 739, 830, 413, 830, 830, 830,
|
|
422, 423, 830, 602, 425, 830, 830, 247, 248, 249,
|
|
429, 430, 446, 432, 433, 830, 602, 739, 442, 446,
|
|
14, 453, 462, 470, 739, 602, 739, 739, 1387, 859,
|
|
739, 483, 830, 493, 739, 257, 258, 739, 490, 739,
|
|
502, 739, 506, 860, 553, 43, 739, 739, 830, 739,
|
|
557, 559, 561, 446, 749, 589, 44, 593, 381, 830,
|
|
604, 598, 607, 45, 478, 739, 739, 861, 739, 633,
|
|
1414, 830, 602, 830, 1036, 420, 418, 637, 419, 830,
|
|
421, 602, 739, 651, 739, 739, 739, 427, 46, 739,
|
|
667, 1536, 739, 739, 671, 749, 749, 749, 749, 749,
|
|
672, 749, 739, 676, 478, 478, 830, 679, 478, 680,
|
|
454, 690, 1135, 749, 749, 749, 749, 692, 693, 739,
|
|
702, 862, 703, 478, 727, 602, 420, 418, 182, 419,
|
|
416, 421, 726, 728, 735, 739, 417, 752, 656, 602,
|
|
740, 746, 744, 1428, 745, 747, 739, 749, 750, 182,
|
|
755, 749, 761, 47, 764, 478, 420, 418, 739, 419,
|
|
739, 421, 762, 775, 773, 776, 739, 784, 1264, 785,
|
|
786, 182, 602, 1432, 788, 823, 695, 182, 752, 752,
|
|
752, 752, 752, 824, 752, 48, 416, 826, 828, 49,
|
|
837, 839, 417, 739, 139, 832, 752, 752, 752, 752,
|
|
182, 335, 833, 416, 841, 849, 1464, 1432, 335, 417,
|
|
416, 335, 856, 858, 864, 335, 139, 868, 897, 182,
|
|
756, 906, 893, 335, 753, 907, 367, 182, 182, 705,
|
|
752, 366, 912, 695, 182, 915, 695, 913, 926, 335,
|
|
1464, 929, 935, 695, 940, 139, 695, 942, 947, 264,
|
|
695, 1507, 182, 952, 964, 695, 978, 966, 695, 1021,
|
|
1035, 1024, 1027, 335, 139, 753, 753, 753, 753, 753,
|
|
1019, 753, 1052, 139, 695, 1059, 335, 1060, 1061, 139,
|
|
1432, 1062, 1528, 753, 753, 753, 753, 1063, 1064, 182,
|
|
590, 1073, 1077, 335, 1085, 1089, 366, 139, 695, 1092,
|
|
182, 695, 695, 1432, 1099, 1097, 1106, 1110, 1111, 1112,
|
|
1120, 695, 1122, 416, 264, 958, 749, 753, 749, 417,
|
|
335, 1133, 478, 1134, 1129, 1132, 749, 1136, 695, 1137,
|
|
1145, 1146, 335, 1147, 335, 1149, 1150, 1157, 478, 1158,
|
|
749, 478, 478, 749, 478, 1159, 1160, 1162, 1163, 478,
|
|
1164, 1165, 478, 1166, 1167, 695, 806, 1168, 1186, 1183,
|
|
463, 250, 747, 1200, 416, 478, 749, 695, 1205, 695,
|
|
417, 478, 1203, 749, 478, 749, 749, 1209, 485, 749,
|
|
1208, 1198, 508, 749, 1221, 1226, 749, 182, 749, 1236,
|
|
749, 1217, 1245, 1241, 416, 749, 749, 1246, 749, 752,
|
|
417, 752, 695, 747, 1250, 747, 747, 747, 1138, 752,
|
|
1256, 464, 1277, 1283, 749, 749, 1284, 749, 1285, 1278,
|
|
1287, 747, 747, 747, 747, 1330, 752, 1331, 1332, 1340,
|
|
454, 749, 1338, 749, 749, 749, 1344, 1343, 749, 455,
|
|
1346, 749, 749, 478, 1347, 465, 182, 1348, 1353, 752,
|
|
1354, 749, 1355, 1383, 1356, 747, 752, 366, 752, 752,
|
|
1359, 1360, 752, 466, 1361, 478, 752, 1362, 749, 752,
|
|
1363, 752, 478, 752, 1364, 1365, 478, 1366, 752, 752,
|
|
1367, 752, 237, 478, 749, 984, 753, 988, 753, 996,
|
|
999, 1368, 1004, 1007, 1010, 749, 753, 752, 752, 1384,
|
|
752, 478, 1386, 103, 1388, 1389, 478, 749, 1390, 749,
|
|
1391, 436, 1392, 753, 752, 749, 752, 752, 752, 1393,
|
|
1399, 752, 1400, 1401, 752, 752, 1402, 1421, 1422, 1426,
|
|
1423, 478, 1424, 1442, 752, 478, 753, 1448, 1472, 240,
|
|
1480, 1482, 749, 753, 1484, 753, 753, 237, 1486, 753,
|
|
468, 752, 436, 753, 1488, 436, 753, 1490, 753, 1492,
|
|
753, 1493, 1499, 1501, 1504, 753, 753, 752, 753, 1505,
|
|
436, 1037, 420, 418, 1478, 419, 1519, 421, 752, 1479,
|
|
1524, 1530, 1529, 1533, 753, 753, 1470, 753, 1545, 1543,
|
|
752, 468, 752, 1546, 468, 1, 746, 561, 752, 188,
|
|
668, 753, 366, 753, 753, 753, 26, 28, 753, 468,
|
|
339, 753, 753, 569, 250, 263, 1040, 420, 418, 466,
|
|
419, 753, 421, 135, 747, 752, 747, 198, 248, 77,
|
|
404, 466, 179, 466, 747, 354, 255, 746, 753, 746,
|
|
746, 746, 601, 180, 247, 248, 249, 599, 161, 162,
|
|
254, 747, 340, 595, 753, 746, 746, 746, 746, 625,
|
|
597, 619, 624, 289, 626, 753, 182, 252, 253, 1138,
|
|
635, 304, 257, 258, 747, 287, 24, 753, 27, 753,
|
|
33, 747, 1173, 747, 747, 753, 108, 747, 182, 746,
|
|
393, 747, 386, 825, 747, 1139, 747, 385, 747, 774,
|
|
963, 1130, 205, 747, 747, 1128, 747, 1225, 237, 247,
|
|
248, 249, 753, 161, 162, 1116, 1126, 182, 1334, 515,
|
|
741, 1107, 747, 747, 458, 747, 1075, 1117, 909, 487,
|
|
87, 910, 252, 253, 748, 488, 182, 257, 258, 747,
|
|
1320, 747, 747, 747, 182, 182, 747, 1477, 1326, 747,
|
|
747, 182, 1041, 420, 418, 1483, 419, 1514, 421, 747,
|
|
1043, 420, 418, 552, 419, 240, 421, 1211, 721, 182,
|
|
468, 1481, 88, 904, 1498, 748, 747, 748, 748, 748,
|
|
1447, 182, 1541, 182, 89, 1440, 1240, 1509, 588, 436,
|
|
771, 436, 747, 748, 748, 748, 748, 1118, 105, 436,
|
|
478, 951, 496, 747, 1337, 725, 182, 469, 468, 90,
|
|
416, 468, 436, 941, 468, 747, 417, 747, 763, 1233,
|
|
932, 751, 110, 747, 443, 662, 666, 748, 468, 468,
|
|
468, 182, 869, 879, 654, 468, 855, 1373, 468, 1518,
|
|
653, 1378, 1281, 1044, 420, 418, 1491, 419, 238, 421,
|
|
747, 468, 829, 237, 1549, 416, 898, 468, 746, 1153,
|
|
746, 417, 751, 675, 751, 751, 751, 1031, 746, 644,
|
|
247, 248, 249, 587, 161, 162, 0, 0, 91, 1352,
|
|
751, 751, 751, 751, 0, 746, 0, 0, 92, 238,
|
|
436, 0, 238, 252, 253, 254, 255, 256, 257, 258,
|
|
0, 0, 0, 0, 719, 0, 0, 238, 746, 0,
|
|
240, 0, 436, 93, 751, 746, 0, 746, 746, 436,
|
|
0, 746, 0, 0, 0, 746, 0, 0, 746, 468,
|
|
746, 94, 746, 0, 366, 0, 0, 746, 746, 0,
|
|
746, 0, 0, 0, 0, 719, 0, 0, 719, 0,
|
|
0, 468, 264, 436, 0, 0, 746, 746, 468, 746,
|
|
0, 0, 0, 719, 0, 0, 0, 0, 0, 468,
|
|
0, 0, 0, 746, 0, 746, 746, 746, 0, 0,
|
|
746, 698, 0, 746, 746, 0, 0, 468, 0, 0,
|
|
0, 416, 468, 746, 0, 0, 748, 417, 748, 416,
|
|
0, 0, 0, 0, 0, 417, 748, 1045, 420, 418,
|
|
746, 419, 0, 421, 0, 247, 248, 249, 166, 161,
|
|
162, 468, 698, 748, 0, 698, 746, 1046, 420, 418,
|
|
0, 419, 0, 421, 0, 0, 53, 746, 252, 253,
|
|
698, 0, 0, 257, 258, 696, 748, 54, 468, 746,
|
|
468, 746, 0, 748, 55, 748, 748, 746, 468, 748,
|
|
0, 0, 0, 748, 0, 697, 748, 56, 748, 0,
|
|
748, 468, 0, 0, 0, 748, 748, 0, 748, 0,
|
|
0, 0, 416, 751, 746, 751, 696, 0, 417, 696,
|
|
0, 0, 0, 751, 748, 748, 0, 748, 0, 0,
|
|
0, 0, 0, 0, 696, 0, 697, 0, 0, 697,
|
|
751, 748, 0, 748, 748, 748, 0, 0, 748, 0,
|
|
0, 748, 748, 0, 697, 0, 238, 0, 238, 727,
|
|
0, 748, 0, 751, 0, 0, 238, 0, 0, 0,
|
|
751, 0, 751, 751, 57, 0, 751, 0, 748, 468,
|
|
751, 0, 691, 751, 0, 751, 0, 751, 0, 0,
|
|
0, 58, 751, 751, 748, 751, 719, 0, 0, 0,
|
|
727, 468, 0, 727, 0, 748, 59, 0, 468, 0,
|
|
60, 751, 751, 61, 751, 237, 0, 748, 727, 748,
|
|
0, 62, 0, 691, 0, 748, 691, 0, 751, 0,
|
|
751, 751, 751, 0, 0, 751, 0, 0, 751, 751,
|
|
63, 691, 468, 0, 0, 0, 692, 0, 751, 0,
|
|
0, 0, 748, 719, 0, 0, 719, 238, 0, 0,
|
|
0, 0, 0, 719, 0, 751, 719, 0, 0, 693,
|
|
719, 0, 240, 698, 0, 719, 416, 0, 719, 238,
|
|
0, 751, 417, 0, 0, 0, 238, 692, 0, 0,
|
|
692, 0, 751, 0, 719, 0, 416, 0, 0, 0,
|
|
0, 0, 417, 0, 751, 692, 751, 0, 0, 0,
|
|
693, 0, 751, 693, 0, 0, 0, 0, 719, 0,
|
|
238, 719, 719, 0, 213, 0, 0, 0, 693, 0,
|
|
698, 719, 726, 698, 0, 0, 0, 696, 0, 751,
|
|
698, 0, 0, 698, 0, 0, 0, 698, 719, 0,
|
|
0, 0, 698, 0, 0, 698, 0, 697, 1047, 420,
|
|
418, 0, 419, 0, 421, 213, 0, 0, 213, 0,
|
|
0, 698, 0, 726, 0, 719, 726, 247, 248, 249,
|
|
0, 161, 162, 213, 0, 0, 0, 719, 0, 719,
|
|
0, 726, 0, 0, 696, 698, 0, 696, 698, 698,
|
|
252, 253, 0, 0, 696, 257, 258, 696, 698, 720,
|
|
468, 696, 0, 0, 697, 0, 696, 697, 0, 696,
|
|
0, 727, 719, 0, 697, 698, 0, 697, 0, 0,
|
|
0, 697, 0, 0, 0, 696, 697, 0, 0, 697,
|
|
0, 0, 366, 0, 691, 0, 0, 0, 0, 0,
|
|
720, 468, 698, 720, 468, 697, 0, 0, 0, 696,
|
|
264, 0, 696, 696, 698, 0, 698, 0, 720, 468,
|
|
0, 0, 696, 0, 0, 0, 0, 0, 727, 697,
|
|
0, 727, 697, 697, 0, 0, 0, 0, 727, 696,
|
|
0, 727, 697, 728, 234, 727, 0, 0, 0, 698,
|
|
727, 691, 0, 727, 691, 0, 0, 0, 692, 697,
|
|
0, 691, 163, 0, 691, 0, 696, 0, 691, 727,
|
|
0, 0, 0, 691, 0, 0, 691, 0, 696, 0,
|
|
696, 693, 0, 0, 728, 234, 697, 728, 234, 0,
|
|
0, 0, 691, 727, 0, 0, 727, 727, 697, 0,
|
|
697, 0, 728, 234, 0, 0, 727, 0, 0, 0,
|
|
0, 0, 0, 696, 0, 692, 691, 0, 692, 691,
|
|
691, 163, 0, 727, 0, 692, 0, 729, 692, 691,
|
|
0, 0, 692, 697, 0, 0, 0, 692, 693, 0,
|
|
692, 693, 0, 0, 726, 0, 691, 416, 693, 0,
|
|
727, 693, 225, 417, 213, 693, 692, 0, 0, 0,
|
|
693, 0, 727, 693, 727, 0, 0, 0, 729, 0,
|
|
0, 729, 0, 691, 0, 0, 0, 0, 0, 693,
|
|
692, 0, 0, 692, 692, 691, 729, 691, 0, 0,
|
|
0, 717, 0, 692, 0, 0, 0, 727, 0, 0,
|
|
0, 726, 0, 693, 726, 0, 693, 693, 0, 0,
|
|
692, 726, 0, 0, 726, 0, 693, 0, 726, 0,
|
|
691, 720, 0, 726, 0, 0, 726, 0, 0, 0,
|
|
0, 0, 717, 693, 0, 717, 0, 692, 468, 0,
|
|
468, 0, 726, 237, 0, 468, 0, 0, 468, 692,
|
|
717, 692, 0, 225, 0, 0, 0, 0, 0, 0,
|
|
693, 468, 0, 0, 0, 0, 726, 721, 235, 726,
|
|
726, 0, 693, 0, 693, 225, 0, 0, 720, 726,
|
|
0, 720, 225, 0, 692, 0, 0, 0, 720, 0,
|
|
730, 720, 214, 0, 0, 720, 726, 0, 0, 0,
|
|
720, 718, 0, 720, 0, 728, 0, 693, 721, 235,
|
|
0, 721, 235, 0, 0, 0, 225, 0, 0, 720,
|
|
163, 0, 234, 726, 234, 0, 721, 235, 0, 0,
|
|
0, 730, 234, 214, 730, 726, 214, 726, 0, 468,
|
|
0, 163, 718, 720, 0, 718, 720, 720, 0, 730,
|
|
0, 214, 0, 1048, 420, 418, 720, 419, 0, 421,
|
|
718, 468, 728, 163, 0, 728, 0, 0, 468, 163,
|
|
726, 0, 728, 720, 0, 728, 0, 722, 0, 728,
|
|
0, 0, 0, 0, 728, 0, 0, 728, 0, 729,
|
|
0, 1139, 163, 0, 0, 0, 0, 0, 0, 0,
|
|
720, 0, 468, 728, 0, 247, 248, 249, 0, 161,
|
|
162, 163, 720, 0, 720, 0, 0, 0, 722, 0,
|
|
163, 722, 0, 234, 0, 0, 163, 728, 252, 253,
|
|
728, 728, 0, 257, 258, 0, 722, 0, 0, 0,
|
|
728, 677, 0, 0, 163, 234, 729, 720, 0, 729,
|
|
0, 0, 234, 717, 0, 0, 729, 728, 0, 729,
|
|
0, 0, 0, 729, 0, 0, 0, 0, 729, 0,
|
|
0, 729, 1187, 420, 418, 584, 419, 0, 421, 0,
|
|
0, 163, 677, 0, 728, 677, 234, 729, 622, 623,
|
|
624, 625, 626, 627, 628, 629, 728, 0, 728, 0,
|
|
677, 0, 1188, 420, 418, 0, 419, 0, 421, 0,
|
|
717, 729, 0, 717, 729, 729, 584, 581, 0, 584,
|
|
717, 0, 0, 717, 729, 0, 0, 717, 0, 721,
|
|
0, 728, 717, 0, 584, 717, 0, 0, 0, 0,
|
|
0, 729, 0, 0, 0, 0, 235, 0, 235, 0,
|
|
0, 717, 730, 0, 0, 0, 235, 0, 581, 0,
|
|
0, 581, 0, 718, 0, 0, 0, 0, 729, 0,
|
|
225, 0, 214, 0, 0, 717, 581, 0, 717, 717,
|
|
729, 0, 729, 0, 0, 0, 721, 0, 717, 721,
|
|
0, 0, 416, 0, 0, 0, 721, 0, 417, 721,
|
|
0, 0, 0, 721, 0, 717, 0, 0, 721, 730,
|
|
0, 721, 730, 0, 0, 729, 0, 0, 0, 730,
|
|
718, 0, 730, 718, 0, 0, 730, 721, 0, 0,
|
|
718, 730, 717, 718, 730, 0, 0, 718, 0, 722,
|
|
0, 0, 718, 0, 717, 718, 717, 235, 0, 0,
|
|
730, 721, 0, 0, 721, 721, 0, 0, 0, 0,
|
|
0, 718, 0, 0, 721, 0, 0, 0, 0, 235,
|
|
0, 225, 0, 0, 730, 0, 235, 730, 730, 717,
|
|
0, 721, 0, 0, 0, 718, 0, 730, 718, 718,
|
|
0, 0, 830, 225, 0, 0, 722, 0, 718, 722,
|
|
225, 0, 0, 0, 730, 0, 722, 0, 721, 722,
|
|
235, 416, 74, 722, 0, 718, 0, 417, 722, 75,
|
|
721, 722, 721, 76, 77, 0, 0, 0, 167, 0,
|
|
0, 730, 0, 830, 225, 0, 830, 722, 842, 0,
|
|
479, 416, 718, 730, 78, 730, 0, 417, 0, 0,
|
|
0, 830, 0, 830, 718, 721, 718, 0, 0, 0,
|
|
677, 722, 0, 677, 722, 722, 0, 0, 0, 167,
|
|
677, 0, 167, 677, 722, 0, 0, 677, 730, 0,
|
|
479, 479, 677, 0, 479, 677, 0, 167, 0, 718,
|
|
0, 722, 0, 0, 584, 0, 0, 584, 0, 479,
|
|
0, 677, 0, 0, 584, 0, 0, 584, 0, 79,
|
|
0, 584, 0, 0, 0, 0, 584, 0, 722, 584,
|
|
0, 0, 0, 0, 0, 677, 80, 473, 677, 677,
|
|
722, 479, 722, 0, 0, 584, 581, 0, 677, 581,
|
|
0, 81, 0, 0, 496, 82, 581, 0, 0, 581,
|
|
0, 0, 0, 581, 0, 677, 83, 0, 581, 584,
|
|
0, 581, 0, 584, 0, 722, 0, 0, 473, 0,
|
|
0, 473, 584, 0, 0, 84, 0, 581, 0, 0,
|
|
0, 0, 677, 0, 0, 496, 473, 0, 496, 584,
|
|
0, 0, 0, 0, 677, 0, 677, 0, 0, 0,
|
|
0, 581, 0, 496, 0, 581, 0, 0, 0, 486,
|
|
0, 0, 0, 0, 581, 0, 584, 0, 473, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 584, 677,
|
|
0, 581, 0, 0, 0, 496, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
486, 0, 0, 486, 0, 0, 830, 830, 581, 0,
|
|
0, 0, 0, 584, 0, 830, 0, 0, 486, 830,
|
|
581, 173, 830, 0, 0, 0, 0, 830, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 167, 0, 830, 0,
|
|
0, 830, 0, 0, 0, 830, 0, 830, 479, 0,
|
|
486, 0, 0, 0, 0, 581, 0, 167, 0, 0,
|
|
0, 830, 0, 0, 479, 470, 0, 479, 479, 0,
|
|
479, 0, 0, 0, 0, 479, 0, 0, 479, 167,
|
|
173, 0, 830, 830, 0, 167, 0, 0, 830, 830,
|
|
830, 479, 830, 830, 830, 0, 830, 479, 0, 0,
|
|
479, 0, 0, 0, 466, 0, 470, 0, 167, 470,
|
|
0, 174, 0, 0, 0, 0, 830, 0, 830, 0,
|
|
0, 0, 0, 0, 470, 0, 0, 167, 0, 0,
|
|
0, 0, 0, 0, 0, 473, 167, 0, 0, 0,
|
|
0, 0, 167, 0, 0, 466, 0, 0, 466, 830,
|
|
0, 473, 496, 830, 473, 473, 470, 473, 0, 0,
|
|
167, 0, 473, 466, 0, 473, 830, 0, 496, 479,
|
|
174, 463, 496, 0, 496, 0, 0, 0, 473, 496,
|
|
0, 0, 496, 0, 473, 0, 0, 473, 830, 0,
|
|
0, 479, 0, 0, 0, 496, 0, 167, 479, 0,
|
|
0, 496, 479, 830, 496, 0, 0, 0, 0, 479,
|
|
0, 0, 463, 0, 0, 463, 0, 486, 0, 0,
|
|
0, 0, 0, 830, 830, 0, 0, 479, 0, 0,
|
|
463, 0, 479, 486, 0, 0, 0, 486, 0, 486,
|
|
0, 0, 0, 0, 486, 0, 0, 486, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 473, 479, 0, 0,
|
|
486, 479, 0, 0, 0, 0, 486, 0, 0, 486,
|
|
0, 0, 0, 496, 0, 0, 0, 0, 473, 173,
|
|
0, 0, 0, 0, 0, 473, 0, 0, 0, 473,
|
|
0, 0, 0, 0, 0, 496, 473, 0, 0, 0,
|
|
173, 0, 496, 0, 0, 0, 496, 573, 0, 0,
|
|
259, 0, 260, 496, 473, 0, 0, 0, 0, 473,
|
|
0, 0, 173, 470, 0, 263, 0, 0, 173, 0,
|
|
264, 496, 0, 0, 0, 0, 496, 0, 486, 470,
|
|
0, 0, 0, 470, 473, 470, 0, 0, 473, 0,
|
|
470, 173, 1209, 470, 0, 0, 0, 0, 0, 0,
|
|
486, 496, 466, 0, 0, 496, 470, 486, 0, 174,
|
|
173, 486, 470, 0, 0, 470, 0, 0, 486, 173,
|
|
0, 466, 466, 6, 466, 173, 0, 0, 0, 466,
|
|
174, 0, 466, 0, 1294, 1295, 486, 1296, 0, 0,
|
|
1297, 486, 0, 173, 573, 466, 0, 259, 0, 260,
|
|
0, 466, 174, 0, 1298, 0, 0, 0, 174, 0,
|
|
1299, 0, 263, 0, 0, 0, 486, 264, 0, 463,
|
|
486, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
173, 174, 0, 0, 470, 0, 0, 0, 463, 463,
|
|
0, 463, 0, 0, 0, 0, 463, 0, 573, 463,
|
|
174, 259, 0, 260, 0, 0, 470, 0, 0, 174,
|
|
0, 0, 463, 470, 0, 174, 263, 470, 463, 0,
|
|
1300, 264, 0, 466, 470, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 174, 0, 0, 0, 0, 0, 14,
|
|
0, 0, 470, 0, 0, 466, 0, 470, 0, 0,
|
|
0, 0, 466, 0, 1301, 0, 0, 0, 0, 0,
|
|
0, 466, 0, 466, 16, 0, 0, 0, 0, 0,
|
|
174, 0, 470, 0, 234, 1302, 470, 0, 0, 0,
|
|
0, 466, 166, 235, 262, 0, 466, 259, 0, 260,
|
|
463, 0, 0, 0, 0, 0, 0, 236, 0, 0,
|
|
569, 0, 263, 237, 238, 0, 0, 264, 0, 0,
|
|
0, 0, 463, 0, 0, 466, 0, 0, 0, 463,
|
|
0, 0, 570, 0, 0, 0, 0, 0, 1253, 1254,
|
|
463, 0, 0, 0, 239, 0, 0, 0, 1259, 1260,
|
|
0, 1262, 1263, 0, 0, 0, 0, 0, 463, 1267,
|
|
1268, 1269, 1270, 463, 1271, 1272, 1273, 1274, 1275, 1276,
|
|
0, 0, 241, 242, 0, 0, 0, 0, 0, 0,
|
|
0, 234, 0, 0, 243, 0, 0, 0, 244, 0,
|
|
235, 0, 463, 0, 0, 0, 571, 0, 0, 0,
|
|
0, 0, 0, 127, 236, 0, 0, 0, 0, 0,
|
|
237, 238, 128, 129, 130, 131, 132, 133, 134, 135,
|
|
136, 137, 138, 139, 140, 141, 142, 143, 0, 570,
|
|
0, 0, 0, 0, 0, 234, 0, 262, 0, 572,
|
|
259, 239, 260, 0, 235, 0, 0, 0, 0, 0,
|
|
0, 245, 0, 0, 0, 263, 0, 0, 236, 0,
|
|
264, 246, 0, 0, 237, 238, 0, 0, 0, 241,
|
|
242, 0, 0, 0, 0, 247, 248, 249, 250, 161,
|
|
162, 243, 0, 570, 0, 244, 0, 0, 0, 251,
|
|
0, 0, 0, 571, 0, 239, 0, 0, 252, 253,
|
|
254, 255, 256, 257, 258, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 973, 0, 0, 974, 0, 0,
|
|
0, 234, 262, 241, 242, 259, 0, 260, 0, 0,
|
|
235, 0, 410, 0, 0, 243, 572, 0, 0, 244,
|
|
263, 0, 0, 0, 236, 264, 0, 571, 245, 0,
|
|
237, 238, 0, 0, 0, 0, 0, 0, 246, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 247, 248, 249, 250, 161, 162, 0, 0,
|
|
0, 239, 0, 0, 0, 0, 251, 0, 0, 0,
|
|
572, 0, 0, 0, 0, 252, 253, 254, 255, 256,
|
|
257, 258, 245, 0, 0, 0, 0, 0, 0, 241,
|
|
242, 0, 246, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 243, 0, 0, 0, 244, 247, 248, 249, 250,
|
|
161, 162, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
251, 0, 0, 0, 0, 0, 0, 0, 0, 252,
|
|
253, 254, 255, 256, 257, 258, 0, 982, 0, 0,
|
|
974, 0, 0, 0, 234, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 235, 262, 0, 0, 259, 0, 260,
|
|
975, 0, 0, 0, 0, 0, 0, 236, 245, 0,
|
|
0, 0, 263, 237, 238, 0, 0, 264, 246, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 247, 248, 249, 250, 161, 162, 0, 0,
|
|
0, 0, 0, 0, 239, 0, 251, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 252, 253, 254, 255, 256,
|
|
257, 258, 986, 0, 0, 974, 0, 0, 0, 234,
|
|
0, 0, 241, 242, 0, 0, 0, 262, 235, 0,
|
|
259, 0, 260, 0, 243, 0, 0, 0, 244, 0,
|
|
0, 0, 236, 494, 0, 263, 0, 0, 237, 238,
|
|
264, 0, 128, 129, 130, 131, 132, 133, 134, 135,
|
|
136, 137, 138, 139, 140, 141, 142, 143, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 239,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 975, 0, 262, 0, 0, 259, 0,
|
|
260, 245, 0, 0, 0, 0, 0, 241, 242, 0,
|
|
0, 246, 0, 263, 0, 0, 0, 0, 264, 243,
|
|
0, 0, 0, 244, 0, 247, 248, 249, 250, 161,
|
|
162, 0, 0, 0, 0, 0, 0, 0, 0, 251,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 252, 253,
|
|
254, 255, 256, 257, 258, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 994, 0, 0, 974, 0, 0,
|
|
0, 234, 0, 0, 0, 0, 0, 0, 975, 262,
|
|
235, 0, 259, 0, 260, 0, 245, 0, 0, 0,
|
|
0, 0, 0, 0, 236, 516, 246, 263, 0, 517,
|
|
237, 238, 264, 0, 0, 0, 0, 0, 0, 0,
|
|
247, 248, 249, 250, 161, 162, 0, 0, 518, 0,
|
|
0, 519, 0, 0, 251, 0, 0, 0, 0, 0,
|
|
0, 239, 0, 252, 253, 254, 255, 256, 257, 258,
|
|
0, 0, 0, 0, 0, 0, 0, 997, 0, 0,
|
|
974, 0, 0, 0, 234, 0, 0, 0, 0, 241,
|
|
242, 0, 520, 235, 0, 0, 0, 0, 521, 522,
|
|
523, 243, 524, 525, 526, 244, 527, 236, 0, 0,
|
|
0, 0, 0, 237, 238, 0, 0, 0, 0, 400,
|
|
0, 0, 0, 0, 0, 0, 528, 0, 529, 400,
|
|
400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
|
|
400, 400, 400, 400, 239, 1002, 0, 0, 974, 0,
|
|
0, 0, 234, 0, 0, 0, 0, 0, 0, 530,
|
|
975, 235, 262, 0, 0, 259, 0, 260, 245, 0,
|
|
0, 0, 241, 242, 0, 236, 531, 0, 246, 0,
|
|
263, 237, 238, 0, 243, 264, 0, 0, 244, 0,
|
|
0, 0, 247, 248, 249, 250, 161, 162, 532, 0,
|
|
0, 0, 0, 0, 0, 0, 251, 0, 262, 0,
|
|
261, 259, 239, 260, 0, 252, 253, 254, 255, 256,
|
|
257, 258, 0, 0, 0, 0, 263, 0, 0, 1005,
|
|
0, 264, 974, 533, 534, 0, 234, 0, 0, 0,
|
|
241, 242, 0, 975, 824, 235, 824, 824, 0, 824,
|
|
0, 245, 243, 0, 0, 0, 244, 0, 0, 236,
|
|
516, 246, 824, 0, 517, 237, 238, 824, 0, 0,
|
|
0, 0, 705, 0, 0, 247, 248, 249, 250, 161,
|
|
162, 0, 0, 518, 0, 0, 519, 0, 0, 251,
|
|
0, 0, 0, 0, 0, 0, 239, 0, 252, 253,
|
|
254, 255, 256, 257, 258, 262, 0, 0, 259, 0,
|
|
260, 975, 0, 0, 0, 0, 0, 0, 0, 245,
|
|
0, 0, 0, 263, 241, 242, 0, 520, 264, 246,
|
|
0, 0, 0, 521, 522, 523, 243, 524, 525, 526,
|
|
244, 527, 0, 247, 248, 249, 250, 161, 162, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 251, 0, 0,
|
|
0, 528, 0, 529, 0, 0, 252, 253, 254, 255,
|
|
256, 257, 258, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 1008, 0, 0, 974, 0, 262, 0, 234,
|
|
259, 0, 260, 0, 530, 975, 0, 0, 235, 0,
|
|
0, 0, 0, 245, 0, 263, 0, 0, 0, 0,
|
|
264, 531, 236, 246, 0, 0, 0, 0, 237, 238,
|
|
0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
|
|
250, 161, 162, 532, 0, 234, 0, 0, 0, 0,
|
|
0, 251, 0, 0, 235, 0, 0, 0, 224, 239,
|
|
252, 253, 254, 255, 256, 257, 258, 0, 236, 0,
|
|
0, 0, 0, 0, 237, 238, 0, 0, 533, 534,
|
|
0, 824, 0, 0, 0, 0, 0, 241, 242, 0,
|
|
824, 0, 0, 0, 0, 262, 634, 0, 259, 243,
|
|
260, 0, 0, 244, 824, 239, 0, 0, 0, 0,
|
|
824, 824, 0, 263, 0, 0, 0, 0, 264, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 240, 0, 241, 242, 0, 0, 0, 0, 0,
|
|
0, 824, 234, 0, 0, 243, 0, 0, 0, 244,
|
|
262, 235, 0, 259, 0, 260, 0, 0, 975, 0,
|
|
0, 0, 0, 0, 0, 236, 245, 824, 263, 824,
|
|
824, 237, 238, 264, 0, 0, 246, 0, 0, 0,
|
|
0, 824, 0, 0, 0, 824, 0, 0, 0, 0,
|
|
247, 248, 249, 250, 161, 162, 0, 0, 0, 0,
|
|
0, 0, 239, 0, 251, 0, 0, 0, 0, 0,
|
|
0, 0, 245, 252, 253, 254, 255, 256, 257, 258,
|
|
0, 0, 246, 0, 234, 0, 0, 0, 0, 0,
|
|
241, 242, 0, 235, 0, 0, 247, 248, 249, 250,
|
|
161, 162, 243, 0, 0, 0, 244, 236, 824, 0,
|
|
251, 0, 0, 237, 238, 0, 0, 0, 824, 252,
|
|
253, 254, 255, 256, 257, 258, 0, 0, 0, 0,
|
|
0, 0, 824, 824, 824, 824, 824, 824, 0, 0,
|
|
0, 0, 0, 0, 239, 0, 824, 0, 0, 0,
|
|
0, 0, 0, 410, 0, 824, 824, 824, 824, 824,
|
|
824, 824, 0, 0, 0, 0, 0, 0, 0, 245,
|
|
240, 0, 241, 242, 0, 0, 0, 0, 0, 246,
|
|
0, 0, 234, 0, 243, 0, 0, 0, 244, 0,
|
|
0, 235, 0, 247, 248, 249, 250, 161, 162, 0,
|
|
0, 0, 0, 0, 0, 236, 0, 251, 0, 0,
|
|
262, 237, 238, 259, 0, 260, 252, 253, 254, 255,
|
|
256, 257, 258, 0, 0, 0, 0, 0, 263, 0,
|
|
0, 0, 0, 264, 0, 0, 0, 234, 0, 0,
|
|
0, 0, 239, 0, 0, 262, 235, 0, 259, 0,
|
|
260, 245, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
236, 246, 0, 263, 0, 0, 237, 238, 264, 0,
|
|
241, 242, 0, 0, 0, 247, 248, 249, 250, 161,
|
|
162, 0, 243, 0, 0, 0, 244, 0, 0, 251,
|
|
0, 0, 0, 0, 0, 0, 0, 239, 252, 253,
|
|
254, 255, 256, 257, 258, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 241, 242, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 243, 2, 0,
|
|
0, 244, 0, 0, 0, 0, 3, 0, 0, 245,
|
|
0, 0, 0, 4, 0, 5, 0, 6, 0, 246,
|
|
0, 0, 7, 0, 0, 0, 0, 0, 0, 8,
|
|
0, 0, 0, 247, 248, 249, 250, 161, 162, 0,
|
|
0, 0, 0, 9, 0, 0, 0, 251, 824, 0,
|
|
0, 824, 0, 824, 10, 0, 252, 253, 254, 255,
|
|
256, 257, 258, 0, 245, 0, 824, 0, 0, 0,
|
|
0, 824, 0, 0, 246, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 1000, 0, 0, 247, 248,
|
|
249, 250, 161, 162, 0, 0, 0, 234, 0, 206,
|
|
0, 0, 251, 206, 0, 0, 235, 0, 0, 0,
|
|
0, 252, 253, 254, 255, 256, 257, 258, 206, 0,
|
|
236, 11, 206, 0, 0, 206, 237, 238, 12, 0,
|
|
0, 13, 234, 14, 15, 0, 0, 0, 0, 0,
|
|
0, 235, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 236, 0, 239, 16, 0,
|
|
0, 237, 238, 632, 420, 418, 206, 419, 0, 421,
|
|
0, 0, 206, 206, 206, 0, 206, 206, 206, 0,
|
|
206, 0, 804, 803, 805, 241, 242, 0, 0, 0,
|
|
0, 0, 239, 0, 0, 0, 0, 243, 0, 0,
|
|
206, 244, 206, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
241, 242, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 243, 206, 0, 0, 244, 0, 76, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
206, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 245, 0, 0, 0, 0, 0,
|
|
0, 0, 206, 0, 246, 824, 420, 418, 0, 419,
|
|
0, 421, 0, 0, 824, 1155, 0, 0, 247, 248,
|
|
249, 250, 161, 162, 804, 803, 805, 0, 824, 245,
|
|
0, 0, 251, 0, 824, 824, 0, 206, 206, 246,
|
|
0, 252, 253, 254, 255, 256, 257, 258, 0, 0,
|
|
0, 0, 0, 247, 248, 249, 250, 161, 162, 0,
|
|
0, 0, 0, 0, 0, 824, 0, 251, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 252, 253, 254, 255,
|
|
256, 257, 258, 0, 777, 0, 0, 0, 517, 0,
|
|
0, 0, 0, 824, 824, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 778, 0, 824, 0, 518, 0, 824,
|
|
519, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 791, 0, 0, 0, 0, 0,
|
|
0, 0, 416, 0, 0, 0, 0, 0, 417, 0,
|
|
0, 792, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 520, 0, 0, 0, 0, 0, 521, 522, 523,
|
|
0, 524, 525, 526, 0, 527, 0, 0, 0, 0,
|
|
0, 0, 824, 0, 0, 0, 0, 793, 0, 0,
|
|
0, 0, 824, 0, 0, 528, 794, 529, 0, 0,
|
|
0, 0, 0, 0, 795, 0, 824, 824, 824, 824,
|
|
824, 824, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
824, 0, 0, 796, 0, 797, 0, 0, 530, 824,
|
|
824, 824, 824, 824, 824, 824, 0, 0, 0, 798,
|
|
0, 799, 800, 801, 0, 531, 791, 0, 0, 0,
|
|
0, 0, 0, 0, 416, 516, 0, 0, 0, 517,
|
|
417, 0, 0, 792, 0, 0, 0, 532, 0, 0,
|
|
0, 206, 0, 0, 0, 206, 0, 0, 518, 0,
|
|
0, 519, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
206, 0, 802, 0, 206, 0, 0, 206, 0, 793,
|
|
0, 0, 533, 534, 0, 0, 0, 0, 794, 0,
|
|
0, 0, 0, 0, 0, 0, 795, 120, 0, 0,
|
|
0, 120, 520, 0, 0, 0, 0, 0, 521, 522,
|
|
523, 0, 524, 525, 526, 796, 527, 797, 206, 0,
|
|
120, 0, 0, 120, 206, 206, 206, 0, 206, 206,
|
|
206, 798, 206, 799, 800, 801, 528, 0, 529, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 1209,
|
|
0, 0, 206, 0, 206, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 120, 0, 0, 0, 0, 530,
|
|
120, 120, 120, 0, 120, 120, 120, 0, 120, 0,
|
|
6, 0, 0, 0, 802, 206, 531, 1394, 0, 0,
|
|
281, 1294, 1295, 0, 1296, 0, 0, 1297, 120, 0,
|
|
120, 0, 206, 0, 0, 0, 0, 0, 532, 0,
|
|
0, 1298, 0, 0, 0, 0, 0, 1299, 0, 0,
|
|
0, 281, 0, 224, 206, 0, 0, 0, 281, 0,
|
|
0, 120, 281, 281, 0, 281, 0, 0, 281, 0,
|
|
0, 0, 0, 533, 534, 0, 0, 0, 120, 0,
|
|
0, 0, 281, 0, 0, 0, 0, 0, 281, 206,
|
|
206, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
120, 0, 0, 0, 0, 0, 0, 1300, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 120, 120, 0, 0, 0,
|
|
0, 1301, 0, 0, 0, 0, 0, 0, 281, 0,
|
|
0, 16, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
1395, 0, 1302, 0, 0, 0, 0, 281, 0, 166,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 281, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 281, 0, 281, 0, 0, 0, 0, 0, 0,
|
|
281,
|
|
};
|
|
static short yycheck[] = { 54,
|
|
16, 46, 4, 55, 4, 47, 93, 0, 54, 213,
|
|
213, 213, 589, 54, 424, 57, 48, 571, 53, 573,
|
|
449, 338, 397, 75, 60, 503, 477, 59, 58, 480,
|
|
342, 346, 83, 78, 410, 486, 446, 79, 430, 124,
|
|
317, 489, 346, 486, 86, 676, 82, 683, 909, 850,
|
|
80, 221, 0, 102, 0, 104, 40, 73, 45, 920,
|
|
40, 231, 0, 0, 40, 81, 121, 0, 40, 361,
|
|
604, 103, 45, 300, 310, 936, 40, 645, 742, 565,
|
|
40, 0, 0, 0, 42, 44, 0, 41, 536, 41,
|
|
44, 0, 45, 41, 58, 44, 44, 42, 177, 40,
|
|
187, 44, 44, 41, 115, 44, 44, 392, 0, 41,
|
|
1189, 59, 147, 59, 680, 44, 693, 0, 44, 946,
|
|
1063, 59, 59, 44, 0, 91, 59, 930, 44, 0,
|
|
44, 0, 41, 0, 264, 229, 44, 41, 173, 226,
|
|
59, 59, 59, 45, 456, 59, 463, 464, 465, 466,
|
|
59, 263, 0, 58, 274, 260, 1026, 0, 41, 44,
|
|
215, 44, 0, 367, 367, 367, 693, 59, 1019, 215,
|
|
1021, 486, 0, 284, 63, 1082, 59, 329, 12, 0,
|
|
658, 288, 486, 59, 302, 0, 321, 219, 59, 1426,
|
|
59, 258, 59, 268, 378, 40, 44, 229, 347, 511,
|
|
45, 313, 260, 45, 313, 45, 0, 0, 686, 687,
|
|
380, 59, 324, 0, 0, 277, 59, 1122, 257, 304,
|
|
264, 59, 418, 63, 516, 265, 41, 1204, 326, 321,
|
|
1091, 59, 406, 444, 388, 419, 0, 459, 59, 284,
|
|
307, 288, 418, 456, 59, 300, 378, 59, 303, 445,
|
|
461, 425, 806, 807, 300, 41, 288, 303, 44, 707,
|
|
59, 1238, 1499, 303, 486, 59, 59, 316, 12, 445,
|
|
325, 0, 59, 59, 323, 109, 309, 728, 327, 325,
|
|
429, 330, 466, 0, 346, 1522, 0, 441, 736, 823,
|
|
858, 366, 444, 278, 0, 59, 335, 672, 832, 833,
|
|
394, 285, 437, 388, 339, 1108, 341, 1214, 0, 461,
|
|
0, 277, 357, 418, 262, 41, 428, 449, 353, 0,
|
|
274, 258, 607, 355, 41, 443, 264, 44, 269, 440,
|
|
59, 461, 1183, 431, 1413, 320, 0, 379, 1243, 297,
|
|
438, 1284, 59, 897, 376, 59, 1207, 467, 264, 1210,
|
|
392, 1212, 419, 59, 461, 387, 310, 389, 750, 361,
|
|
418, 470, 394, 1027, 0, 109, 0, 59, 412, 59,
|
|
307, 319, 321, 1452, 322, 258, 1237, 41, 59, 305,
|
|
44, 329, 321, 321, 332, 589, 589, 589, 336, 400,
|
|
956, 274, 1219, 341, 41, 59, 344, 0, 319, 332,
|
|
332, 978, 41, 0, 483, 41, 310, 278, 1278, 280,
|
|
319, 278, 360, 280, 461, 329, 401, 403, 332, 452,
|
|
258, 264, 341, 59, 307, 59, 461, 310, 598, 273,
|
|
344, 41, 341, 1097, 1070, 395, 384, 486, 41, 387,
|
|
388, 461, 384, 264, 41, 397, 673, 1250, 58, 397,
|
|
278, 113, 280, 828, 690, 933, 59, 442, 412, 907,
|
|
329, 59, 59, 332, 397, 397, 414, 1328, 448, 307,
|
|
918, 506, 459, 349, 504, 961, 1337, 461, 437, 388,
|
|
397, 329, 419, 397, 332, 461, 459, 935, 397, 461,
|
|
693, 693, 784, 441, 1062, 441, 344, 461, 775, 486,
|
|
437, 1035, 557, 461, 319, 453, 459, 455, 441, 455,
|
|
1064, 557, 455, 467, 516, 453, 461, 332, 410, 554,
|
|
555, 0, 455, 461, 441, 1102, 341, 441, 397, 412,
|
|
459, 1085, 441, 319, 471, 590, 419, 455, 455, 453,
|
|
488, 455, 329, 329, 590, 332, 332, 455, 1349, 397,
|
|
343, 379, 258, 1414, 437, 341, 461, 459, 344, 461,
|
|
837, 278, 41, 280, 566, 607, 566, 1203, 453, 886,
|
|
459, 288, 441, 388, 368, 1102, 952, 398, 259, 488,
|
|
59, 419, 397, 264, 467, 378, 455, 432, 471, 270,
|
|
432, 41, 432, 441, 1072, 1038, 1074, 259, 260, 411,
|
|
262, 307, 388, 329, 368, 453, 332, 455, 1280, 604,
|
|
397, 397, 411, 406, 459, 262, 409, 459, 673, 459,
|
|
349, 1078, 41, 262, 679, 680, 441, 673, 559, 343,
|
|
947, 0, 425, 679, 680, 667, 1114, 669, 0, 0,
|
|
1050, 1089, 42, 813, 41, 0, 816, 682, 683, 341,
|
|
699, 341, 1283, 856, 441, 441, 1113, 461, 451, 689,
|
|
0, 262, 379, 357, 378, 259, 453, 453, 455, 42,
|
|
1118, 397, 41, 488, 47, 44, 270, 265, 727, 728,
|
|
1257, 288, 959, 319, 401, 319, 1310, 461, 714, 44,
|
|
59, 408, 406, 329, 301, 409, 332, 59, 59, 1370,
|
|
435, 786, 488, 788, 59, 341, 302, 341, 1100, 257,
|
|
0, 425, 320, 419, 1106, 303, 319, 398, 461, 59,
|
|
384, 273, 319, 1038, 726, 442, 461, 302, 1282, 0,
|
|
760, 761, 762, 735, 1038, 397, 430, 451, 341, 401,
|
|
387, 773, 398, 339, 341, 747, 287, 44, 387, 0,
|
|
338, 41, 388, 415, 44, 417, 418, 419, 420, 421,
|
|
422, 397, 1138, 425, 339, 258, 817, 0, 1216, 59,
|
|
41, 702, 814, 44, 978, 284, 978, 0, 1450, 815,
|
|
711, 437, 784, 260, 1213, 388, 387, 335, 59, 341,
|
|
41, 388, 357, 401, 397, 344, 93, 1245, 1227, 1408,
|
|
397, 461, 857, 349, 1116, 441, 1181, 1285, 59, 44,
|
|
44, 1289, 262, 260, 307, 471, 1487, 1489, 410, 455,
|
|
369, 1025, 1026, 1027, 59, 0, 59, 304, 823, 394,
|
|
0, 396, 1386, 764, 442, 1389, 59, 832, 441, 1448,
|
|
319, 44, 1293, 262, 441, 406, 1517, 443, 1425, 344,
|
|
329, 1475, 488, 332, 419, 302, 0, 280, 455, 93,
|
|
260, 0, 341, 286, 0, 262, 41, 314, 443, 44,
|
|
42, 43, 1329, 45, 369, 47, 385, 1486, 427, 444,
|
|
1504, 1505, 1459, 1200, 59, 41, 912, 913, 44, 59,
|
|
93, 488, 339, 262, 949, 41, 457, 41, 44, 1102,
|
|
1102, 956, 41, 949, 304, 41, 1530, 280, 44, 388,
|
|
956, 573, 942, 286, 0, 59, 462, 463, 397, 1543,
|
|
59, 462, 463, 59, 1501, 927, 419, 927, 958, 1339,
|
|
956, 440, 427, 0, 964, 0, 0, 387, 0, 329,
|
|
42, 43, 1420, 45, 437, 47, 608, 609, 457, 611,
|
|
319, 613, 0, 322, 616, 617, 618, 619, 620, 621,
|
|
329, 408, 441, 332, 319, 16, 461, 336, 387, 631,
|
|
461, 418, 341, 59, 453, 344, 406, 44, 471, 279,
|
|
40, 343, 1536, 44, 0, 45, 341, 1190, 919, 461,
|
|
387, 360, 59, 0, 59, 59, 443, 59, 58, 353,
|
|
41, 42, 43, 343, 45, 459, 47, 1417, 1063, 488,
|
|
672, 59, 322, 403, 461, 384, 378, 1063, 387, 388,
|
|
0, 0, 73, 1025, 1026, 379, 336, 457, 397, 319,
|
|
330, 301, 93, 260, 344, 1070, 41, 44, 378, 44,
|
|
461, 0, 332, 59, 406, 414, 63, 409, 319, 439,
|
|
360, 341, 59, 1257, 444, 1257, 461, 0, 329, 404,
|
|
450, 332, 41, 425, 364, 44, 406, 84, 319, 409,
|
|
341, 461, 441, 344, 1278, 302, 421, 322, 329, 59,
|
|
59, 332, 382, 353, 453, 425, 455, 314, 93, 451,
|
|
341, 336, 459, 1095, 1129, 1095, 319, 1132, 388, 344,
|
|
59, 0, 0, 278, 414, 280, 41, 397, 280, 44,
|
|
343, 451, 339, 288, 286, 360, 59, 388, 341, 488,
|
|
1410, 259, 41, 323, 349, 44, 397, 338, 461, 791,
|
|
792, 793, 270, 358, 796, 797, 798, 388, 800, 801,
|
|
802, 803, 804, 805, 0, 44, 397, 42, 43, 321,
|
|
45, 441, 47, 1208, 1209, 0, 1446, 459, 93, 461,
|
|
59, 59, 1208, 1209, 375, 455, 828, 1208, 1203, 414,
|
|
441, 0, 0, 406, 322, 319, 409, 388, 280, 841,
|
|
319, 408, 453, 319, 286, 1217, 322, 849, 336, 851,
|
|
441, 418, 425, 329, 856, 1485, 332, 341, 488, 461,
|
|
336, 0, 341, 59, 379, 341, 323, 260, 344, 384,
|
|
312, 196, 360, 402, 59, 272, 443, 488, 451, 204,
|
|
0, 0, 1425, 1425, 360, 1515, 401, 0, 0, 1284,
|
|
59, 59, 289, 408, 317, 318, 296, 488, 1284, 280,
|
|
1327, 384, 1294, 41, 388, 286, 44, 343, 384, 388,
|
|
0, 304, 388, 397, 40, 1310, 1459, 1459, 265, 0,
|
|
59, 397, 41, 279, 1310, 44, 414, 442, 40, 41,
|
|
42, 43, 44, 45, 46, 47, 1278, 334, 414, 59,
|
|
59, 466, 378, 468, 0, 301, 59, 59, 60, 61,
|
|
62, 1323, 0, 353, 0, 260, 303, 441, 1501, 1501,
|
|
41, 44, 441, 44, 1297, 441, 363, 384, 1343, 59,
|
|
406, 1346, 319, 409, 330, 0, 1403, 453, 59, 91,
|
|
461, 93, 1338, 260, 0, 461, 322, 989, 990, 425,
|
|
992, 993, 379, 349, 341, 41, 386, 1392, 1000, 304,
|
|
336, 1383, 358, 59, 41, 384, 1392, 44, 364, 384,
|
|
302, 59, 488, 59, 401, 451, 41, 42, 43, 44,
|
|
45, 408, 47, 260, 360, 258, 382, 304, 261, 0,
|
|
1425, 1426, 0, 430, 59, 60, 61, 62, 338, 1425,
|
|
1426, 0, 1434, 59, 0, 280, 419, 339, 384, 0,
|
|
461, 286, 1408, 0, 41, 442, 274, 44, 458, 459,
|
|
460, 461, 462, 463, 1459, 0, 1422, 304, 93, 0,
|
|
0, 392, 393, 1459, 307, 1470, 319, 312, 414, 1081,
|
|
1475, 481, 482, 322, 1470, 40, 486, 487, 59, 1475,
|
|
329, 59, 1448, 332, 1436, 425, 1436, 336, 1454, 41,
|
|
59, 462, 44, 59, 1499, 344, 1501, 264, 59, 1504,
|
|
1505, 1496, 59, 1499, 46, 1501, 408, 1119, 1504, 1505,
|
|
41, 360, 41, 44, 59, 44, 418, 1522, 59, 59,
|
|
1486, 41, 319, 1135, 44, 1530, 1522, 1493, 41, 338,
|
|
0, 44, 677, 678, 1530, 384, 1148, 317, 1543, 0,
|
|
262, 443, 264, 1155, 1019, 338, 1021, 1543, 397, 278,
|
|
272, 280, 42, 43, 461, 45, 285, 47, 280, 288,
|
|
41, 462, 463, 44, 286, 414, 375, 289, 41, 1181,
|
|
419, 44, 301, 41, 0, 0, 44, 337, 1190, 388,
|
|
41, 41, 453, 44, 44, 462, 463, 403, 341, 59,
|
|
312, 403, 441, 321, 319, 384, 384, 319, 59, 321,
|
|
322, 40, 40, 325, 453, 40, 455, 329, 42, 43,
|
|
332, 45, 334, 47, 336, 41, 462, 40, 44, 341,
|
|
342, 40, 344, 462, 41, 42, 43, 262, 45, 264,
|
|
47, 40, 40, 59, 59, 40, 40, 272, 360, 361,
|
|
396, 363, 398, 1255, 462, 280, 402, 403, 404, 40,
|
|
379, 286, 1264, 1265, 289, 377, 461, 379, 380, 381,
|
|
91, 321, 384, 319, 44, 387, 388, 458, 459, 460,
|
|
46, 437, 401, 362, 451, 397, 332, 312, 435, 408,
|
|
418, 443, 358, 288, 319, 341, 321, 322, 1300, 322,
|
|
325, 412, 414, 44, 329, 486, 487, 332, 470, 334,
|
|
61, 336, 373, 336, 287, 295, 341, 342, 430, 344,
|
|
40, 264, 40, 442, 0, 44, 306, 437, 461, 441,
|
|
321, 44, 403, 313, 0, 360, 361, 360, 363, 41,
|
|
1342, 453, 388, 455, 41, 42, 43, 461, 45, 461,
|
|
47, 397, 377, 453, 379, 380, 381, 461, 338, 384,
|
|
44, 384, 387, 388, 429, 41, 42, 43, 44, 45,
|
|
61, 47, 397, 280, 40, 41, 488, 44, 44, 383,
|
|
349, 44, 262, 59, 60, 61, 62, 278, 301, 414,
|
|
264, 414, 461, 59, 437, 441, 42, 43, 258, 45,
|
|
280, 47, 398, 471, 398, 430, 286, 0, 459, 455,
|
|
277, 400, 448, 59, 448, 40, 441, 93, 40, 279,
|
|
91, 350, 40, 403, 264, 91, 42, 43, 453, 45,
|
|
455, 47, 40, 412, 384, 44, 461, 390, 262, 383,
|
|
40, 301, 488, 1392, 40, 437, 262, 307, 41, 42,
|
|
43, 44, 45, 465, 47, 435, 280, 318, 40, 439,
|
|
264, 41, 286, 488, 279, 321, 59, 60, 61, 62,
|
|
330, 322, 321, 280, 44, 321, 1425, 1426, 329, 286,
|
|
280, 332, 40, 44, 329, 336, 301, 449, 40, 349,
|
|
277, 274, 459, 344, 0, 40, 40, 357, 358, 285,
|
|
93, 45, 345, 319, 364, 278, 322, 345, 419, 360,
|
|
1459, 417, 301, 329, 419, 330, 332, 40, 357, 63,
|
|
336, 1470, 382, 418, 40, 341, 40, 461, 344, 44,
|
|
321, 386, 368, 384, 349, 41, 42, 43, 44, 45,
|
|
44, 47, 41, 358, 360, 389, 397, 389, 389, 364,
|
|
1499, 344, 1501, 59, 60, 61, 62, 274, 332, 419,
|
|
44, 266, 300, 414, 40, 264, 45, 382, 384, 461,
|
|
430, 387, 388, 1522, 41, 423, 58, 41, 41, 41,
|
|
455, 397, 441, 280, 63, 395, 262, 93, 264, 286,
|
|
441, 41, 258, 41, 310, 310, 272, 40, 414, 40,
|
|
353, 40, 453, 40, 455, 40, 40, 40, 274, 40,
|
|
286, 277, 278, 289, 280, 40, 40, 40, 40, 285,
|
|
40, 40, 288, 40, 40, 441, 262, 328, 41, 44,
|
|
279, 461, 0, 423, 280, 301, 312, 453, 392, 455,
|
|
286, 307, 391, 319, 310, 321, 322, 271, 288, 325,
|
|
447, 488, 301, 329, 41, 379, 332, 0, 334, 41,
|
|
336, 408, 40, 278, 280, 341, 342, 41, 344, 262,
|
|
286, 264, 488, 41, 41, 43, 44, 45, 418, 272,
|
|
41, 330, 386, 280, 360, 361, 44, 363, 40, 437,
|
|
397, 59, 60, 61, 62, 41, 289, 41, 353, 386,
|
|
349, 377, 321, 379, 380, 381, 356, 372, 384, 358,
|
|
372, 387, 388, 379, 41, 364, 59, 41, 41, 312,
|
|
41, 397, 41, 403, 41, 93, 319, 45, 321, 322,
|
|
41, 41, 325, 382, 41, 401, 329, 41, 414, 332,
|
|
41, 334, 408, 336, 41, 41, 412, 41, 341, 342,
|
|
41, 344, 296, 419, 430, 796, 262, 798, 264, 800,
|
|
801, 41, 803, 804, 805, 441, 272, 360, 361, 59,
|
|
363, 437, 40, 341, 59, 40, 442, 453, 59, 455,
|
|
59, 0, 341, 289, 377, 461, 379, 380, 381, 59,
|
|
59, 384, 41, 353, 387, 388, 345, 369, 40, 341,
|
|
59, 467, 59, 384, 397, 471, 312, 44, 461, 353,
|
|
384, 384, 488, 319, 41, 321, 322, 296, 344, 325,
|
|
0, 414, 41, 329, 41, 44, 332, 41, 334, 41,
|
|
336, 44, 411, 44, 436, 341, 342, 430, 344, 305,
|
|
59, 41, 42, 43, 302, 45, 40, 47, 441, 443,
|
|
59, 305, 294, 464, 360, 361, 44, 363, 44, 308,
|
|
453, 41, 455, 41, 44, 0, 0, 338, 461, 40,
|
|
264, 377, 45, 379, 380, 381, 384, 384, 384, 59,
|
|
278, 387, 388, 321, 264, 58, 41, 42, 43, 390,
|
|
45, 397, 47, 459, 262, 488, 264, 40, 264, 412,
|
|
471, 310, 459, 437, 272, 264, 271, 41, 414, 43,
|
|
44, 45, 344, 459, 458, 459, 460, 344, 462, 463,
|
|
271, 289, 41, 344, 430, 59, 60, 61, 62, 40,
|
|
344, 41, 40, 59, 41, 441, 279, 481, 482, 418,
|
|
41, 305, 486, 487, 312, 59, 0, 453, 0, 455,
|
|
0, 319, 1022, 321, 322, 461, 12, 325, 301, 93,
|
|
231, 329, 223, 598, 332, 444, 334, 222, 336, 561,
|
|
776, 961, 77, 341, 342, 959, 344, 1102, 296, 458,
|
|
459, 460, 488, 462, 463, 948, 956, 330, 1228, 343,
|
|
511, 940, 360, 361, 308, 363, 889, 949, 708, 325,
|
|
260, 709, 481, 482, 0, 325, 349, 486, 487, 377,
|
|
1214, 379, 380, 381, 357, 358, 384, 1441, 1216, 387,
|
|
388, 364, 41, 42, 43, 1445, 45, 1479, 47, 397,
|
|
41, 42, 43, 349, 45, 353, 47, 1079, 491, 382,
|
|
0, 1444, 302, 699, 1459, 41, 414, 43, 44, 45,
|
|
1408, 394, 1529, 396, 314, 1397, 1119, 1476, 367, 278,
|
|
558, 280, 430, 59, 60, 61, 62, 951, 328, 288,
|
|
318, 771, 330, 441, 1239, 493, 419, 311, 258, 339,
|
|
280, 41, 301, 757, 44, 453, 286, 455, 549, 1104,
|
|
749, 0, 13, 461, 292, 432, 436, 93, 278, 59,
|
|
280, 444, 667, 679, 426, 285, 645, 1284, 288, 1493,
|
|
425, 1287, 1190, 41, 42, 43, 1454, 45, 0, 47,
|
|
488, 301, 603, 296, 1545, 280, 444, 307, 262, 991,
|
|
264, 286, 41, 446, 43, 44, 45, 829, 272, 422,
|
|
458, 459, 460, 366, 462, 463, -1, -1, 408, 1257,
|
|
59, 60, 61, 62, -1, 289, -1, -1, 418, 41,
|
|
379, -1, 44, 481, 482, 483, 484, 485, 486, 487,
|
|
-1, -1, -1, -1, 0, -1, -1, 59, 312, -1,
|
|
353, -1, 401, 443, 93, 319, -1, 321, 322, 408,
|
|
-1, 325, -1, -1, -1, 329, -1, -1, 332, 379,
|
|
334, 461, 336, -1, 45, -1, -1, 341, 342, -1,
|
|
344, -1, -1, -1, -1, 41, -1, -1, 44, -1,
|
|
-1, 401, 63, 442, -1, -1, 360, 361, 408, 363,
|
|
-1, -1, -1, 59, -1, -1, -1, -1, -1, 419,
|
|
-1, -1, -1, 377, -1, 379, 380, 381, -1, -1,
|
|
384, 0, -1, 387, 388, -1, -1, 437, -1, -1,
|
|
-1, 280, 442, 397, -1, -1, 262, 286, 264, 280,
|
|
-1, -1, -1, -1, -1, 286, 272, 41, 42, 43,
|
|
414, 45, -1, 47, -1, 458, 459, 460, 461, 462,
|
|
463, 471, 41, 289, -1, 44, 430, 41, 42, 43,
|
|
-1, 45, -1, 47, -1, -1, 295, 441, 481, 482,
|
|
59, -1, -1, 486, 487, 0, 312, 306, 278, 453,
|
|
280, 455, -1, 319, 313, 321, 322, 461, 288, 325,
|
|
-1, -1, -1, 329, -1, 0, 332, 326, 334, -1,
|
|
336, 301, -1, -1, -1, 341, 342, -1, 344, -1,
|
|
-1, -1, 280, 262, 488, 264, 41, -1, 286, 44,
|
|
-1, -1, -1, 272, 360, 361, -1, 363, -1, -1,
|
|
-1, -1, -1, -1, 59, -1, 41, -1, -1, 44,
|
|
289, 377, -1, 379, 380, 381, -1, -1, 384, -1,
|
|
-1, 387, 388, -1, 59, -1, 278, -1, 280, 0,
|
|
-1, 397, -1, 312, -1, -1, 288, -1, -1, -1,
|
|
319, -1, 321, 322, 403, -1, 325, -1, 414, 379,
|
|
329, -1, 0, 332, -1, 334, -1, 336, -1, -1,
|
|
-1, 420, 341, 342, 430, 344, 262, -1, -1, -1,
|
|
41, 401, -1, 44, -1, 441, 435, -1, 408, -1,
|
|
439, 360, 361, 442, 363, 296, -1, 453, 59, 455,
|
|
-1, 450, -1, 41, -1, 461, 44, -1, 377, -1,
|
|
379, 380, 381, -1, -1, 384, -1, -1, 387, 388,
|
|
469, 59, 442, -1, -1, -1, 0, -1, 397, -1,
|
|
-1, -1, 488, 319, -1, -1, 322, 379, -1, -1,
|
|
-1, -1, -1, 329, -1, 414, 332, -1, -1, 0,
|
|
336, -1, 353, 262, -1, 341, 280, -1, 344, 401,
|
|
-1, 430, 286, -1, -1, -1, 408, 41, -1, -1,
|
|
44, -1, 441, -1, 360, -1, 280, -1, -1, -1,
|
|
-1, -1, 286, -1, 453, 59, 455, -1, -1, -1,
|
|
41, -1, 461, 44, -1, -1, -1, -1, 384, -1,
|
|
442, 387, 388, -1, 0, -1, -1, -1, 59, -1,
|
|
319, 397, 0, 322, -1, -1, -1, 262, -1, 488,
|
|
329, -1, -1, 332, -1, -1, -1, 336, 414, -1,
|
|
-1, -1, 341, -1, -1, 344, -1, 262, 41, 42,
|
|
43, -1, 45, -1, 47, 41, -1, -1, 44, -1,
|
|
-1, 360, -1, 41, -1, 441, 44, 458, 459, 460,
|
|
-1, 462, 463, 59, -1, -1, -1, 453, -1, 455,
|
|
-1, 59, -1, -1, 319, 384, -1, 322, 387, 388,
|
|
481, 482, -1, -1, 329, 486, 487, 332, 397, 0,
|
|
0, 336, -1, -1, 319, -1, 341, 322, -1, 344,
|
|
-1, 262, 488, -1, 329, 414, -1, 332, -1, -1,
|
|
-1, 336, -1, -1, -1, 360, 341, -1, -1, 344,
|
|
-1, -1, 45, -1, 262, -1, -1, -1, -1, -1,
|
|
41, 41, 441, 44, 44, 360, -1, -1, -1, 384,
|
|
63, -1, 387, 388, 453, -1, 455, -1, 59, 59,
|
|
-1, -1, 397, -1, -1, -1, -1, -1, 319, 384,
|
|
-1, 322, 387, 388, -1, -1, -1, -1, 329, 414,
|
|
-1, 332, 397, 0, 0, 336, -1, -1, -1, 488,
|
|
341, 319, -1, 344, 322, -1, -1, -1, 262, 414,
|
|
-1, 329, 0, -1, 332, -1, 441, -1, 336, 360,
|
|
-1, -1, -1, 341, -1, -1, 344, -1, 453, -1,
|
|
455, 262, -1, -1, 41, 41, 441, 44, 44, -1,
|
|
-1, -1, 360, 384, -1, -1, 387, 388, 453, -1,
|
|
455, -1, 59, 59, -1, -1, 397, -1, -1, -1,
|
|
-1, -1, -1, 488, -1, 319, 384, -1, 322, 387,
|
|
388, 59, -1, 414, -1, 329, -1, 0, 332, 397,
|
|
-1, -1, 336, 488, -1, -1, -1, 341, 319, -1,
|
|
344, 322, -1, -1, 262, -1, 414, 280, 329, -1,
|
|
441, 332, 278, 286, 280, 336, 360, -1, -1, -1,
|
|
341, -1, 453, 344, 455, -1, -1, -1, 41, -1,
|
|
-1, 44, -1, 441, -1, -1, -1, -1, -1, 360,
|
|
384, -1, -1, 387, 388, 453, 59, 455, -1, -1,
|
|
-1, 0, -1, 397, -1, -1, -1, 488, -1, -1,
|
|
-1, 319, -1, 384, 322, -1, 387, 388, -1, -1,
|
|
414, 329, -1, -1, 332, -1, 397, -1, 336, -1,
|
|
488, 262, -1, 341, -1, -1, 344, -1, -1, -1,
|
|
-1, -1, 41, 414, -1, 44, -1, 441, 278, -1,
|
|
280, -1, 360, 296, -1, 285, -1, -1, 288, 453,
|
|
59, 455, -1, 379, -1, -1, -1, -1, -1, -1,
|
|
441, 301, -1, -1, -1, -1, 384, 0, 0, 387,
|
|
388, -1, 453, -1, 455, 401, -1, -1, 319, 397,
|
|
-1, 322, 408, -1, 488, -1, -1, -1, 329, -1,
|
|
0, 332, 0, -1, -1, 336, 414, -1, -1, -1,
|
|
341, 0, -1, 344, -1, 262, -1, 488, 41, 41,
|
|
-1, 44, 44, -1, -1, -1, 442, -1, -1, 360,
|
|
258, -1, 278, 441, 280, -1, 59, 59, -1, -1,
|
|
-1, 41, 288, 41, 44, 453, 44, 455, -1, 379,
|
|
-1, 279, 41, 384, -1, 44, 387, 388, -1, 59,
|
|
-1, 59, -1, 41, 42, 43, 397, 45, -1, 47,
|
|
59, 401, 319, 301, -1, 322, -1, -1, 408, 307,
|
|
488, -1, 329, 414, -1, 332, -1, 0, -1, 336,
|
|
-1, -1, -1, -1, 341, -1, -1, 344, -1, 262,
|
|
-1, 444, 330, -1, -1, -1, -1, -1, -1, -1,
|
|
441, -1, 442, 360, -1, 458, 459, 460, -1, 462,
|
|
463, 349, 453, -1, 455, -1, -1, -1, 41, -1,
|
|
358, 44, -1, 379, -1, -1, 364, 384, 481, 482,
|
|
387, 388, -1, 486, 487, -1, 59, -1, -1, -1,
|
|
397, 0, -1, -1, 382, 401, 319, 488, -1, 322,
|
|
-1, -1, 408, 262, -1, -1, 329, 414, -1, 332,
|
|
-1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
|
|
-1, 344, 41, 42, 43, 0, 45, -1, 47, -1,
|
|
-1, 419, 41, -1, 441, 44, 442, 360, 473, 474,
|
|
475, 476, 477, 478, 479, 480, 453, -1, 455, -1,
|
|
59, -1, 41, 42, 43, -1, 45, -1, 47, -1,
|
|
319, 384, -1, 322, 387, 388, 41, 0, -1, 44,
|
|
329, -1, -1, 332, 397, -1, -1, 336, -1, 262,
|
|
-1, 488, 341, -1, 59, 344, -1, -1, -1, -1,
|
|
-1, 414, -1, -1, -1, -1, 278, -1, 280, -1,
|
|
-1, 360, 262, -1, -1, -1, 288, -1, 41, -1,
|
|
-1, 44, -1, 262, -1, -1, -1, -1, 441, -1,
|
|
278, -1, 280, -1, -1, 384, 59, -1, 387, 388,
|
|
453, -1, 455, -1, -1, -1, 319, -1, 397, 322,
|
|
-1, -1, 280, -1, -1, -1, 329, -1, 286, 332,
|
|
-1, -1, -1, 336, -1, 414, -1, -1, 341, 319,
|
|
-1, 344, 322, -1, -1, 488, -1, -1, -1, 329,
|
|
319, -1, 332, 322, -1, -1, 336, 360, -1, -1,
|
|
329, 341, 441, 332, 344, -1, -1, 336, -1, 262,
|
|
-1, -1, 341, -1, 453, 344, 455, 379, -1, -1,
|
|
360, 384, -1, -1, 387, 388, -1, -1, -1, -1,
|
|
-1, 360, -1, -1, 397, -1, -1, -1, -1, 401,
|
|
-1, 379, -1, -1, 384, -1, 408, 387, 388, 488,
|
|
-1, 414, -1, -1, -1, 384, -1, 397, 387, 388,
|
|
-1, -1, 0, 401, -1, -1, 319, -1, 397, 322,
|
|
408, -1, -1, -1, 414, -1, 329, -1, 441, 332,
|
|
442, 280, 306, 336, -1, 414, -1, 286, 341, 313,
|
|
453, 344, 455, 317, 318, -1, -1, -1, 0, -1,
|
|
-1, 441, -1, 41, 442, -1, 44, 360, 46, -1,
|
|
0, 280, 441, 453, 338, 455, -1, 286, -1, -1,
|
|
-1, 59, -1, 61, 453, 488, 455, -1, -1, -1,
|
|
319, 384, -1, 322, 387, 388, -1, -1, -1, 41,
|
|
329, -1, 44, 332, 397, -1, -1, 336, 488, -1,
|
|
40, 41, 341, -1, 44, 344, -1, 59, -1, 488,
|
|
-1, 414, -1, -1, 319, -1, -1, 322, -1, 59,
|
|
-1, 360, -1, -1, 329, -1, -1, 332, -1, 403,
|
|
-1, 336, -1, -1, -1, -1, 341, -1, 441, 344,
|
|
-1, -1, -1, -1, -1, 384, 420, 0, 387, 388,
|
|
453, 91, 455, -1, -1, 360, 319, -1, 397, 322,
|
|
-1, 435, -1, -1, 0, 439, 329, -1, -1, 332,
|
|
-1, -1, -1, 336, -1, 414, 450, -1, 341, 384,
|
|
-1, 344, -1, 388, -1, 488, -1, -1, 41, -1,
|
|
-1, 44, 397, -1, -1, 469, -1, 360, -1, -1,
|
|
-1, -1, 441, -1, -1, 41, 59, -1, 44, 414,
|
|
-1, -1, -1, -1, 453, -1, 455, -1, -1, -1,
|
|
-1, 384, -1, 59, -1, 388, -1, -1, -1, 0,
|
|
-1, -1, -1, -1, 397, -1, 441, -1, 91, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 453, 488,
|
|
-1, 414, -1, -1, -1, 91, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
41, -1, -1, 44, -1, -1, 264, 265, 441, -1,
|
|
-1, -1, -1, 488, -1, 273, -1, -1, 59, 277,
|
|
453, 0, 280, -1, -1, -1, -1, 285, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 258, -1, 296, -1,
|
|
-1, 299, -1, -1, -1, 303, -1, 305, 258, -1,
|
|
91, -1, -1, -1, -1, 488, -1, 279, -1, -1,
|
|
-1, 319, -1, -1, 274, 0, -1, 277, 278, -1,
|
|
280, -1, -1, -1, -1, 285, -1, -1, 288, 301,
|
|
59, -1, 340, 341, -1, 307, -1, -1, 346, 347,
|
|
348, 301, 350, 351, 352, -1, 354, 307, -1, -1,
|
|
310, -1, -1, -1, 0, -1, 41, -1, 330, 44,
|
|
-1, 0, -1, -1, -1, -1, 374, -1, 376, -1,
|
|
-1, -1, -1, -1, 59, -1, -1, 349, -1, -1,
|
|
-1, -1, -1, -1, -1, 258, 358, -1, -1, -1,
|
|
-1, -1, 364, -1, -1, 41, -1, -1, 44, 407,
|
|
-1, 274, 258, 411, 277, 278, 91, 280, -1, -1,
|
|
382, -1, 285, 59, -1, 288, 424, -1, 274, 379,
|
|
59, 0, 278, -1, 280, -1, -1, -1, 301, 285,
|
|
-1, -1, 288, -1, 307, -1, -1, 310, 446, -1,
|
|
-1, 401, -1, -1, -1, 301, -1, 419, 408, -1,
|
|
-1, 307, 412, 461, 310, -1, -1, -1, -1, 419,
|
|
-1, -1, 41, -1, -1, 44, -1, 258, -1, -1,
|
|
-1, -1, -1, 481, 482, -1, -1, 437, -1, -1,
|
|
59, -1, 442, 274, -1, -1, -1, 278, -1, 280,
|
|
-1, -1, -1, -1, 285, -1, -1, 288, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 379, 467, -1, -1,
|
|
301, 471, -1, -1, -1, -1, 307, -1, -1, 310,
|
|
-1, -1, -1, 379, -1, -1, -1, -1, 401, 258,
|
|
-1, -1, -1, -1, -1, 408, -1, -1, -1, 412,
|
|
-1, -1, -1, -1, -1, 401, 419, -1, -1, -1,
|
|
279, -1, 408, -1, -1, -1, 412, 40, -1, -1,
|
|
43, -1, 45, 419, 437, -1, -1, -1, -1, 442,
|
|
-1, -1, 301, 258, -1, 58, -1, -1, 307, -1,
|
|
63, 437, -1, -1, -1, -1, 442, -1, 379, 274,
|
|
-1, -1, -1, 278, 467, 280, -1, -1, 471, -1,
|
|
285, 330, 271, 288, -1, -1, -1, -1, -1, -1,
|
|
401, 467, 258, -1, -1, 471, 301, 408, -1, 258,
|
|
349, 412, 307, -1, -1, 310, -1, -1, 419, 358,
|
|
-1, 277, 278, 302, 280, 364, -1, -1, -1, 285,
|
|
279, -1, 288, -1, 313, 314, 437, 316, -1, -1,
|
|
319, 442, -1, 382, 40, 301, -1, 43, -1, 45,
|
|
-1, 307, 301, -1, 333, -1, -1, -1, 307, -1,
|
|
339, -1, 58, -1, -1, -1, 467, 63, -1, 258,
|
|
471, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
419, 330, -1, -1, 379, -1, -1, -1, 277, 278,
|
|
-1, 280, -1, -1, -1, -1, 285, -1, 40, 288,
|
|
349, 43, -1, 45, -1, -1, 401, -1, -1, 358,
|
|
-1, -1, 301, 408, -1, 364, 58, 412, 307, -1,
|
|
399, 63, -1, 379, 419, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 382, -1, -1, -1, -1, -1, 418,
|
|
-1, -1, 437, -1, -1, 401, -1, 442, -1, -1,
|
|
-1, -1, 408, -1, 433, -1, -1, -1, -1, -1,
|
|
-1, 417, -1, 419, 443, -1, -1, -1, -1, -1,
|
|
419, -1, 467, -1, 267, 454, 471, -1, -1, -1,
|
|
-1, 437, 461, 276, 40, -1, 442, 43, -1, 45,
|
|
379, -1, -1, -1, -1, -1, -1, 290, -1, -1,
|
|
293, -1, 58, 296, 297, -1, -1, 63, -1, -1,
|
|
-1, -1, 401, -1, -1, 471, -1, -1, -1, 408,
|
|
-1, -1, 315, -1, -1, -1, -1, -1, 1136, 1137,
|
|
419, -1, -1, -1, 327, -1, -1, -1, 1146, 1147,
|
|
-1, 1149, 1150, -1, -1, -1, -1, -1, 437, 1157,
|
|
1158, 1159, 1160, 442, 1162, 1163, 1164, 1165, 1166, 1167,
|
|
-1, -1, 355, 356, -1, -1, -1, -1, -1, -1,
|
|
-1, 267, -1, -1, 367, -1, -1, -1, 371, -1,
|
|
276, -1, 471, -1, -1, -1, 379, -1, -1, -1,
|
|
-1, -1, -1, 461, 290, -1, -1, -1, -1, -1,
|
|
296, 297, 470, 471, 472, 473, 474, 475, 476, 477,
|
|
478, 479, 480, 481, 482, 483, 484, 485, -1, 315,
|
|
-1, -1, -1, -1, -1, 267, -1, 40, -1, 422,
|
|
43, 327, 45, -1, 276, -1, -1, -1, -1, -1,
|
|
-1, 434, -1, -1, -1, 58, -1, -1, 290, -1,
|
|
63, 444, -1, -1, 296, 297, -1, -1, -1, 355,
|
|
356, -1, -1, -1, -1, 458, 459, 460, 461, 462,
|
|
463, 367, -1, 315, -1, 371, -1, -1, -1, 472,
|
|
-1, -1, -1, 379, -1, 327, -1, -1, 481, 482,
|
|
483, 484, 485, 486, 487, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 260, -1, -1, 263, -1, -1,
|
|
-1, 267, 40, 355, 356, 43, -1, 45, -1, -1,
|
|
276, -1, 418, -1, -1, 367, 422, -1, -1, 371,
|
|
58, -1, -1, -1, 290, 63, -1, 379, 434, -1,
|
|
296, 297, -1, -1, -1, -1, -1, -1, 444, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 458, 459, 460, 461, 462, 463, -1, -1,
|
|
-1, 327, -1, -1, -1, -1, 472, -1, -1, -1,
|
|
422, -1, -1, -1, -1, 481, 482, 483, 484, 485,
|
|
486, 487, 434, -1, -1, -1, -1, -1, -1, 355,
|
|
356, -1, 444, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 367, -1, -1, -1, 371, 458, 459, 460, 461,
|
|
462, 463, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
472, -1, -1, -1, -1, -1, -1, -1, -1, 481,
|
|
482, 483, 484, 485, 486, 487, -1, 260, -1, -1,
|
|
263, -1, -1, -1, 267, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 276, 40, -1, -1, 43, -1, 45,
|
|
426, -1, -1, -1, -1, -1, -1, 290, 434, -1,
|
|
-1, -1, 58, 296, 297, -1, -1, 63, 444, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 458, 459, 460, 461, 462, 463, -1, -1,
|
|
-1, -1, -1, -1, 327, -1, 472, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 481, 482, 483, 484, 485,
|
|
486, 487, 260, -1, -1, 263, -1, -1, -1, 267,
|
|
-1, -1, 355, 356, -1, -1, -1, 40, 276, -1,
|
|
43, -1, 45, -1, 367, -1, -1, -1, 371, -1,
|
|
-1, -1, 290, 461, -1, 58, -1, -1, 296, 297,
|
|
63, -1, 470, 471, 472, 473, 474, 475, 476, 477,
|
|
478, 479, 480, 481, 482, 483, 484, 485, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 327,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 426, -1, 40, -1, -1, 43, -1,
|
|
45, 434, -1, -1, -1, -1, -1, 355, 356, -1,
|
|
-1, 444, -1, 58, -1, -1, -1, -1, 63, 367,
|
|
-1, -1, -1, 371, -1, 458, 459, 460, 461, 462,
|
|
463, -1, -1, -1, -1, -1, -1, -1, -1, 472,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, 481, 482,
|
|
483, 484, 485, 486, 487, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 260, -1, -1, 263, -1, -1,
|
|
-1, 267, -1, -1, -1, -1, -1, -1, 426, 40,
|
|
276, -1, 43, -1, 45, -1, 434, -1, -1, -1,
|
|
-1, -1, -1, -1, 290, 273, 444, 58, -1, 277,
|
|
296, 297, 63, -1, -1, -1, -1, -1, -1, -1,
|
|
458, 459, 460, 461, 462, 463, -1, -1, 296, -1,
|
|
-1, 299, -1, -1, 472, -1, -1, -1, -1, -1,
|
|
-1, 327, -1, 481, 482, 483, 484, 485, 486, 487,
|
|
-1, -1, -1, -1, -1, -1, -1, 260, -1, -1,
|
|
263, -1, -1, -1, 267, -1, -1, -1, -1, 355,
|
|
356, -1, 340, 276, -1, -1, -1, -1, 346, 347,
|
|
348, 367, 350, 351, 352, 371, 354, 290, -1, -1,
|
|
-1, -1, -1, 296, 297, -1, -1, -1, -1, 461,
|
|
-1, -1, -1, -1, -1, -1, 374, -1, 376, 471,
|
|
472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
|
|
482, 483, 484, 485, 327, 260, -1, -1, 263, -1,
|
|
-1, -1, 267, -1, -1, -1, -1, -1, -1, 407,
|
|
426, 276, 40, -1, -1, 43, -1, 45, 434, -1,
|
|
-1, -1, 355, 356, -1, 290, 424, -1, 444, -1,
|
|
58, 296, 297, -1, 367, 63, -1, -1, 371, -1,
|
|
-1, -1, 458, 459, 460, 461, 462, 463, 446, -1,
|
|
-1, -1, -1, -1, -1, -1, 472, -1, 40, -1,
|
|
42, 43, 327, 45, -1, 481, 482, 483, 484, 485,
|
|
486, 487, -1, -1, -1, -1, 58, -1, -1, 260,
|
|
-1, 63, 263, 481, 482, -1, 267, -1, -1, -1,
|
|
355, 356, -1, 426, 40, 276, 42, 43, -1, 45,
|
|
-1, 434, 367, -1, -1, -1, 371, -1, -1, 290,
|
|
273, 444, 58, -1, 277, 296, 297, 63, -1, -1,
|
|
-1, -1, 285, -1, -1, 458, 459, 460, 461, 462,
|
|
463, -1, -1, 296, -1, -1, 299, -1, -1, 472,
|
|
-1, -1, -1, -1, -1, -1, 327, -1, 481, 482,
|
|
483, 484, 485, 486, 487, 40, -1, -1, 43, -1,
|
|
45, 426, -1, -1, -1, -1, -1, -1, -1, 434,
|
|
-1, -1, -1, 58, 355, 356, -1, 340, 63, 444,
|
|
-1, -1, -1, 346, 347, 348, 367, 350, 351, 352,
|
|
371, 354, -1, 458, 459, 460, 461, 462, 463, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, 472, -1, -1,
|
|
-1, 374, -1, 376, -1, -1, 481, 482, 483, 484,
|
|
485, 486, 487, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 260, -1, -1, 263, -1, 40, -1, 267,
|
|
43, -1, 45, -1, 407, 426, -1, -1, 276, -1,
|
|
-1, -1, -1, 434, -1, 58, -1, -1, -1, -1,
|
|
63, 424, 290, 444, -1, -1, -1, -1, 296, 297,
|
|
-1, -1, -1, -1, -1, -1, -1, 458, 459, 460,
|
|
461, 462, 463, 446, -1, 267, -1, -1, -1, -1,
|
|
-1, 472, -1, -1, 276, -1, -1, -1, 461, 327,
|
|
481, 482, 483, 484, 485, 486, 487, -1, 290, -1,
|
|
-1, -1, -1, -1, 296, 297, -1, -1, 481, 482,
|
|
-1, 267, -1, -1, -1, -1, -1, 355, 356, -1,
|
|
276, -1, -1, -1, -1, 40, 41, -1, 43, 367,
|
|
45, -1, -1, 371, 290, 327, -1, -1, -1, -1,
|
|
296, 297, -1, 58, -1, -1, -1, -1, 63, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 353, -1, 355, 356, -1, -1, -1, -1, -1,
|
|
-1, 327, 267, -1, -1, 367, -1, -1, -1, 371,
|
|
40, 276, -1, 43, -1, 45, -1, -1, 426, -1,
|
|
-1, -1, -1, -1, -1, 290, 434, 353, 58, 355,
|
|
356, 296, 297, 63, -1, -1, 444, -1, -1, -1,
|
|
-1, 367, -1, -1, -1, 371, -1, -1, -1, -1,
|
|
458, 459, 460, 461, 462, 463, -1, -1, -1, -1,
|
|
-1, -1, 327, -1, 472, -1, -1, -1, -1, -1,
|
|
-1, -1, 434, 481, 482, 483, 484, 485, 486, 487,
|
|
-1, -1, 444, -1, 267, -1, -1, -1, -1, -1,
|
|
355, 356, -1, 276, -1, -1, 458, 459, 460, 461,
|
|
462, 463, 367, -1, -1, -1, 371, 290, 434, -1,
|
|
472, -1, -1, 296, 297, -1, -1, -1, 444, 481,
|
|
482, 483, 484, 485, 486, 487, -1, -1, -1, -1,
|
|
-1, -1, 458, 459, 460, 461, 462, 463, -1, -1,
|
|
-1, -1, -1, -1, 327, -1, 472, -1, -1, -1,
|
|
-1, -1, -1, 418, -1, 481, 482, 483, 484, 485,
|
|
486, 487, -1, -1, -1, -1, -1, -1, -1, 434,
|
|
353, -1, 355, 356, -1, -1, -1, -1, -1, 444,
|
|
-1, -1, 267, -1, 367, -1, -1, -1, 371, -1,
|
|
-1, 276, -1, 458, 459, 460, 461, 462, 463, -1,
|
|
-1, -1, -1, -1, -1, 290, -1, 472, -1, -1,
|
|
40, 296, 297, 43, -1, 45, 481, 482, 483, 484,
|
|
485, 486, 487, -1, -1, -1, -1, -1, 58, -1,
|
|
-1, -1, -1, 63, -1, -1, -1, 267, -1, -1,
|
|
-1, -1, 327, -1, -1, 40, 276, -1, 43, -1,
|
|
45, 434, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
290, 444, -1, 58, -1, -1, 296, 297, 63, -1,
|
|
355, 356, -1, -1, -1, 458, 459, 460, 461, 462,
|
|
463, -1, 367, -1, -1, -1, 371, -1, -1, 472,
|
|
-1, -1, -1, -1, -1, -1, -1, 327, 481, 482,
|
|
483, 484, 485, 486, 487, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 261, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 355, 356, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, 367, 283, -1,
|
|
-1, 371, -1, -1, -1, -1, 291, -1, -1, 434,
|
|
-1, -1, -1, 298, -1, 300, -1, 302, -1, 444,
|
|
-1, -1, 307, -1, -1, -1, -1, -1, -1, 314,
|
|
-1, -1, -1, 458, 459, 460, 461, 462, 463, -1,
|
|
-1, -1, -1, 328, -1, -1, -1, 472, 40, -1,
|
|
-1, 43, -1, 45, 339, -1, 481, 482, 483, 484,
|
|
485, 486, 487, -1, 434, -1, 58, -1, -1, -1,
|
|
-1, 63, -1, -1, 444, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 455, -1, -1, 458, 459,
|
|
460, 461, 462, 463, -1, -1, -1, 267, -1, 273,
|
|
-1, -1, 472, 277, -1, -1, 276, -1, -1, -1,
|
|
-1, 481, 482, 483, 484, 485, 486, 487, 292, -1,
|
|
290, 406, 296, -1, -1, 299, 296, 297, 413, -1,
|
|
-1, 416, 267, 418, 419, -1, -1, -1, -1, -1,
|
|
-1, 276, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 290, -1, 327, 443, -1,
|
|
-1, 296, 297, 41, 42, 43, 340, 45, -1, 47,
|
|
-1, -1, 346, 347, 348, -1, 350, 351, 352, -1,
|
|
354, -1, 60, 61, 62, 355, 356, -1, -1, -1,
|
|
-1, -1, 327, -1, -1, -1, -1, 367, -1, -1,
|
|
374, 371, 376, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
355, 356, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 367, 407, -1, -1, 371, -1, 412, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
424, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 434, -1, -1, -1, -1, -1,
|
|
-1, -1, 446, -1, 444, 267, 42, 43, -1, 45,
|
|
-1, 47, -1, -1, 276, 455, -1, -1, 458, 459,
|
|
460, 461, 462, 463, 60, 61, 62, -1, 290, 434,
|
|
-1, -1, 472, -1, 296, 297, -1, 481, 482, 444,
|
|
-1, 481, 482, 483, 484, 485, 486, 487, -1, -1,
|
|
-1, -1, -1, 458, 459, 460, 461, 462, 463, -1,
|
|
-1, -1, -1, -1, -1, 327, -1, 472, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 481, 482, 483, 484,
|
|
485, 486, 487, -1, 273, -1, -1, -1, 277, -1,
|
|
-1, -1, -1, 355, 356, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, 292, -1, 367, -1, 296, -1, 371,
|
|
299, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 272, -1, -1, -1, -1, -1,
|
|
-1, -1, 280, -1, -1, -1, -1, -1, 286, -1,
|
|
-1, 289, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 340, -1, -1, -1, -1, -1, 346, 347, 348,
|
|
-1, 350, 351, 352, -1, 354, -1, -1, -1, -1,
|
|
-1, -1, 434, -1, -1, -1, -1, 325, -1, -1,
|
|
-1, -1, 444, -1, -1, 374, 334, 376, -1, -1,
|
|
-1, -1, -1, -1, 342, -1, 458, 459, 460, 461,
|
|
462, 463, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
472, -1, -1, 361, -1, 363, -1, -1, 407, 481,
|
|
482, 483, 484, 485, 486, 487, -1, -1, -1, 377,
|
|
-1, 379, 380, 381, -1, 424, 272, -1, -1, -1,
|
|
-1, -1, -1, -1, 280, 273, -1, -1, -1, 277,
|
|
286, -1, -1, 289, -1, -1, -1, 446, -1, -1,
|
|
-1, 273, -1, -1, -1, 277, -1, -1, 296, -1,
|
|
-1, 299, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
292, -1, 430, -1, 296, -1, -1, 299, -1, 325,
|
|
-1, -1, 481, 482, -1, -1, -1, -1, 334, -1,
|
|
-1, -1, -1, -1, -1, -1, 342, 273, -1, -1,
|
|
-1, 277, 340, -1, -1, -1, -1, -1, 346, 347,
|
|
348, -1, 350, 351, 352, 361, 354, 363, 340, -1,
|
|
296, -1, -1, 299, 346, 347, 348, -1, 350, 351,
|
|
352, 377, 354, 379, 380, 381, 374, -1, 376, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, 271,
|
|
-1, -1, 374, -1, 376, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, 340, -1, -1, -1, -1, 407,
|
|
346, 347, 348, -1, 350, 351, 352, -1, 354, -1,
|
|
302, -1, -1, -1, 430, 407, 424, 309, -1, -1,
|
|
271, 313, 314, -1, 316, -1, -1, 319, 374, -1,
|
|
376, -1, 424, -1, -1, -1, -1, -1, 446, -1,
|
|
-1, 333, -1, -1, -1, -1, -1, 339, -1, -1,
|
|
-1, 302, -1, 461, 446, -1, -1, -1, 309, -1,
|
|
-1, 407, 313, 314, -1, 316, -1, -1, 319, -1,
|
|
-1, -1, -1, 481, 482, -1, -1, -1, 424, -1,
|
|
-1, -1, 333, -1, -1, -1, -1, -1, 339, 481,
|
|
482, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
446, -1, -1, -1, -1, -1, -1, 399, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, -1, 418, -1, -1, -1,
|
|
-1, -1, -1, -1, -1, 481, 482, -1, -1, -1,
|
|
-1, 433, -1, -1, -1, -1, -1, -1, 399, -1,
|
|
-1, 443, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
452, -1, 454, -1, -1, -1, -1, 418, -1, 461,
|
|
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 433, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, -1, 443, -1, -1, -1, -1, -1, -1, -1,
|
|
-1, 452, -1, 454, -1, -1, -1, -1, -1, -1,
|
|
461,
|
|
};
|
|
#define YYFINAL 17
|
|
#ifndef YYDEBUG
|
|
#define YYDEBUG 0
|
|
#endif
|
|
#define YYMAXTOKEN 490
|
|
#if YYDEBUG
|
|
char *yyname[] = {
|
|
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,0,0,0,0,0,
|
|
"':'","';'","'<'","'='","'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"ACTIVE","ADD","AFTER","ALL","ALTER","AND","ANY",
|
|
"AS","ASC","AT","AVG","AUTO","BASENAME","BEFORE","BEGIN","BETWEEN","BLOB","BY",
|
|
"CACHE","CAST","CHARACTER","CHECK","CHECK_POINT_LEN","COLLATE","COLLATION",
|
|
"COMMA","COMMIT","COMMITTED","COMPUTED","CONCATENATE","CONDITIONAL",
|
|
"CONSTRAINT","CONTAINING","COUNT","CREATE","CSTRING","CURRENT","CURSOR",
|
|
"DATABASE","DATE","DB_KEY","DEBUG","DECIMAL","DECLARE","DEFAULT","DELETE",
|
|
"DESC","DISTINCT","DO","DOMAIN","DROP","ELSE","END","ENTRY_POINT","EQL",
|
|
"ESCAPE","EXCEPTION","EXECUTE","EXISTS","EXIT","EXTERNAL","FILTER","FOR",
|
|
"FOREIGN","FROM","FULL","FUNCTION","GDSCODE","GEQ","GENERATOR","GEN_ID","GRANT",
|
|
"GROUP","GROUP_COMMIT_WAIT","GTR","HAVING","IF","IN","INACTIVE","INNER",
|
|
"INPUT_TYPE","INDEX","INSERT","INTEGER","INTO","IS","ISOLATION","JOIN","KEY",
|
|
"KW_CHAR","KW_DEC","KW_DOUBLE","KW_FILE","KW_FLOAT","KW_INT","KW_LONG",
|
|
"KW_NULL","KW_NUMERIC","KW_UPPER","KW_VALUE","LENGTH","LOGFILE","LPAREN","LEFT",
|
|
"LEQ","LEVEL","LIKE","LOG_BUF_SIZE","LSS","MANUAL","MAXIMUM","MAX_SEGMENT",
|
|
"MERGE","MESSAGE","MINIMUM","MODULE_NAME","NAMES","NATIONAL","NATURAL","NCHAR",
|
|
"NEQ","NO","NOT","NOT_GTR","NOT_LSS","NUM_LOG_BUFS","OF","ON","ONLY","OPTION",
|
|
"OR","ORDER","OUTER","OUTPUT_TYPE","OVERFLOW","PAGE","PAGES","PAGE_SIZE",
|
|
"PARAMETER","PASSWORD","PLAN","POSITION","POST_EVENT","PRECISION","PRIMARY",
|
|
"PRIVILEGES","PROCEDURE","PROTECTED","RAW_PARTITIONS","READ","REAL",
|
|
"REFERENCES","RESERVING","RETAIN","RETURNING_VALUES","RETURNS","REVOKE","RIGHT",
|
|
"RPAREN","ROLLBACK","SEGMENT","SELECT","SET","SHADOW","SHARED","SINGULAR",
|
|
"SIZE","SMALLINT","SNAPSHOT","SOME","SORT","SQLCODE","STABILITY","STARTING",
|
|
"STATISTICS","SUB_TYPE","SUSPEND","SUM","TABLE","THEN","TO","TRANSACTION",
|
|
"TRIGGER","UNCOMMITTED","UNION","UNIQUE","UPDATE","USER","VALUES","VARCHAR",
|
|
"VARIABLE","VARYING","VERSION","VIEW","WAIT","WHEN","WHERE","WHILE","WITH",
|
|
"WORK","WRITE","FLOAT","NUMBER","NUMERIC","SYMBOL","STRING","INTRODUCER",
|
|
"ACTION","ADMIN","CASCADE","FREE_IT","RESTRICT","ROLE","COLUMN","TYPE",
|
|
"EXTRACT","YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","WEEKDAY","YEARDAY",
|
|
"TIME","TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP",
|
|
"NUMBER64BIT","SCALEDINT","LIMIT","INT64","SUBSTRING",
|
|
};
|
|
char *yyrule[] = {
|
|
"$accept : top",
|
|
"top : statement",
|
|
"top : statement ';'",
|
|
"statement : alter",
|
|
"statement : blob",
|
|
"statement : commit",
|
|
"statement : create",
|
|
"statement : declare",
|
|
"statement : delete",
|
|
"statement : drop",
|
|
"statement : grant",
|
|
"statement : insert",
|
|
"statement : invoke_procedure",
|
|
"statement : revoke",
|
|
"statement : rollback",
|
|
"statement : select",
|
|
"statement : set",
|
|
"statement : update",
|
|
"statement : DEBUG signed_short_integer",
|
|
"grant : GRANT privileges ON prot_table_name TO user_grantee_list grant_option",
|
|
"grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO user_grantee_list grant_option",
|
|
"grant : GRANT privileges ON prot_table_name TO grantee_list",
|
|
"grant : GRANT proc_privileges ON PROCEDURE simple_proc_name TO grantee_list",
|
|
"grant : GRANT role_name_list TO role_grantee_list role_admin_option",
|
|
"prot_table_name : simple_table_name",
|
|
"prot_table_name : TABLE simple_table_name",
|
|
"privileges : ALL",
|
|
"privileges : ALL PRIVILEGES",
|
|
"privileges : privilege_list",
|
|
"privilege_list : privilege",
|
|
"privilege_list : privilege_list ',' privilege",
|
|
"proc_privileges : EXECUTE",
|
|
"privilege : SELECT",
|
|
"privilege : INSERT",
|
|
"privilege : DELETE",
|
|
"privilege : UPDATE column_parens_opt",
|
|
"privilege : REFERENCES column_parens_opt",
|
|
"grant_option : WITH GRANT OPTION",
|
|
"grant_option :",
|
|
"role_admin_option : WITH ADMIN OPTION",
|
|
"role_admin_option :",
|
|
"simple_proc_name : symbol_procedure_name",
|
|
"revoke : REVOKE rev_grant_option privileges ON prot_table_name FROM user_grantee_list",
|
|
"revoke : REVOKE rev_grant_option proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list",
|
|
"revoke : REVOKE privileges ON prot_table_name FROM user_grantee_list",
|
|
"revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM user_grantee_list",
|
|
"revoke : REVOKE privileges ON prot_table_name FROM grantee_list",
|
|
"revoke : REVOKE proc_privileges ON PROCEDURE simple_proc_name FROM grantee_list",
|
|
"revoke : REVOKE role_name_list FROM role_grantee_list",
|
|
"rev_grant_option : GRANT OPTION FOR",
|
|
"grantee_list : grantee",
|
|
"grantee_list : grantee_list ',' grantee",
|
|
"grantee_list : grantee_list ',' user_grantee",
|
|
"grantee_list : user_grantee_list ',' grantee",
|
|
"grantee : PROCEDURE symbol_procedure_name",
|
|
"grantee : TRIGGER symbol_trigger_name",
|
|
"grantee : VIEW symbol_view_name",
|
|
"user_grantee_list : user_grantee",
|
|
"user_grantee_list : user_grantee_list ',' user_grantee",
|
|
"user_grantee : symbol_user_name",
|
|
"user_grantee : USER symbol_user_name",
|
|
"user_grantee : GROUP symbol_user_name",
|
|
"role_name_list : role_name",
|
|
"role_name_list : role_name_list ',' role_name",
|
|
"role_name : symbol_role_name",
|
|
"role_grantee_list : role_grantee",
|
|
"role_grantee_list : role_grantee_list ',' role_grantee",
|
|
"role_grantee : symbol_user_name",
|
|
"role_grantee : USER symbol_user_name",
|
|
"declare : DECLARE declare_clause",
|
|
"declare_clause : FILTER filter_decl_clause",
|
|
"declare_clause : EXTERNAL FUNCTION udf_decl_clause",
|
|
"udf_decl_clause : symbol_UDF_name arg_desc_list1 RETURNS return_value1 ENTRY_POINT sql_string MODULE_NAME sql_string",
|
|
"udf_data_type : simple_type",
|
|
"udf_data_type : BLOB",
|
|
"udf_data_type : CSTRING '(' pos_short_integer ')' charset_clause",
|
|
"arg_desc_list1 :",
|
|
"arg_desc_list1 : arg_desc_list",
|
|
"arg_desc_list1 : '(' arg_desc_list ')'",
|
|
"arg_desc_list : arg_desc",
|
|
"arg_desc_list : arg_desc_list ',' arg_desc",
|
|
"arg_desc : init_data_type udf_data_type",
|
|
"return_value1 : return_value",
|
|
"return_value1 : '(' return_value ')'",
|
|
"return_value : init_data_type udf_data_type",
|
|
"return_value : init_data_type udf_data_type FREE_IT",
|
|
"return_value : init_data_type udf_data_type BY KW_VALUE",
|
|
"return_value : PARAMETER pos_short_integer",
|
|
"filter_decl_clause : symbol_filter_name INPUT_TYPE blob_subtype OUTPUT_TYPE blob_subtype ENTRY_POINT sql_string MODULE_NAME sql_string",
|
|
"create : CREATE create_clause",
|
|
"create_clause : EXCEPTION symbol_exception_name sql_string",
|
|
"create_clause : unique_opt order_direction INDEX symbol_index_name ON simple_table_name index_definition",
|
|
"create_clause : PROCEDURE procedure_clause",
|
|
"create_clause : TABLE table_clause",
|
|
"create_clause : TRIGGER def_trigger_clause",
|
|
"create_clause : VIEW view_clause",
|
|
"create_clause : GENERATOR generator_clause",
|
|
"create_clause : DATABASE db_clause",
|
|
"create_clause : DOMAIN domain_clause",
|
|
"create_clause : SHADOW shadow_clause",
|
|
"create_clause : ROLE role_clause",
|
|
"unique_opt : UNIQUE",
|
|
"unique_opt :",
|
|
"index_definition : column_list",
|
|
"index_definition : column_parens",
|
|
"index_definition : computed_by '(' begin_trigger value end_trigger ')'",
|
|
"shadow_clause : pos_short_integer manual_auto conditional sql_string first_file_length sec_shadow_files",
|
|
"manual_auto : MANUAL",
|
|
"manual_auto : AUTO",
|
|
"manual_auto :",
|
|
"conditional :",
|
|
"conditional : CONDITIONAL",
|
|
"first_file_length :",
|
|
"first_file_length : LENGTH equals long_integer page_noise",
|
|
"sec_shadow_files :",
|
|
"sec_shadow_files : db_file_list",
|
|
"db_file_list : db_file",
|
|
"db_file_list : db_file_list db_file",
|
|
"domain_clause : column_def_name as_opt data_type begin_trigger domain_default_opt end_trigger domain_constraint_clause collate_clause",
|
|
"as_opt : AS",
|
|
"as_opt :",
|
|
"domain_default_opt : DEFAULT begin_trigger default_value",
|
|
"domain_default_opt :",
|
|
"domain_constraint_clause :",
|
|
"domain_constraint_clause : domain_constraint_list",
|
|
"domain_constraint_list : domain_constraint_def",
|
|
"domain_constraint_list : domain_constraint_list domain_constraint_def",
|
|
"domain_constraint_def : domain_constraint",
|
|
"domain_constraint : null_constraint",
|
|
"domain_constraint : domain_check_constraint",
|
|
"null_constraint : NOT KW_NULL",
|
|
"domain_check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger",
|
|
"generator_clause : symbol_generator_name",
|
|
"role_clause : symbol_role_name",
|
|
"db_clause : db_name db_initial_desc1 db_rem_desc1",
|
|
"equals :",
|
|
"equals : '='",
|
|
"db_name : sql_string",
|
|
"db_initial_desc1 :",
|
|
"db_initial_desc1 : db_initial_desc",
|
|
"db_initial_desc : db_initial_option",
|
|
"db_initial_desc : db_initial_desc db_initial_option",
|
|
"db_initial_option : PAGE_SIZE equals pos_short_integer",
|
|
"db_initial_option : LENGTH equals long_integer page_noise",
|
|
"db_initial_option : USER sql_string",
|
|
"db_initial_option : PASSWORD sql_string",
|
|
"db_initial_option : SET NAMES sql_string",
|
|
"db_rem_desc1 :",
|
|
"db_rem_desc1 : db_rem_desc",
|
|
"db_rem_desc : db_rem_option",
|
|
"db_rem_desc : db_rem_desc db_rem_option",
|
|
"db_rem_option : db_file",
|
|
"db_rem_option : db_log",
|
|
"db_rem_option : db_log_option",
|
|
"db_rem_option : DEFAULT CHARACTER SET symbol_character_set_name",
|
|
"db_log_option : GROUP_COMMIT_WAIT equals long_integer",
|
|
"db_log_option : CHECK_POINT_LEN equals long_integer",
|
|
"db_log_option : NUM_LOG_BUFS equals pos_short_integer",
|
|
"db_log_option : LOG_BUF_SIZE equals unsigned_short_integer",
|
|
"db_log : db_default_log_spec",
|
|
"db_log : db_rem_log_spec",
|
|
"db_rem_log_spec : LOGFILE '(' logfiles ')' OVERFLOW logfile_desc",
|
|
"db_rem_log_spec : LOGFILE BASENAME logfile_desc",
|
|
"db_default_log_spec : LOGFILE",
|
|
"db_file : file1 sql_string file_desc1",
|
|
"logfiles : logfile_desc",
|
|
"logfiles : logfiles ',' logfile_desc",
|
|
"logfile_desc : logfile_name logfile_attrs",
|
|
"logfile_name : sql_string",
|
|
"logfile_attrs :",
|
|
"logfile_attrs : logfile_attrs logfile_attr",
|
|
"logfile_attr : SIZE equals long_integer",
|
|
"file1 : KW_FILE",
|
|
"file_desc1 :",
|
|
"file_desc1 : file_desc",
|
|
"file_desc : file_clause",
|
|
"file_desc : file_desc file_clause",
|
|
"file_clause : STARTING file_clause_noise long_integer",
|
|
"file_clause : LENGTH equals long_integer page_noise",
|
|
"file_clause_noise :",
|
|
"file_clause_noise : AT",
|
|
"file_clause_noise : AT PAGE",
|
|
"page_noise :",
|
|
"page_noise : PAGE",
|
|
"page_noise : PAGES",
|
|
"table_clause : simple_table_name external_file '(' table_elements ')'",
|
|
"external_file : EXTERNAL KW_FILE sql_string",
|
|
"external_file : EXTERNAL sql_string",
|
|
"external_file :",
|
|
"table_elements : table_element",
|
|
"table_elements : table_elements ',' table_element",
|
|
"table_element : column_def",
|
|
"table_element : table_constraint_definition",
|
|
"column_def : column_def_name data_type_or_domain default_opt end_trigger column_constraint_clause collate_clause",
|
|
"column_def : column_def_name non_array_type def_computed",
|
|
"column_def : column_def_name def_computed",
|
|
"def_computed : computed_by '(' begin_trigger value end_trigger ')'",
|
|
"computed_by : COMPUTED BY",
|
|
"computed_by : COMPUTED",
|
|
"data_type_or_domain : data_type begin_trigger",
|
|
"data_type_or_domain : simple_column_name begin_string",
|
|
"collate_clause : COLLATE symbol_collation_name",
|
|
"collate_clause :",
|
|
"column_def_name : column_name",
|
|
"simple_column_def_name : simple_column_name",
|
|
"data_type_descriptor : init_data_type data_type",
|
|
"init_data_type :",
|
|
"default_opt : DEFAULT default_value",
|
|
"default_opt :",
|
|
"default_value : constant",
|
|
"default_value : USER",
|
|
"default_value : null_value",
|
|
"default_value : datetime_value_expression",
|
|
"column_constraint_clause :",
|
|
"column_constraint_clause : column_constraint_list",
|
|
"column_constraint_list : column_constraint_def",
|
|
"column_constraint_list : column_constraint_list column_constraint_def",
|
|
"column_constraint_def : constraint_name_opt column_constraint",
|
|
"column_constraint : NOT KW_NULL",
|
|
"column_constraint : REFERENCES simple_table_name column_parens_opt referential_trigger_action",
|
|
"column_constraint : check_constraint",
|
|
"column_constraint : UNIQUE",
|
|
"column_constraint : PRIMARY KEY",
|
|
"table_constraint_definition : constraint_name_opt table_constraint",
|
|
"constraint_name_opt : CONSTRAINT symbol_constraint_name",
|
|
"constraint_name_opt :",
|
|
"table_constraint : unique_constraint",
|
|
"table_constraint : primary_constraint",
|
|
"table_constraint : referential_constraint",
|
|
"table_constraint : check_constraint",
|
|
"unique_constraint : UNIQUE column_parens",
|
|
"primary_constraint : PRIMARY KEY column_parens",
|
|
"referential_constraint : FOREIGN KEY column_parens REFERENCES simple_table_name column_parens_opt referential_trigger_action",
|
|
"check_constraint : begin_trigger CHECK '(' search_condition ')' end_trigger",
|
|
"referential_trigger_action : update_rule",
|
|
"referential_trigger_action : delete_rule",
|
|
"referential_trigger_action : delete_rule update_rule",
|
|
"referential_trigger_action : update_rule delete_rule",
|
|
"referential_trigger_action :",
|
|
"update_rule : ON UPDATE referential_action",
|
|
"delete_rule : ON DELETE referential_action",
|
|
"referential_action : CASCADE",
|
|
"referential_action : SET DEFAULT",
|
|
"referential_action : SET KW_NULL",
|
|
"referential_action : NO ACTION",
|
|
"procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger",
|
|
"alter_procedure_clause : symbol_procedure_name input_parameters output_parameters AS begin_string var_declaration_list full_proc_block end_trigger",
|
|
"input_parameters : '(' proc_parameters ')'",
|
|
"input_parameters :",
|
|
"output_parameters : RETURNS input_parameters",
|
|
"output_parameters :",
|
|
"proc_parameters : proc_parameter",
|
|
"proc_parameters : proc_parameters ',' proc_parameter",
|
|
"proc_parameter : simple_column_def_name non_array_type",
|
|
"var_declaration_list : var_declarations",
|
|
"var_declaration_list :",
|
|
"var_declarations : var_declaration",
|
|
"var_declarations : var_declarations var_declaration",
|
|
"var_declaration : DECLARE VARIABLE column_def_name non_array_type ';'",
|
|
"proc_block : proc_statement",
|
|
"proc_block : full_proc_block",
|
|
"full_proc_block : BEGIN proc_statements END",
|
|
"full_proc_block : BEGIN proc_statements excp_statements END",
|
|
"proc_statements : proc_block",
|
|
"proc_statements : proc_statements proc_block",
|
|
"proc_statement : assignment ';'",
|
|
"proc_statement : delete ';'",
|
|
"proc_statement : EXCEPTION symbol_exception_name ';'",
|
|
"proc_statement : exec_procedure",
|
|
"proc_statement : for_select",
|
|
"proc_statement : if_then_else",
|
|
"proc_statement : insert ';'",
|
|
"proc_statement : POST_EVENT value ';'",
|
|
"proc_statement : singleton_select",
|
|
"proc_statement : update ';'",
|
|
"proc_statement : while",
|
|
"proc_statement : SUSPEND ';'",
|
|
"proc_statement : EXIT ';'",
|
|
"exec_procedure : EXECUTE PROCEDURE symbol_procedure_name proc_inputs proc_outputs ';'",
|
|
"for_select : FOR select INTO variable_list cursor_def DO proc_block",
|
|
"if_then_else : IF '(' search_condition ')' THEN proc_block ELSE proc_block",
|
|
"if_then_else : IF '(' search_condition ')' THEN proc_block",
|
|
"singleton_select : select INTO variable_list ';'",
|
|
"variable : ':' symbol_variable_name",
|
|
"proc_inputs : var_const_list",
|
|
"proc_inputs : '(' var_const_list ')'",
|
|
"proc_inputs :",
|
|
"proc_outputs : RETURNING_VALUES variable_list",
|
|
"proc_outputs : RETURNING_VALUES '(' variable_list ')'",
|
|
"proc_outputs :",
|
|
"var_const_list : variable",
|
|
"var_const_list : constant",
|
|
"var_const_list : column_name",
|
|
"var_const_list : null_value",
|
|
"var_const_list : var_const_list ',' variable",
|
|
"var_const_list : var_const_list ',' constant",
|
|
"var_const_list : var_const_list ',' column_name",
|
|
"var_const_list : var_const_list ',' null_value",
|
|
"variable_list : variable",
|
|
"variable_list : column_name",
|
|
"variable_list : variable_list ',' column_name",
|
|
"variable_list : variable_list ',' variable",
|
|
"while : WHILE '(' search_condition ')' DO proc_block",
|
|
"cursor_def : AS CURSOR symbol_cursor_name",
|
|
"cursor_def :",
|
|
"excp_statements : excp_statement",
|
|
"excp_statements : excp_statements excp_statement",
|
|
"excp_statement : WHEN errors DO proc_block",
|
|
"errors : err",
|
|
"errors : errors ',' err",
|
|
"err : SQLCODE signed_short_integer",
|
|
"err : GDSCODE symbol_gdscode_name",
|
|
"err : EXCEPTION symbol_exception_name",
|
|
"err : ANY",
|
|
"invoke_procedure : EXECUTE PROCEDURE symbol_procedure_name prc_inputs",
|
|
"prc_inputs : prm_const_list",
|
|
"prc_inputs : '(' prm_const_list ')'",
|
|
"prc_inputs :",
|
|
"prm_const_list : parameter",
|
|
"prm_const_list : constant",
|
|
"prm_const_list : null_value",
|
|
"prm_const_list : prm_const_list ',' parameter",
|
|
"prm_const_list : prm_const_list ',' constant",
|
|
"prm_const_list : prm_const_list ',' null_value",
|
|
"view_clause : symbol_view_name column_parens_opt AS begin_string union_view check_opt end_string",
|
|
"union_view : union_view_expr",
|
|
"union_view_expr : select_view_expr",
|
|
"union_view_expr : union_view_expr UNION select_view_expr",
|
|
"union_view_expr : union_view_expr UNION ALL select_view_expr",
|
|
"select_view_expr : SELECT distinct_clause select_list from_view_clause where_clause group_clause having_clause plan_clause",
|
|
"from_view_clause : FROM from_view_list",
|
|
"from_view_list : view_table",
|
|
"from_view_list : from_view_list ',' view_table",
|
|
"view_table : joined_view_table",
|
|
"view_table : table_name",
|
|
"joined_view_table : view_table join_type JOIN view_table ON search_condition",
|
|
"joined_view_table : '(' joined_view_table ')'",
|
|
"begin_string :",
|
|
"end_string :",
|
|
"begin_trigger :",
|
|
"end_trigger :",
|
|
"check_opt : WITH CHECK OPTION",
|
|
"check_opt :",
|
|
"def_trigger_clause : symbol_trigger_name FOR simple_table_name trigger_active trigger_type trigger_position begin_trigger trigger_action end_trigger",
|
|
"trigger_active : ACTIVE",
|
|
"trigger_active : INACTIVE",
|
|
"trigger_active :",
|
|
"trigger_type : BEFORE INSERT",
|
|
"trigger_type : AFTER INSERT",
|
|
"trigger_type : BEFORE UPDATE",
|
|
"trigger_type : AFTER UPDATE",
|
|
"trigger_type : BEFORE DELETE",
|
|
"trigger_type : AFTER DELETE",
|
|
"trigger_position : POSITION nonneg_short_integer",
|
|
"trigger_position :",
|
|
"trigger_action : AS begin_trigger var_declaration_list full_proc_block",
|
|
"alter : ALTER alter_clause",
|
|
"alter_clause : EXCEPTION symbol_exception_name sql_string",
|
|
"alter_clause : TABLE simple_table_name alter_ops",
|
|
"alter_clause : TRIGGER alter_trigger_clause",
|
|
"alter_clause : PROCEDURE alter_procedure_clause",
|
|
"alter_clause : DATABASE init_alter_db alter_db",
|
|
"alter_clause : DOMAIN alter_column_name alter_domain_ops",
|
|
"alter_clause : INDEX alter_index_clause",
|
|
"alter_domain_ops : alter_domain_op",
|
|
"alter_domain_ops : alter_domain_ops alter_domain_op",
|
|
"alter_domain_op : SET begin_string default_opt end_trigger",
|
|
"alter_domain_op : ADD CONSTRAINT domain_check_constraint",
|
|
"alter_domain_op : ADD domain_check_constraint",
|
|
"alter_domain_op : DROP DEFAULT",
|
|
"alter_domain_op : DROP CONSTRAINT",
|
|
"alter_domain_op : TO simple_column_name",
|
|
"alter_domain_op : TYPE init_data_type non_array_type",
|
|
"alter_ops : alter_op",
|
|
"alter_ops : alter_ops ',' alter_op",
|
|
"alter_op : DROP simple_column_name drop_behaviour",
|
|
"alter_op : DROP CONSTRAINT symbol_constraint_name",
|
|
"alter_op : ADD column_def",
|
|
"alter_op : ADD table_constraint_definition",
|
|
"alter_op : col_opt simple_column_name POSITION nonneg_short_integer",
|
|
"alter_op : col_opt alter_column_name TO simple_column_name",
|
|
"alter_op : col_opt alter_col_name TYPE alter_data_type_or_domain end_trigger",
|
|
"alter_column_name : keyword_or_column",
|
|
"keyword_or_column : COLUMN",
|
|
"keyword_or_column : TYPE",
|
|
"keyword_or_column : EXTRACT",
|
|
"keyword_or_column : YEAR",
|
|
"keyword_or_column : MONTH",
|
|
"keyword_or_column : DAY",
|
|
"keyword_or_column : HOUR",
|
|
"keyword_or_column : MINUTE",
|
|
"keyword_or_column : SECOND",
|
|
"keyword_or_column : WEEKDAY",
|
|
"keyword_or_column : YEARDAY",
|
|
"keyword_or_column : TIME",
|
|
"keyword_or_column : TIMESTAMP",
|
|
"keyword_or_column : CURRENT_DATE",
|
|
"keyword_or_column : CURRENT_TIME",
|
|
"keyword_or_column : CURRENT_TIMESTAMP",
|
|
"keyword_or_column : SYMBOL",
|
|
"col_opt : ALTER",
|
|
"col_opt : ALTER COLUMN",
|
|
"alter_data_type_or_domain : non_array_type begin_trigger",
|
|
"alter_data_type_or_domain : simple_column_name begin_string",
|
|
"alter_col_name : simple_column_name",
|
|
"drop_behaviour : RESTRICT",
|
|
"drop_behaviour : CASCADE",
|
|
"drop_behaviour :",
|
|
"alter_index_clause : symbol_index_name ACTIVE",
|
|
"alter_index_clause : symbol_index_name INACTIVE",
|
|
"init_alter_db :",
|
|
"alter_db : db_alter_clause",
|
|
"alter_db : alter_db db_alter_clause",
|
|
"db_alter_clause : ADD db_file_list",
|
|
"db_alter_clause : DROP LOGFILE",
|
|
"db_alter_clause : SET db_log_option_list",
|
|
"db_alter_clause : ADD db_log",
|
|
"db_log_option_list : db_log_option",
|
|
"db_log_option_list : db_log_option_list ',' db_log_option",
|
|
"alter_trigger_clause : symbol_trigger_name trigger_active new_trigger_type trigger_position begin_trigger new_trigger_action end_trigger",
|
|
"new_trigger_type : trigger_type",
|
|
"new_trigger_type :",
|
|
"new_trigger_action : trigger_action",
|
|
"new_trigger_action :",
|
|
"drop : DROP drop_clause",
|
|
"drop_clause : EXCEPTION symbol_exception_name",
|
|
"drop_clause : INDEX symbol_index_name",
|
|
"drop_clause : PROCEDURE symbol_procedure_name",
|
|
"drop_clause : TABLE symbol_table_name",
|
|
"drop_clause : TRIGGER symbol_trigger_name",
|
|
"drop_clause : VIEW symbol_view_name",
|
|
"drop_clause : FILTER symbol_filter_name",
|
|
"drop_clause : DOMAIN symbol_domain_name",
|
|
"drop_clause : EXTERNAL FUNCTION symbol_UDF_name",
|
|
"drop_clause : SHADOW pos_short_integer",
|
|
"drop_clause : ROLE symbol_role_name",
|
|
"data_type : non_array_type",
|
|
"data_type : array_type",
|
|
"non_array_type : simple_type",
|
|
"non_array_type : blob_type",
|
|
"array_type : non_charset_simple_type '[' array_spec ']'",
|
|
"array_type : character_type '[' array_spec ']' charset_clause",
|
|
"array_spec : array_range",
|
|
"array_spec : array_spec ',' array_range",
|
|
"array_range : signed_long_integer",
|
|
"array_range : signed_long_integer ':' signed_long_integer",
|
|
"simple_type : non_charset_simple_type",
|
|
"simple_type : character_type charset_clause",
|
|
"non_charset_simple_type : national_character_type",
|
|
"non_charset_simple_type : numeric_type",
|
|
"non_charset_simple_type : float_type",
|
|
"non_charset_simple_type : integer_keyword",
|
|
"non_charset_simple_type : SMALLINT",
|
|
"non_charset_simple_type : DATE",
|
|
"non_charset_simple_type : TIME",
|
|
"non_charset_simple_type : TIMESTAMP",
|
|
"integer_keyword : INTEGER",
|
|
"integer_keyword : KW_INT",
|
|
"blob_type : BLOB blob_subtype blob_segsize charset_clause",
|
|
"blob_type : BLOB '(' unsigned_short_integer ')'",
|
|
"blob_type : BLOB '(' unsigned_short_integer ',' signed_short_integer ')'",
|
|
"blob_type : BLOB '(' ',' signed_short_integer ')'",
|
|
"blob_segsize : SEGMENT SIZE unsigned_short_integer",
|
|
"blob_segsize :",
|
|
"blob_subtype : SUB_TYPE signed_short_integer",
|
|
"blob_subtype : SUB_TYPE symbol_blob_subtype_name",
|
|
"blob_subtype :",
|
|
"charset_clause : CHARACTER SET symbol_character_set_name",
|
|
"charset_clause :",
|
|
"national_character_type : national_character_keyword '(' pos_short_integer ')'",
|
|
"national_character_type : national_character_keyword",
|
|
"national_character_type : national_character_keyword VARYING '(' pos_short_integer ')'",
|
|
"character_type : character_keyword '(' pos_short_integer ')'",
|
|
"character_type : character_keyword",
|
|
"character_type : varying_keyword '(' pos_short_integer ')'",
|
|
"varying_keyword : VARCHAR",
|
|
"varying_keyword : CHARACTER VARYING",
|
|
"varying_keyword : KW_CHAR VARYING",
|
|
"character_keyword : CHARACTER",
|
|
"character_keyword : KW_CHAR",
|
|
"national_character_keyword : NCHAR",
|
|
"national_character_keyword : NATIONAL CHARACTER",
|
|
"national_character_keyword : NATIONAL KW_CHAR",
|
|
"numeric_type : KW_NUMERIC prec_scale",
|
|
"numeric_type : decimal_keyword prec_scale",
|
|
"ordinal : pos_short_integer",
|
|
"prec_scale :",
|
|
"prec_scale : '(' signed_long_integer ')'",
|
|
"prec_scale : '(' signed_long_integer ',' signed_long_integer ')'",
|
|
"decimal_keyword : DECIMAL",
|
|
"decimal_keyword : KW_DEC",
|
|
"float_type : KW_FLOAT precision_opt",
|
|
"float_type : KW_LONG KW_FLOAT precision_opt",
|
|
"float_type : REAL",
|
|
"float_type : KW_DOUBLE PRECISION",
|
|
"precision_opt : '(' nonneg_short_integer ')'",
|
|
"precision_opt :",
|
|
"set : set_transaction",
|
|
"set : set_generator",
|
|
"set : set_statistics",
|
|
"set_generator : SET GENERATOR symbol_generator_name TO signed_long_integer",
|
|
"set_generator : SET GENERATOR symbol_generator_name TO NUMBER64BIT",
|
|
"set_generator : SET GENERATOR symbol_generator_name TO '-' NUMBER64BIT",
|
|
"commit : COMMIT optional_work optional_retain",
|
|
"rollback : ROLLBACK optional_work",
|
|
"optional_work : WORK",
|
|
"optional_work :",
|
|
"optional_retain : RETAIN opt_snapshot",
|
|
"optional_retain :",
|
|
"opt_snapshot : SNAPSHOT",
|
|
"opt_snapshot :",
|
|
"set_transaction : SET TRANSACTION tran_opt_list_m",
|
|
"tran_opt_list_m : tran_opt_list",
|
|
"tran_opt_list_m :",
|
|
"tran_opt_list : tran_opt",
|
|
"tran_opt_list : tran_opt_list tran_opt",
|
|
"tran_opt : access_mode",
|
|
"tran_opt : lock_wait",
|
|
"tran_opt : isolation_mode",
|
|
"tran_opt : tbl_reserve_options",
|
|
"access_mode : READ ONLY",
|
|
"access_mode : READ WRITE",
|
|
"lock_wait : WAIT",
|
|
"lock_wait : NO WAIT",
|
|
"isolation_mode : ISOLATION LEVEL iso_mode",
|
|
"isolation_mode : iso_mode",
|
|
"iso_mode : snap_shot",
|
|
"iso_mode : READ UNCOMMITTED version_mode",
|
|
"iso_mode : READ COMMITTED version_mode",
|
|
"snap_shot : SNAPSHOT",
|
|
"snap_shot : SNAPSHOT TABLE",
|
|
"snap_shot : SNAPSHOT TABLE STABILITY",
|
|
"version_mode : VERSION",
|
|
"version_mode : NO VERSION",
|
|
"version_mode :",
|
|
"tbl_reserve_options : RESERVING restr_list",
|
|
"lock_type : SHARED",
|
|
"lock_type : PROTECTED",
|
|
"lock_type :",
|
|
"lock_mode : READ",
|
|
"lock_mode : WRITE",
|
|
"restr_list : restr_option",
|
|
"restr_list : restr_list ',' restr_option",
|
|
"restr_option : table_list table_lock",
|
|
"table_lock : FOR lock_type lock_mode",
|
|
"table_lock :",
|
|
"table_list : simple_table_name",
|
|
"table_list : table_list ',' simple_table_name",
|
|
"set_statistics : SET STATISTICS INDEX symbol_index_name",
|
|
"select : union_expr order_clause for_update_clause",
|
|
"union_expr : select_expr",
|
|
"union_expr : union_expr UNION select_expr",
|
|
"union_expr : union_expr UNION ALL select_expr",
|
|
"order_clause : ORDER BY order_list",
|
|
"order_clause :",
|
|
"order_list : order_item",
|
|
"order_list : order_list ',' order_item",
|
|
"order_item : column_name collate_clause order_direction",
|
|
"order_item : ordinal collate_clause order_direction",
|
|
"order_direction : ASC",
|
|
"order_direction : DESC",
|
|
"order_direction :",
|
|
"for_update_clause : FOR UPDATE for_update_list",
|
|
"for_update_clause :",
|
|
"for_update_list : OF column_list",
|
|
"for_update_list :",
|
|
"select_expr : SELECT distinct_clause select_list from_clause where_clause group_clause having_clause limit_clause plan_clause",
|
|
"distinct_clause : DISTINCT",
|
|
"distinct_clause : all_noise",
|
|
"select_list : select_items",
|
|
"select_list : '*'",
|
|
"select_items : select_item",
|
|
"select_items : select_items ',' select_item",
|
|
"select_item : rhs",
|
|
"select_item : rhs symbol_item_alias_name",
|
|
"select_item : rhs AS symbol_item_alias_name",
|
|
"from_clause : FROM from_list",
|
|
"from_list : table_reference",
|
|
"from_list : from_list ',' table_reference",
|
|
"table_reference : joined_table",
|
|
"table_reference : table_proc",
|
|
"joined_table : table_reference join_type JOIN table_reference ON search_condition",
|
|
"joined_table : '(' joined_table ')'",
|
|
"table_proc : symbol_procedure_name proc_table_inputs symbol_table_alias_name",
|
|
"table_proc : symbol_procedure_name proc_table_inputs",
|
|
"proc_table_inputs : '(' null_or_value_list ')'",
|
|
"proc_table_inputs :",
|
|
"null_or_value_list : null_or_value",
|
|
"null_or_value_list : null_or_value_list ',' null_or_value",
|
|
"null_or_value : null_value",
|
|
"null_or_value : value",
|
|
"table_name : simple_table_name",
|
|
"table_name : symbol_table_name symbol_table_alias_name",
|
|
"simple_table_name : symbol_table_name",
|
|
"join_type : INNER",
|
|
"join_type : LEFT",
|
|
"join_type : LEFT OUTER",
|
|
"join_type : RIGHT",
|
|
"join_type : RIGHT OUTER",
|
|
"join_type : FULL",
|
|
"join_type : FULL OUTER",
|
|
"join_type :",
|
|
"group_clause : GROUP BY grp_column_list",
|
|
"group_clause :",
|
|
"grp_column_list : grp_column_elem",
|
|
"grp_column_list : grp_column_list ',' grp_column_elem",
|
|
"grp_column_elem : column_name",
|
|
"grp_column_elem : udf",
|
|
"grp_column_elem : column_name COLLATE symbol_collation_name",
|
|
"having_clause : HAVING search_condition",
|
|
"having_clause :",
|
|
"where_clause : WHERE search_condition",
|
|
"where_clause :",
|
|
"limit_clause : LIMIT limit_range",
|
|
"limit_clause :",
|
|
"limit_range : '(' long_integer ')'",
|
|
"limit_range : '(' long_integer ':' long_integer ')'",
|
|
"limit_range :",
|
|
"plan_clause : PLAN plan_expression",
|
|
"plan_clause :",
|
|
"plan_expression : plan_type '(' plan_item_list ')'",
|
|
"plan_type : JOIN",
|
|
"plan_type : SORT MERGE",
|
|
"plan_type : MERGE",
|
|
"plan_type : SORT",
|
|
"plan_type :",
|
|
"plan_item_list : plan_item",
|
|
"plan_item_list : plan_item ',' plan_item_list",
|
|
"plan_item : table_or_alias_list access_type",
|
|
"plan_item : plan_expression",
|
|
"table_or_alias_list : symbol_table_name",
|
|
"table_or_alias_list : symbol_table_name table_or_alias_list",
|
|
"access_type : NATURAL",
|
|
"access_type : INDEX '(' index_list ')'",
|
|
"access_type : ORDER symbol_index_name",
|
|
"index_list : symbol_index_name",
|
|
"index_list : symbol_index_name ',' index_list",
|
|
"insert : INSERT INTO simple_table_name column_parens_opt VALUES '(' insert_value_list ')'",
|
|
"insert : INSERT INTO simple_table_name column_parens_opt select_expr",
|
|
"insert_value_list : rhs",
|
|
"insert_value_list : insert_value_list ',' rhs",
|
|
"delete : delete_searched",
|
|
"delete : delete_positioned",
|
|
"delete_searched : DELETE FROM table_name where_clause",
|
|
"delete_positioned : DELETE FROM table_name cursor_clause",
|
|
"cursor_clause : WHERE CURRENT OF symbol_cursor_name",
|
|
"update : update_searched",
|
|
"update : update_positioned",
|
|
"update_searched : UPDATE table_name SET assignments where_clause",
|
|
"update_positioned : UPDATE table_name SET assignments cursor_clause",
|
|
"assignments : assignment",
|
|
"assignments : assignments ',' assignment",
|
|
"assignment : column_name '=' rhs",
|
|
"rhs : value",
|
|
"rhs : null_value",
|
|
"blob : READ BLOB simple_column_name FROM simple_table_name filter_clause segment_clause",
|
|
"blob : INSERT BLOB simple_column_name INTO simple_table_name filter_clause segment_clause",
|
|
"filter_clause : FILTER FROM blob_subtype_value TO blob_subtype_value",
|
|
"filter_clause : FILTER TO blob_subtype_value",
|
|
"filter_clause :",
|
|
"blob_subtype_value : blob_subtype",
|
|
"blob_subtype_value : parameter",
|
|
"blob_subtype : signed_short_integer",
|
|
"segment_clause : MAX_SEGMENT segment_length",
|
|
"segment_clause :",
|
|
"segment_length : unsigned_short_integer",
|
|
"segment_length : parameter",
|
|
"column_parens_opt : column_parens",
|
|
"column_parens_opt :",
|
|
"column_parens : '(' column_list ')'",
|
|
"column_list : column_name",
|
|
"column_list : column_list ',' column_name",
|
|
"column_name : simple_column_name",
|
|
"column_name : symbol_table_alias_name '.' symbol_column_name",
|
|
"column_name : symbol_table_alias_name '.' '*'",
|
|
"simple_column_name : symbol_column_name",
|
|
"search_condition : predicate",
|
|
"search_condition : search_condition OR search_condition",
|
|
"search_condition : search_condition AND search_condition",
|
|
"search_condition : NOT search_condition",
|
|
"predicate : comparison_predicate",
|
|
"predicate : between_predicate",
|
|
"predicate : like_predicate",
|
|
"predicate : in_predicate",
|
|
"predicate : null_predicate",
|
|
"predicate : quantified_predicate",
|
|
"predicate : exists_predicate",
|
|
"predicate : containing_predicate",
|
|
"predicate : starting_predicate",
|
|
"predicate : unique_predicate",
|
|
"predicate : '(' search_condition ')'",
|
|
"comparison_predicate : value '=' value",
|
|
"comparison_predicate : value '<' value",
|
|
"comparison_predicate : value '>' value",
|
|
"comparison_predicate : value GEQ value",
|
|
"comparison_predicate : value LEQ value",
|
|
"comparison_predicate : value NOT_GTR value",
|
|
"comparison_predicate : value NOT_LSS value",
|
|
"comparison_predicate : value NEQ value",
|
|
"quantified_predicate : value '=' ALL '(' column_select ')'",
|
|
"quantified_predicate : value '<' ALL '(' column_select ')'",
|
|
"quantified_predicate : value '>' ALL '(' column_select ')'",
|
|
"quantified_predicate : value GEQ ALL '(' column_select ')'",
|
|
"quantified_predicate : value LEQ ALL '(' column_select ')'",
|
|
"quantified_predicate : value NOT_GTR ALL '(' column_select ')'",
|
|
"quantified_predicate : value NOT_LSS ALL '(' column_select ')'",
|
|
"quantified_predicate : value NEQ ALL '(' column_select ')'",
|
|
"quantified_predicate : value '=' some '(' column_select ')'",
|
|
"quantified_predicate : value '<' some '(' column_select ')'",
|
|
"quantified_predicate : value '>' some '(' column_select ')'",
|
|
"quantified_predicate : value GEQ some '(' column_select ')'",
|
|
"quantified_predicate : value LEQ some '(' column_select ')'",
|
|
"quantified_predicate : value NOT_GTR some '(' column_select ')'",
|
|
"quantified_predicate : value NOT_LSS some '(' column_select ')'",
|
|
"quantified_predicate : value NEQ some '(' column_select ')'",
|
|
"some : SOME",
|
|
"some : ANY",
|
|
"between_predicate : value BETWEEN value AND value",
|
|
"between_predicate : value NOT BETWEEN value AND value",
|
|
"like_predicate : value LIKE value",
|
|
"like_predicate : value NOT LIKE value",
|
|
"like_predicate : value LIKE value ESCAPE value",
|
|
"like_predicate : value NOT LIKE value ESCAPE value",
|
|
"in_predicate : value IN scalar_set",
|
|
"in_predicate : value NOT IN scalar_set",
|
|
"containing_predicate : value CONTAINING value",
|
|
"containing_predicate : value NOT CONTAINING value",
|
|
"starting_predicate : value STARTING value",
|
|
"starting_predicate : value NOT STARTING value",
|
|
"starting_predicate : value STARTING WITH value",
|
|
"starting_predicate : value NOT STARTING WITH value",
|
|
"exists_predicate : EXISTS '(' select_expr ')'",
|
|
"unique_predicate : SINGULAR '(' select_expr ')'",
|
|
"null_predicate : value IS KW_NULL",
|
|
"null_predicate : value IS NOT KW_NULL",
|
|
"scalar_set : '(' constant_list ')'",
|
|
"scalar_set : '(' column_select ')'",
|
|
"column_select : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause",
|
|
"column_singleton : SELECT distinct_clause value from_clause where_clause group_clause having_clause plan_clause",
|
|
"value : column_name",
|
|
"value : array_element",
|
|
"value : function",
|
|
"value : u_constant",
|
|
"value : parameter",
|
|
"value : variable",
|
|
"value : udf",
|
|
"value : '-' value",
|
|
"value : '+' value",
|
|
"value : value '+' value",
|
|
"value : value CONCATENATE value",
|
|
"value : value COLLATE symbol_collation_name",
|
|
"value : value '-' value",
|
|
"value : value '*' value",
|
|
"value : value '/' value",
|
|
"value : '(' value ')'",
|
|
"value : '(' column_singleton ')'",
|
|
"value : USER",
|
|
"value : DB_KEY",
|
|
"value : symbol_table_alias_name '.' DB_KEY",
|
|
"value : KW_VALUE",
|
|
"value : datetime_value_expression",
|
|
"datetime_value_expression : CURRENT_DATE",
|
|
"datetime_value_expression : CURRENT_TIME",
|
|
"datetime_value_expression : CURRENT_TIMESTAMP",
|
|
"array_element : column_name '[' value_list ']'",
|
|
"value_list : value",
|
|
"value_list : value_list ',' value",
|
|
"constant : u_constant",
|
|
"constant : '-' u_numeric_constant",
|
|
"u_numeric_constant : NUMERIC",
|
|
"u_numeric_constant : NUMBER",
|
|
"u_numeric_constant : FLOAT",
|
|
"u_numeric_constant : NUMBER64BIT",
|
|
"u_numeric_constant : SCALEDINT",
|
|
"u_constant : u_numeric_constant",
|
|
"u_constant : sql_string",
|
|
"u_constant : DATE STRING",
|
|
"u_constant : TIME STRING",
|
|
"u_constant : TIMESTAMP STRING",
|
|
"constant_list : constant",
|
|
"constant_list : parameter",
|
|
"constant_list : current_user",
|
|
"constant_list : constant_list ',' constant",
|
|
"constant_list : constant_list ',' parameter",
|
|
"constant_list : constant_list ',' current_user",
|
|
"parameter : '?'",
|
|
"current_user : USER",
|
|
"sql_string : STRING",
|
|
"sql_string : INTRODUCER STRING",
|
|
"signed_short_integer : nonneg_short_integer",
|
|
"signed_short_integer : '-' neg_short_integer",
|
|
"nonneg_short_integer : NUMBER",
|
|
"neg_short_integer : NUMBER",
|
|
"pos_short_integer : nonneg_short_integer",
|
|
"unsigned_short_integer : NUMBER",
|
|
"signed_long_integer : long_integer",
|
|
"signed_long_integer : '-' long_integer",
|
|
"long_integer : NUMBER",
|
|
"function : COUNT '(' '*' ')'",
|
|
"function : COUNT '(' all_noise value ')'",
|
|
"function : COUNT '(' DISTINCT value ')'",
|
|
"function : SUM '(' all_noise value ')'",
|
|
"function : SUM '(' DISTINCT value ')'",
|
|
"function : AVG '(' all_noise value ')'",
|
|
"function : AVG '(' DISTINCT value ')'",
|
|
"function : MINIMUM '(' all_noise value ')'",
|
|
"function : MINIMUM '(' DISTINCT value ')'",
|
|
"function : MAXIMUM '(' all_noise value ')'",
|
|
"function : MAXIMUM '(' DISTINCT value ')'",
|
|
"function : CAST '(' rhs AS data_type_descriptor ')'",
|
|
"function : KW_UPPER '(' value ')'",
|
|
"function : GEN_ID '(' symbol_generator_name ',' value ')'",
|
|
"function : EXTRACT '(' timestamp_part FROM value ')'",
|
|
"udf : symbol_UDF_name '(' value_list ')'",
|
|
"udf : symbol_UDF_name '(' ')'",
|
|
"timestamp_part : YEAR",
|
|
"timestamp_part : MONTH",
|
|
"timestamp_part : DAY",
|
|
"timestamp_part : HOUR",
|
|
"timestamp_part : MINUTE",
|
|
"timestamp_part : SECOND",
|
|
"timestamp_part : WEEKDAY",
|
|
"timestamp_part : YEARDAY",
|
|
"all_noise : ALL",
|
|
"all_noise :",
|
|
"null_value : KW_NULL",
|
|
"symbol_UDF_name : SYMBOL",
|
|
"symbol_blob_subtype_name : SYMBOL",
|
|
"symbol_character_set_name : SYMBOL",
|
|
"symbol_collation_name : SYMBOL",
|
|
"symbol_column_name : SYMBOL",
|
|
"symbol_constraint_name : SYMBOL",
|
|
"symbol_cursor_name : SYMBOL",
|
|
"symbol_domain_name : SYMBOL",
|
|
"symbol_exception_name : SYMBOL",
|
|
"symbol_filter_name : SYMBOL",
|
|
"symbol_gdscode_name : SYMBOL",
|
|
"symbol_generator_name : SYMBOL",
|
|
"symbol_index_name : SYMBOL",
|
|
"symbol_item_alias_name : SYMBOL",
|
|
"symbol_procedure_name : SYMBOL",
|
|
"symbol_role_name : SYMBOL",
|
|
"symbol_table_alias_name : SYMBOL",
|
|
"symbol_table_name : SYMBOL",
|
|
"symbol_trigger_name : SYMBOL",
|
|
"symbol_user_name : SYMBOL",
|
|
"symbol_variable_name : SYMBOL",
|
|
"symbol_view_name : SYMBOL",
|
|
};
|
|
#endif
|
|
#ifndef YYSTYPE
|
|
typedef int YYSTYPE;
|
|
#endif
|
|
#ifdef YYSTACKSIZE
|
|
#undef YYMAXDEPTH
|
|
#define YYMAXDEPTH YYSTACKSIZE
|
|
#else
|
|
#ifdef YYMAXDEPTH
|
|
#define YYSTACKSIZE YYMAXDEPTH
|
|
#else
|
|
#define YYSTACKSIZE 500
|
|
#define YYMAXDEPTH 500
|
|
#endif
|
|
#endif
|
|
static int yydebug;
|
|
static int yynerrs;
|
|
#ifndef SHLIB_DEFS
|
|
int DSQL_yyerrflag;
|
|
#endif
|
|
#ifndef SHLIB_DEFS
|
|
int DSQL_yychar;
|
|
#endif
|
|
short *DSQL_DSQL_yyssp;
|
|
static YYSTYPE *yyvsp;
|
|
static YYSTYPE yyval;
|
|
static YYSTYPE yylval;
|
|
static short DSQL_yyss[YYSTACKSIZE];
|
|
static YYSTYPE yyvs[YYSTACKSIZE];
|
|
#define yystacksize YYSTACKSIZE
|
|
|
|
|
|
/*
|
|
* PROGRAM: Dynamic SQL runtime support
|
|
* MODULE: lex.c
|
|
* DESCRIPTION: Lexical routine
|
|
*
|
|
*/
|
|
|
|
#include "../dsql/chars.h"
|
|
|
|
#define MAX_TOKEN_LEN 256
|
|
#define CHECK_BOUND(to)\
|
|
{\
|
|
if ((to - string) >= MAX_TOKEN_LEN) \
|
|
yyabandon (-104, isc_token_too_long); \
|
|
}
|
|
#define CHECK_COPY_INCR(to,ch){CHECK_BOUND(to); *to++=ch;}
|
|
|
|
|
|
static TEXT *lex_position (void);
|
|
static BOOLEAN long_int (NOD, SLONG *);
|
|
static FLD make_field (NOD);
|
|
static FIL make_file (void);
|
|
static NOD make_list (NOD);
|
|
static NOD make_node (NOD_TYPE, int, ...);
|
|
static NOD make_flag_node (NOD_TYPE, SSHORT, int, ...);
|
|
static BOOLEAN short_int (NOD, SLONG *, SSHORT);
|
|
static void stack_nodes (NOD, LLS *);
|
|
static int yylex (USHORT, USHORT, USHORT, BOOLEAN *);
|
|
static void yyerror (TEXT *);
|
|
static void yyabandon (SSHORT, STATUS);
|
|
#ifndef WINDOWS_ONLY
|
|
static void check_log_file_attrs (void);
|
|
#endif
|
|
|
|
static TEXT *ptr, *end, *last_token, *line_start;
|
|
static SSHORT lines, att_charset;
|
|
|
|
typedef struct tok {
|
|
USHORT tok_ident;
|
|
CONST SCHAR *tok_string;
|
|
CONST USHORT tok_version;
|
|
} TOK;
|
|
|
|
static CONST TOK tokens [] = {
|
|
#include "../dsql/keywords.h"
|
|
{0, 0, 0}
|
|
};
|
|
|
|
|
|
void LEX_dsql_init (void)
|
|
{
|
|
/**************************************
|
|
*
|
|
* L E X _ d s q l _ i n i t
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Initialize LEX for processing. This is called only once
|
|
* per session.
|
|
*
|
|
**************************************/
|
|
CONST TOK *token;
|
|
|
|
for (token = tokens; token->tok_string; ++token)
|
|
{
|
|
SYM symbol;
|
|
STR str;
|
|
|
|
symbol = (SYM) ALLOCPV (type_sym, 0);
|
|
symbol->sym_string = (TEXT *) token->tok_string;
|
|
symbol->sym_length = strlen (token->tok_string);
|
|
symbol->sym_type = SYM_keyword;
|
|
symbol->sym_keyword = token->tok_ident;
|
|
symbol->sym_version = token->tok_version;
|
|
str = (STR) ALLOCPV (type_str, symbol->sym_length);
|
|
str->str_length = symbol->sym_length;
|
|
strncpy ((char*)str->str_data, (char*)symbol->sym_string, symbol->sym_length);
|
|
symbol->sym_object = (void *) str;
|
|
HSHD_insert (symbol);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void LEX_string (
|
|
TEXT *string,
|
|
USHORT length,
|
|
SSHORT character_set)
|
|
{
|
|
/**************************************
|
|
*
|
|
* L E X _ s t r i n g
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Initialize LEX to process a string.
|
|
*
|
|
**************************************/
|
|
|
|
line_start = ptr = string;
|
|
end = string + length;
|
|
lines = 1;
|
|
att_charset = character_set;
|
|
}
|
|
|
|
|
|
#ifndef WINDOWS_ONLY
|
|
static void check_log_file_attrs (void)
|
|
{
|
|
/**********************************************
|
|
*
|
|
* c h e c k _ l o g _ f i l e _ a t t r s
|
|
*
|
|
**********************************************
|
|
*
|
|
* Functional description
|
|
* Check if log file attributes are valid
|
|
*
|
|
*********************************************/
|
|
|
|
if (file->fil_partitions)
|
|
{
|
|
if (!file->fil_length)
|
|
{
|
|
yyabandon (-261, isc_log_length_spec);
|
|
/* Total length of a partitioned log must be specified */
|
|
}
|
|
|
|
if (PARTITION_SIZE (OneK*file->fil_length,file->fil_partitions) <
|
|
(OneK*MIN_LOG_LENGTH))
|
|
{
|
|
yyabandon (-239, isc_partition_too_small);
|
|
/* Log partition size too small */
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((file->fil_length) && (file->fil_length < MIN_LOG_LENGTH))
|
|
{
|
|
yyabandon (-239, isc_log_too_small); /* Log size too small */
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
|
|
|
|
static TEXT *lex_position (void)
|
|
{
|
|
/**************************************
|
|
*
|
|
* l e x _ p o s i t i o n
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Return the current position of LEX
|
|
* in the input string.
|
|
*
|
|
**************************************/
|
|
|
|
return ptr;
|
|
}
|
|
|
|
|
|
static BOOLEAN long_int (
|
|
NOD string,
|
|
SLONG *long_value)
|
|
{
|
|
/*************************************
|
|
*
|
|
* l o n g _ i n t
|
|
*
|
|
*************************************
|
|
*
|
|
* Functional description
|
|
* checks for all digits in the
|
|
* number and return an atol().
|
|
*
|
|
*************************************/
|
|
UCHAR *p;
|
|
|
|
for (p = ((STR) string)->str_data; classes [*p] & CHR_DIGIT; p++)
|
|
if (!(classes [*p] & CHR_DIGIT))
|
|
return FALSE;
|
|
|
|
*long_value = atol ((char *)((STR) string)->str_data);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
static FLD make_field (
|
|
NOD field_name)
|
|
{
|
|
/**************************************
|
|
*
|
|
* m a k e _ f i e l d
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Make a field block of given name.
|
|
*
|
|
**************************************/
|
|
FLD field;
|
|
STR string;
|
|
TSQL tdsql;
|
|
|
|
tdsql = GET_THREAD_DATA;
|
|
|
|
if (field_name == NULL)
|
|
{
|
|
field = (FLD) ALLOCDV (type_fld, sizeof (INTERNAL_FIELD_NAME));
|
|
strcpy (field->fld_name, (TEXT*) INTERNAL_FIELD_NAME);
|
|
return field;
|
|
}
|
|
string = (STR) field_name->nod_arg [1];
|
|
field = (FLD) ALLOCDV (type_fld, strlen ((SCHAR*) string->str_data));
|
|
strcpy (field->fld_name, (TEXT*) string->str_data);
|
|
|
|
return field;
|
|
}
|
|
|
|
|
|
static FIL make_file (void)
|
|
{
|
|
/**************************************
|
|
*
|
|
* m a k e _ f i l e
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Make a file block
|
|
*
|
|
**************************************/
|
|
FIL temp_file;
|
|
TSQL tdsql;
|
|
|
|
tdsql = GET_THREAD_DATA;
|
|
|
|
temp_file = (FIL) ALLOCD (type_fil);
|
|
|
|
return temp_file;
|
|
}
|
|
|
|
|
|
static NOD make_list (
|
|
NOD node)
|
|
{
|
|
/**************************************
|
|
*
|
|
* m a k e _ l i s t
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Collapse nested list nodes into single list.
|
|
*
|
|
**************************************/
|
|
NOD *ptr;
|
|
LLS stack, temp;
|
|
USHORT l;
|
|
NOD old;
|
|
TSQL tdsql;
|
|
|
|
tdsql = GET_THREAD_DATA;
|
|
|
|
if (!node)
|
|
return node;
|
|
|
|
stack = 0;
|
|
stack_nodes (node, &stack);
|
|
for (l = 0, temp = stack; temp; temp = temp->lls_next)
|
|
l++;
|
|
|
|
old = node;
|
|
node = (NOD) ALLOCDV (type_nod, l);
|
|
node->nod_count = l;
|
|
node->nod_type = nod_list;
|
|
node->nod_flags = old->nod_flags;
|
|
ptr = node->nod_arg + node->nod_count;
|
|
|
|
while (stack)
|
|
*--ptr = (NOD) LLS_POP (&stack);
|
|
|
|
return node;
|
|
}
|
|
|
|
|
|
static NOD make_node (
|
|
NOD_TYPE type,
|
|
int count,
|
|
...)
|
|
{
|
|
/**************************************
|
|
*
|
|
* m a k e _ n o d e
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Make a node of given type.
|
|
* Any change should also be made to function below
|
|
*
|
|
**************************************/
|
|
NOD node, *p;
|
|
va_list ptr;
|
|
TSQL tdsql;
|
|
|
|
tdsql = GET_THREAD_DATA;
|
|
|
|
node = (NOD) ALLOCDV (type_nod, count);
|
|
node->nod_type = type;
|
|
node->nod_count = count;
|
|
p = node->nod_arg;
|
|
VA_START (ptr, count);
|
|
|
|
while (--count >= 0)
|
|
*p++ = va_arg (ptr, NOD);
|
|
|
|
return node;
|
|
}
|
|
|
|
|
|
static NOD make_flag_node (
|
|
NOD_TYPE type,
|
|
SSHORT flag,
|
|
int count,
|
|
...)
|
|
{
|
|
/**************************************
|
|
*
|
|
* m a k e _ f l a g _ n o d e
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Make a node of given type. Set flag field
|
|
*
|
|
**************************************/
|
|
NOD node, *p;
|
|
va_list ptr;
|
|
TSQL tdsql;
|
|
|
|
tdsql = GET_THREAD_DATA;
|
|
|
|
node = (NOD) ALLOCDV (type_nod, count);
|
|
node->nod_type = type;
|
|
node->nod_flags = flag;
|
|
node->nod_count = count;
|
|
p = node->nod_arg;
|
|
VA_START (ptr, count);
|
|
|
|
while (--count >= 0)
|
|
*p++ = va_arg (ptr, NOD);
|
|
|
|
return node;
|
|
}
|
|
|
|
|
|
static BOOLEAN short_int (
|
|
NOD string,
|
|
SLONG *long_value,
|
|
SSHORT range)
|
|
{
|
|
/*************************************
|
|
*
|
|
* s h o r t _ i n t
|
|
*
|
|
*************************************
|
|
*
|
|
* Functional description
|
|
* is the string a valid representation
|
|
* of a positive short int?
|
|
*
|
|
*************************************/
|
|
UCHAR *p;
|
|
SCHAR buf [10];
|
|
BOOLEAN return_value;
|
|
|
|
if (((STR) string)->str_length > 5)
|
|
return FALSE;
|
|
|
|
for (p = ((STR) string)->str_data; classes [*p] & CHR_DIGIT; p++)
|
|
if (!(classes [*p] & CHR_DIGIT))
|
|
return FALSE;
|
|
|
|
/* there are 5 or fewer digits, it's value may still be greater
|
|
* than 32767... */
|
|
|
|
buf [0] = ((STR) string)->str_data[0];
|
|
buf [1] = ((STR) string)->str_data[1];
|
|
buf [2] = ((STR) string)->str_data[2];
|
|
buf [3] = ((STR) string)->str_data[3];
|
|
buf [4] = ((STR) string)->str_data[4];
|
|
buf [5] = '\0';
|
|
|
|
*long_value = atoi (buf);
|
|
|
|
switch (range)
|
|
{
|
|
case POSITIVE:
|
|
return_value = *long_value > SHRT_POS_MAX;
|
|
break;
|
|
case NEGATIVE:
|
|
return_value = *long_value > SHRT_NEG_MAX;
|
|
break;
|
|
case UNSIGNED:
|
|
return_value = *long_value > SHRT_UNSIGNED_MAX;
|
|
break;
|
|
}
|
|
return !return_value;
|
|
}
|
|
|
|
|
|
static void stack_nodes (
|
|
NOD node,
|
|
LLS *stack)
|
|
{
|
|
/**************************************
|
|
*
|
|
* s t a c k _ n o d e s
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Assist in turning a tree of misc nodes into a clean list.
|
|
*
|
|
**************************************/
|
|
NOD *ptr, *end;
|
|
NOD curr_node, next_node, start_chain, end_chain, save_link;
|
|
|
|
if (node->nod_type != nod_list)
|
|
{
|
|
LLS_PUSH (node, stack);
|
|
return;
|
|
}
|
|
|
|
/* To take care of cases where long lists of nodes are in a chain
|
|
of list nodes with exactly one entry, this algorithm will look
|
|
for a pattern of repeated list nodes with two entries, the first
|
|
being a list node and the second being a non-list node. Such
|
|
a list will be reverse linked, and then re-reversed, stacking the
|
|
non-list nodes in the process. The purpose of this is to avoid
|
|
massive recursion of this function. */
|
|
|
|
start_chain = node;
|
|
end_chain = (NOD) NULL;
|
|
curr_node = node;
|
|
next_node = node->nod_arg[0];
|
|
while ( curr_node->nod_count == 2 &&
|
|
curr_node->nod_arg[0]->nod_type == nod_list &&
|
|
curr_node->nod_arg[1]->nod_type != nod_list &&
|
|
next_node->nod_arg[0]->nod_type == nod_list &&
|
|
next_node->nod_arg[1]->nod_type != nod_list)
|
|
{
|
|
|
|
/* pattern was found so reverse the links and go to next node */
|
|
|
|
save_link = next_node->nod_arg[0];
|
|
next_node->nod_arg[0] = curr_node;
|
|
curr_node = next_node;
|
|
next_node = save_link;
|
|
end_chain = curr_node;
|
|
}
|
|
|
|
/* see if any chain was found */
|
|
|
|
if ( end_chain)
|
|
{
|
|
|
|
/* first, handle the rest of the nodes */
|
|
/* note that next_node still points to the first non-pattern node */
|
|
|
|
stack_nodes( next_node, stack);
|
|
|
|
/* stack the non-list nodes and reverse the chain on the way back */
|
|
|
|
curr_node = end_chain;
|
|
while ( TRUE)
|
|
{
|
|
LLS_PUSH( curr_node->nod_arg[1], stack);
|
|
if ( curr_node == start_chain)
|
|
break;
|
|
save_link = curr_node->nod_arg[0];
|
|
curr_node->nod_arg[0] = next_node;
|
|
next_node = curr_node;
|
|
curr_node = save_link;
|
|
}
|
|
return;
|
|
}
|
|
|
|
for (ptr = node->nod_arg, end = ptr + node->nod_count; ptr < end; ptr++)
|
|
stack_nodes (*ptr, stack);
|
|
}
|
|
|
|
|
|
static int yylex (
|
|
USHORT client_dialect,
|
|
USHORT db_dialect,
|
|
USHORT parser_version,
|
|
BOOLEAN *stmt_ambiguous)
|
|
{
|
|
/**************************************
|
|
*
|
|
* y y l e x
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
*
|
|
**************************************/
|
|
UCHAR *p, tok_class, string [MAX_TOKEN_LEN], *buffer, *buffer_end, *new_buffer;
|
|
SYM sym;
|
|
SSHORT c;
|
|
USHORT buffer_len;
|
|
|
|
STR delimited_id_str;
|
|
|
|
/* Find end of white space and skip comments */
|
|
|
|
for (;;)
|
|
{
|
|
if (ptr >= end)
|
|
return -1;
|
|
|
|
c = *ptr++;
|
|
|
|
if (c == '\n')
|
|
{
|
|
lines++;
|
|
line_start = ptr + 1;
|
|
}
|
|
|
|
if ((c == '/') && (*ptr == '*'))
|
|
{
|
|
ptr++;
|
|
while (ptr < end)
|
|
{
|
|
if ((c = *ptr++) == '*')
|
|
{
|
|
if (*ptr == '/')
|
|
break;
|
|
}
|
|
if (c == '\n')
|
|
{
|
|
lines++;
|
|
line_start = ptr + 1;
|
|
}
|
|
}
|
|
if (ptr >= end)
|
|
return -1;
|
|
ptr++;
|
|
continue;
|
|
}
|
|
|
|
#if (! ( defined JPN_SJIS || defined JPN_EUC) )
|
|
tok_class = classes [c];
|
|
#else
|
|
c = c & 0xff;
|
|
tok_class = (JPN1_CHAR(c) ? CHR_LETTER : classes[c]);
|
|
#endif /*JPN_SJIS || JPN_EUC */
|
|
|
|
if (!(tok_class & CHR_WHITE))
|
|
break;
|
|
}
|
|
|
|
/* Depending on tok_class of token, parse token */
|
|
|
|
last_token = ptr - 1;
|
|
|
|
if (tok_class & CHR_INTRODUCER)
|
|
{
|
|
/* The Introducer (_) is skipped, all other idents are copied
|
|
* to become the name of the character set
|
|
*/
|
|
p = string;
|
|
for (; ptr < end && classes [*ptr] & CHR_IDENT; ptr++)
|
|
{
|
|
if (ptr >= end)
|
|
return -1;
|
|
CHECK_COPY_INCR(p, UPPER7(*ptr));
|
|
}
|
|
|
|
CHECK_BOUND(p);
|
|
*p = 0;
|
|
|
|
/* make a string value to hold the name, the name
|
|
* is resolved in pass1_constant */
|
|
|
|
yylval = (NOD) (MAKE_string (string, p - string))->str_data;
|
|
|
|
return INTRODUCER;
|
|
}
|
|
|
|
/* parse a quoted string, being sure to look for double quotes */
|
|
|
|
if (tok_class & CHR_QUOTE)
|
|
{
|
|
buffer = string;
|
|
buffer_len = sizeof (string);
|
|
buffer_end = buffer + buffer_len - 1;
|
|
for (p = buffer; ; p++)
|
|
{
|
|
if (ptr >= end)
|
|
{
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
return -1;
|
|
}
|
|
/* *ptr is quote - if next != quote we're at the end */
|
|
if ((*ptr == c) && ((++ptr == end) || (*ptr != c)))
|
|
break;
|
|
if (p > buffer_end)
|
|
{
|
|
new_buffer = (UCHAR *) gds__alloc (2 * buffer_len);
|
|
/* FREE: at outer block */
|
|
if (!new_buffer) /* NOMEM: */
|
|
{
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
return -1;
|
|
}
|
|
memcpy (new_buffer, buffer, buffer_len);
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
buffer = new_buffer;
|
|
p = buffer + buffer_len;
|
|
buffer_len = 2 * buffer_len;
|
|
buffer_end = buffer + buffer_len - 1;
|
|
}
|
|
*p = *ptr++;
|
|
}
|
|
if (c == '"')
|
|
{
|
|
*stmt_ambiguous = TRUE; /* string delimited by double quotes could be
|
|
** either a string constant or a SQL delimited
|
|
** identifier, therefore marks the SQL
|
|
** statement as ambiguous */
|
|
if (client_dialect == SQL_DIALECT_V6_TRANSITION)
|
|
{
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
yyabandon (-104, isc_invalid_string_constant);
|
|
}
|
|
else if (client_dialect >= SQL_DIALECT_V6)
|
|
{
|
|
if ((p - buffer) >= MAX_TOKEN_LEN)
|
|
{
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
yyabandon (-104, isc_token_too_long);
|
|
}
|
|
yylval = (NOD) MAKE_string (buffer, p - buffer);
|
|
delimited_id_str = (STR) yylval;
|
|
delimited_id_str->str_flags |= STR_delimited_id;
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
return SYMBOL;
|
|
}
|
|
}
|
|
yylval = (NOD) MAKE_string (buffer, p - buffer);
|
|
if (buffer != string)
|
|
gds__free (buffer);
|
|
return STRING;
|
|
}
|
|
|
|
/*
|
|
* Check for a numeric constant, which starts either with a digit or with
|
|
* a decimal point followed by a digit.
|
|
*
|
|
* This code recognizes the following token types:
|
|
*
|
|
* NUMBER: string of digits which fits into a 32-bit integer
|
|
*
|
|
* NUMBER64BIT: string of digits whose value might fit into an SINT64,
|
|
* depending on whether or not there is a preceding '-', which is to
|
|
* say that "9223372036854775808" is accepted here.
|
|
*
|
|
* SCALEDINT: string of digits and a single '.', where the digits
|
|
* represent a value which might fit into an SINT64, depending on
|
|
* whether or not there is a preceding '-'.
|
|
*
|
|
* FLOAT: string of digits with an optional '.', and followed by an "e"
|
|
* or "E" and an optionally-signed exponent.
|
|
*
|
|
* NOTE: we swallow leading or trailing blanks, but we do NOT accept
|
|
* embedded blanks:
|
|
*
|
|
* Another note: c is the first character which need to be considered,
|
|
* ptr points to the next character.
|
|
*/
|
|
|
|
assert(ptr <= end);
|
|
|
|
if ((tok_class & CHR_DIGIT) ||
|
|
((c == '.') && (ptr < end) && (classes [*ptr] & CHR_DIGIT)))
|
|
{
|
|
/* The following variables are used to recognize kinds of numbers. */
|
|
|
|
BOOLEAN have_error = FALSE; /* syntax error or value too large */
|
|
BOOLEAN have_digit = FALSE; /* we've seen a digit */
|
|
BOOLEAN have_decimal = FALSE; /* we've seen a '.' */
|
|
BOOLEAN have_exp = FALSE; /* digit ... [eE] */
|
|
BOOLEAN have_exp_sign = FALSE; /* digit ... [eE] {+-] */
|
|
BOOLEAN have_exp_digit = FALSE; /* digit ... [eE] ... digit */
|
|
UINT64 number = 0;
|
|
UINT64 limit_by_10 = MAX_SINT64 / 10;
|
|
|
|
for (--ptr ; ptr < end ; ptr++)
|
|
{
|
|
c = *ptr;
|
|
if (have_exp_digit && (! (classes [c] & CHR_DIGIT)))
|
|
/* First non-digit after exponent and digit terminates
|
|
the token. */
|
|
break;
|
|
else if (have_exp_sign && (! (classes [c] & CHR_DIGIT)))
|
|
{
|
|
/* only digits can be accepted after "1E-" */
|
|
have_error = TRUE;
|
|
break;
|
|
}
|
|
else if (have_exp)
|
|
{
|
|
/* We've seen e or E, but nothing beyond that. */
|
|
if ( ('-' == c) || ('+' == c) )
|
|
have_exp_sign = TRUE;
|
|
else if ( classes [c] & CHR_DIGIT )
|
|
/* We have a digit: we haven't seen a sign yet,
|
|
but it's too late now. */
|
|
have_exp_digit = have_exp_sign = TRUE;
|
|
else
|
|
{
|
|
/* end of the token */
|
|
have_error = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
else if ('.' == c)
|
|
{
|
|
if (!have_decimal)
|
|
have_decimal = TRUE;
|
|
else
|
|
{
|
|
have_error = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
else if (classes [c] & CHR_DIGIT)
|
|
{
|
|
/* Before computing the next value, make sure there will be
|
|
no overflow. */
|
|
|
|
have_digit = TRUE;
|
|
|
|
if (number >= limit_by_10)
|
|
/* possibility of an overflow */
|
|
if ((number > limit_by_10) || (c > '8'))
|
|
{
|
|
have_error = TRUE;
|
|
break;
|
|
}
|
|
number = number * 10 + (c - '0');
|
|
}
|
|
else if ( (('E' == c) || ('e' == c)) && have_digit )
|
|
have_exp = TRUE;
|
|
else
|
|
/* Unexpected character: this is the end of the number. */
|
|
break;
|
|
}
|
|
|
|
/* We're done scanning the characters: now return the right kind
|
|
of number token, if any fits the bill. */
|
|
|
|
if (!have_error)
|
|
{
|
|
assert(have_digit);
|
|
|
|
if (have_exp_digit)
|
|
{
|
|
yylval = (NOD) MAKE_string ((UCHAR *) last_token,
|
|
ptr - last_token);
|
|
return FLOAT;
|
|
}
|
|
else if (!have_exp)
|
|
{
|
|
|
|
/* We should return some kind (scaled-) integer type
|
|
except perhaps in dialect 1. */
|
|
|
|
if (!have_decimal && (number <= MAX_SLONG))
|
|
{
|
|
yylval = (NOD) number;
|
|
return NUMBER;
|
|
}
|
|
else
|
|
{
|
|
/* We have either a decimal point with no exponent
|
|
or a string of digits whose value exceeds MAX_SLONG:
|
|
the returned type depends on the client dialect,
|
|
so warn of the difference if the client dialect is
|
|
SQL_DIALECT_V6_TRANSITION.
|
|
*/
|
|
|
|
if (SQL_DIALECT_V6_TRANSITION == client_dialect)
|
|
{
|
|
/* Issue a warning about the ambiguity of the numeric
|
|
* numeric literal. There are multiple calls because
|
|
* the message text exceeds the 119-character limit
|
|
* of our message database.
|
|
*/
|
|
ERRD_post_warning( isc_dsql_warning_number_ambiguous,
|
|
gds_arg_string,
|
|
ERR_string( last_token,
|
|
ptr - last_token ),
|
|
gds_arg_end );
|
|
ERRD_post_warning( isc_dsql_warning_number_ambiguous1,
|
|
gds_arg_end );
|
|
}
|
|
|
|
yylval = (NOD) MAKE_string ((UCHAR *) last_token,
|
|
ptr - last_token);
|
|
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
return FLOAT;
|
|
else if (have_decimal)
|
|
return SCALEDINT;
|
|
else
|
|
return NUMBER64BIT;
|
|
}
|
|
} /* else if (!have_exp) */
|
|
} /* if (!have_error) */
|
|
|
|
/* we got some kind of error or overflow, so don't recognize this
|
|
* as a number: just pass it through to the next part of the lexer.
|
|
*/
|
|
}
|
|
|
|
/* Restore the status quo ante, before we started our unsuccessful
|
|
attempt to recognize a number. */
|
|
ptr = last_token;
|
|
c = *ptr++;
|
|
/* We never touched tok_class, so it doesn't need to be restored. */
|
|
|
|
/* end of number-recognition code */
|
|
|
|
|
|
if (tok_class & CHR_LETTER)
|
|
{
|
|
#if (! ( defined JPN_SJIS || defined JPN_EUC) )
|
|
p = string;
|
|
CHECK_COPY_INCR(p,UPPER (c));
|
|
for (; ptr < end && classes [*ptr] & CHR_IDENT; ptr++)
|
|
{
|
|
if (ptr >= end)
|
|
return -1;
|
|
CHECK_COPY_INCR(p, UPPER (*ptr));
|
|
}
|
|
#else
|
|
for (; ptr <= end ; c = *ptr++ , c = c & 0xff)
|
|
{
|
|
if (KANJI1(c))
|
|
{
|
|
CHECK_COPY_INCR(p, UPPER (c));
|
|
if (ptr >= end)
|
|
break;
|
|
|
|
c = *ptr++;
|
|
c = c & 0xff;
|
|
if (!KANJI2(c))
|
|
{
|
|
ptr--;
|
|
break;
|
|
}
|
|
else
|
|
CHECK_COPY_INCR(p,c);
|
|
}
|
|
else
|
|
{
|
|
#ifdef JPN_SJIS
|
|
if ((SJIS_SINGLE(c)) || (classes[c] & CHR_IDENT) )
|
|
#else
|
|
if (classes[c] & CHR_IDENT)
|
|
#endif
|
|
{
|
|
CHECK_COPY_INCR(p, UPPER(c));
|
|
if (ptr >= end)
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
ptr--;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
#endif /* JPN_SJIS || JPN_EUC */
|
|
|
|
CHECK_BOUND(p);
|
|
*p = 0;
|
|
sym = HSHD_lookup (NULL_PTR, (TEXT *) string, (SSHORT)(p - string), SYM_keyword, parser_version);
|
|
if (sym)
|
|
{
|
|
yylval = (NOD) sym->sym_object;
|
|
return sym->sym_keyword;
|
|
};
|
|
yylval = (NOD) MAKE_string (string, p - string);
|
|
return SYMBOL;
|
|
}
|
|
|
|
/* Must be punctuation -- test for double character punctuation */
|
|
|
|
if (last_token + 1 < end)
|
|
{
|
|
sym = HSHD_lookup (NULL_PTR, last_token, (SSHORT) 2, SYM_keyword, (USHORT) parser_version);
|
|
if (sym)
|
|
{
|
|
++ptr;
|
|
return sym->sym_keyword;
|
|
}
|
|
}
|
|
|
|
/* Single character punctuation are simply passed on */
|
|
|
|
return c;
|
|
}
|
|
|
|
|
|
static void yyerror (
|
|
TEXT *error_string)
|
|
{
|
|
/**************************************
|
|
*
|
|
* y y e r r o r
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Print a syntax error.
|
|
*
|
|
**************************************/
|
|
|
|
if (DSQL_yychar < 1)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, gds_command_end_err, /* Unexpected end of command */
|
|
0);
|
|
else
|
|
{
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, gds_dsql_token_unk_err,
|
|
gds_arg_number, (SLONG) lines,
|
|
gds_arg_number, (SLONG) (last_token - line_start),
|
|
/* Token unknown - line %d, char %d */
|
|
gds_arg_gds, gds_random,
|
|
gds_arg_cstring, (int) (ptr - last_token), last_token,
|
|
0);
|
|
}
|
|
}
|
|
|
|
|
|
static void yyabandon (
|
|
SSHORT sql_code,
|
|
STATUS error_symbol)
|
|
{
|
|
/**************************************
|
|
*
|
|
* y y a b a n d o n
|
|
*
|
|
**************************************
|
|
*
|
|
* Functional description
|
|
* Abandon the parsing outputting the supplied string
|
|
*
|
|
**************************************/
|
|
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) sql_code,
|
|
gds_arg_gds, error_symbol, 0);
|
|
}
|
|
#define YYABORT goto yyabort
|
|
#define YYREJECT goto yyabort
|
|
#define YYACCEPT goto yyaccept
|
|
#define YYERROR goto yyerrlab
|
|
int
|
|
dsql_yyparse(USHORT client_dialect, USHORT db_dialect, USHORT parser_version, BOOLEAN *stmt_ambiguous)
|
|
{
|
|
register int yym, yyn, yystate;
|
|
#if YYDEBUG
|
|
register char *yys;
|
|
extern char *getenv();
|
|
|
|
if (yys = getenv("YYDEBUG"))
|
|
{
|
|
yyn = *yys;
|
|
if (yyn >= '0' && yyn <= '9')
|
|
yydebug = yyn - '0';
|
|
}
|
|
#endif
|
|
|
|
yynerrs = 0;
|
|
DSQL_yyerrflag = 0;
|
|
DSQL_yychar = (-1);
|
|
|
|
DSQL_DSQL_yyssp = DSQL_yyss;
|
|
yyvsp = yyvs;
|
|
*DSQL_DSQL_yyssp = yystate = 0;
|
|
|
|
yyloop:
|
|
if (yyn = yydefred[yystate]) goto yyreduce;
|
|
if (DSQL_yychar < 0)
|
|
{
|
|
if ((DSQL_yychar = yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous)) < 0) DSQL_yychar = 0;
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
{
|
|
yys = 0;
|
|
if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar];
|
|
if (!yys) yys = "illegal-symbol";
|
|
printf("%sdebug: state %d, reading %d (%s)\n",
|
|
YYPREFIX, yystate, DSQL_yychar, yys);
|
|
}
|
|
#endif
|
|
}
|
|
if ((yyn = yysindex[yystate]) && (yyn += DSQL_yychar) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == DSQL_yychar)
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: state %d, shifting to state %d\n",
|
|
YYPREFIX, yystate, yytable[yyn]);
|
|
#endif
|
|
if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1)
|
|
{
|
|
goto yyoverflow;
|
|
}
|
|
*++DSQL_DSQL_yyssp = yystate = yytable[yyn];
|
|
*++yyvsp = yylval;
|
|
DSQL_yychar = (-1);
|
|
if (DSQL_yyerrflag > 0) --DSQL_yyerrflag;
|
|
goto yyloop;
|
|
}
|
|
if ((yyn = yyrindex[yystate]) && (yyn += DSQL_yychar) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == DSQL_yychar)
|
|
{
|
|
yyn = yytable[yyn];
|
|
goto yyreduce;
|
|
}
|
|
if (DSQL_yyerrflag) goto yyinrecovery;
|
|
#ifdef lint
|
|
goto yynewerror;
|
|
#endif
|
|
yynewerror:
|
|
yyerror("syntax error");
|
|
#ifdef lint
|
|
goto yyerrlab;
|
|
#endif
|
|
yyerrlab:
|
|
++yynerrs;
|
|
yyinrecovery:
|
|
if (DSQL_yyerrflag < 3)
|
|
{
|
|
DSQL_yyerrflag = 3;
|
|
for (;;)
|
|
{
|
|
if ((yyn = yysindex[*DSQL_DSQL_yyssp]) && (yyn += YYERRCODE) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: state %d, error recovery shifting\
|
|
to state %d\n", YYPREFIX, *DSQL_DSQL_yyssp, yytable[yyn]);
|
|
#endif
|
|
if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1)
|
|
{
|
|
goto yyoverflow;
|
|
}
|
|
*++DSQL_DSQL_yyssp = yystate = yytable[yyn];
|
|
*++yyvsp = yylval;
|
|
goto yyloop;
|
|
}
|
|
else
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: error recovery discarding state %d\n",
|
|
YYPREFIX, *DSQL_DSQL_yyssp);
|
|
#endif
|
|
if (DSQL_DSQL_yyssp <= DSQL_yyss) goto yyabort;
|
|
--DSQL_DSQL_yyssp;
|
|
--yyvsp;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (DSQL_yychar == 0) goto yyabort;
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
{
|
|
yys = 0;
|
|
if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar];
|
|
if (!yys) yys = "illegal-symbol";
|
|
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
|
|
YYPREFIX, yystate, DSQL_yychar, yys);
|
|
}
|
|
#endif
|
|
DSQL_yychar = (-1);
|
|
goto yyloop;
|
|
}
|
|
yyreduce:
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
|
|
YYPREFIX, yystate, yyn, yyrule[yyn]);
|
|
#endif
|
|
yym = yylen[yyn];
|
|
yyval = yyvsp[1-yym];
|
|
switch (yyn)
|
|
{
|
|
case 1:
|
|
{ DSQL_parse = yyvsp[0]; }
|
|
break;
|
|
case 2:
|
|
{ DSQL_parse = yyvsp[-1]; }
|
|
break;
|
|
case 18:
|
|
{ DSQL_debug = (int) yyvsp[0];
|
|
if (DSQL_debug > 10)
|
|
yydebug = DSQL_debug;
|
|
yyval = make_node (nod_null, (int) 0, NULL); }
|
|
break;
|
|
case 19:
|
|
{ yyval = make_node (nod_grant, (int) e_grant_count,
|
|
yyvsp[-5], yyvsp[-3], make_list(yyvsp[-1]), yyvsp[0]); }
|
|
break;
|
|
case 20:
|
|
{ yyval = make_node (nod_grant, (int) e_grant_count,
|
|
yyvsp[-6], yyvsp[-3], make_list(yyvsp[-1]), yyvsp[0]); }
|
|
break;
|
|
case 21:
|
|
{ yyval = make_node (nod_grant, (int) e_grant_count,
|
|
yyvsp[-4], yyvsp[-2], make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 22:
|
|
{ yyval = make_node (nod_grant, (int) e_grant_count,
|
|
yyvsp[-5], yyvsp[-2], make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 23:
|
|
{ yyval = make_node (nod_grant, (int) e_grant_count,
|
|
make_list(yyvsp[-3]), make_list(yyvsp[-1]), NULL, yyvsp[0]); }
|
|
break;
|
|
case 25:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 26:
|
|
{ yyval = make_node (nod_all, (int) 0, NULL); }
|
|
break;
|
|
case 27:
|
|
{ yyval = make_node (nod_all, (int) 0, NULL); }
|
|
break;
|
|
case 28:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 30:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 31:
|
|
{ yyval = make_list (make_node (nod_execute, (int) 0, NULL)); }
|
|
break;
|
|
case 32:
|
|
{ yyval = make_node (nod_select, (int) 0, NULL); }
|
|
break;
|
|
case 33:
|
|
{ yyval = make_node (nod_insert, (int) 0, NULL); }
|
|
break;
|
|
case 34:
|
|
{ yyval = make_node (nod_delete, (int) 0, NULL); }
|
|
break;
|
|
case 35:
|
|
{ yyval = make_node (nod_update, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 36:
|
|
{ yyval = make_node (nod_references, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 37:
|
|
{ yyval = make_node (nod_grant, (int) 0, NULL); }
|
|
break;
|
|
case 38:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 39:
|
|
{ yyval = make_node (nod_grant_admin, (int) 0, NULL); }
|
|
break;
|
|
case 40:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 41:
|
|
{ yyval = make_node (nod_procedure_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 42:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-4], yyvsp[-2],
|
|
make_list(yyvsp[0]), yyvsp[-5]); }
|
|
break;
|
|
case 43:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-5], yyvsp[-2],
|
|
make_list(yyvsp[0]), yyvsp[-6]); }
|
|
break;
|
|
case 44:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-4], yyvsp[-2],
|
|
make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 45:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-5], yyvsp[-2],
|
|
make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 46:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-4], yyvsp[-2],
|
|
make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 47:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, yyvsp[-5], yyvsp[-2],
|
|
make_list(yyvsp[0]), NULL); }
|
|
break;
|
|
case 48:
|
|
{ yyval = make_node (nod_revoke,
|
|
(int) e_grant_count, make_list(yyvsp[-2]), make_list(yyvsp[0]),
|
|
NULL, NULL); }
|
|
break;
|
|
case 49:
|
|
{ yyval = make_node (nod_grant, (int) 0, NULL); }
|
|
break;
|
|
case 51:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 52:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 53:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 54:
|
|
{ yyval = make_node (nod_proc_obj, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 55:
|
|
{ yyval = make_node (nod_trig_obj, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 56:
|
|
{ yyval = make_node (nod_view_obj, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 58:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 59:
|
|
{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 60:
|
|
{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 61:
|
|
{ yyval = make_node (nod_user_group, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 63:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 64:
|
|
{ yyval = make_node (nod_role_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 66:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 67:
|
|
{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 68:
|
|
{ yyval = make_node (nod_user_name, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 69:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 70:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 71:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 72:
|
|
{ yyval = make_node (nod_def_udf, (int) e_udf_count,
|
|
yyvsp[-7], yyvsp[-2], yyvsp[0], make_list (yyvsp[-6]), yyvsp[-4]); }
|
|
break;
|
|
case 74:
|
|
{ field->fld_dtype = dtype_blob; }
|
|
break;
|
|
case 75:
|
|
{
|
|
field->fld_dtype = dtype_cstring;
|
|
field->fld_character_length = (USHORT) yyvsp[-2]; }
|
|
break;
|
|
case 76:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 78:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 80:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 81:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 83:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 84:
|
|
{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-1],
|
|
MAKE_constant ((STR) FUN_reference, CONSTANT_SLONG));}
|
|
break;
|
|
case 85:
|
|
{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-2],
|
|
MAKE_constant ((STR) (-1 * FUN_reference), CONSTANT_SLONG));}
|
|
break;
|
|
case 86:
|
|
{ yyval = make_node (nod_udf_return_value, (int) 2, yyvsp[-3],
|
|
MAKE_constant ((STR) FUN_value, CONSTANT_SLONG));}
|
|
break;
|
|
case 87:
|
|
{ yyval = make_node (nod_udf_return_value, (int) 2,
|
|
(NOD) NULL, MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG));}
|
|
break;
|
|
case 88:
|
|
{ yyval = make_node (nod_def_filter, (int) e_filter_count,
|
|
yyvsp[-8], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 89:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 90:
|
|
{ yyval = make_node (nod_def_exception, (int) e_xcp_count,
|
|
yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 91:
|
|
{ yyval = make_node (nod_def_index, (int) e_idx_count,
|
|
yyvsp[-6], yyvsp[-5], yyvsp[-3], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 92:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 93:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 94:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 95:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 96:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 97:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 98:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 99:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 100:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 101:
|
|
{ yyval = make_node (nod_unique, (int) 0, NULL); }
|
|
break;
|
|
case 102:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 103:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 105:
|
|
{ yyval = make_node (nod_def_computed, 2, yyvsp[-2], yyvsp[-1]); }
|
|
break;
|
|
case 106:
|
|
{ yyval = make_node (nod_def_shadow, (int) e_shadow_count,
|
|
yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], make_list (yyvsp[0])); }
|
|
break;
|
|
case 107:
|
|
{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); }
|
|
break;
|
|
case 108:
|
|
{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); }
|
|
break;
|
|
case 109:
|
|
{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); }
|
|
break;
|
|
case 110:
|
|
{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); }
|
|
break;
|
|
case 111:
|
|
{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); }
|
|
break;
|
|
case 112:
|
|
{ yyval = (NOD) 0;}
|
|
break;
|
|
case 113:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 114:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 117:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 118:
|
|
{ yyval = make_node (nod_def_domain, (int) e_dom_count,
|
|
yyvsp[-7], yyvsp[-3], yyvsp[-2], make_list (yyvsp[-1]), yyvsp[0]); }
|
|
break;
|
|
case 119:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 120:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 121:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 122:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 123:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 126:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 127:
|
|
{ yyval = make_node (nod_rel_constraint, (int) 2, NULL, yyvsp[0]);}
|
|
break;
|
|
case 130:
|
|
{ yyval = make_node (nod_null, (int) 0, NULL); }
|
|
break;
|
|
case 131:
|
|
{ yyval = make_node (nod_def_constraint,
|
|
(int) e_cnstr_count, MAKE_string (NULL_STRING, 0), NULL,
|
|
NULL, NULL, yyvsp[-2], NULL, yyvsp[0], NULL, NULL); }
|
|
break;
|
|
case 132:
|
|
{ yyval = make_node (nod_def_generator,
|
|
(int) e_gen_count, yyvsp[0]); }
|
|
break;
|
|
case 133:
|
|
{ yyval = make_node (nod_def_role,
|
|
(int) 1, yyvsp[0]); }
|
|
break;
|
|
case 134:
|
|
{ yyval = make_node (nod_def_database, (int) e_cdb_count,
|
|
yyvsp[-2], make_list(yyvsp[-1]), make_list (yyvsp[0]));}
|
|
break;
|
|
case 137:
|
|
{ log_defined = FALSE;
|
|
cache_defined = FALSE;
|
|
yyval = (NOD) yyvsp[0]; }
|
|
break;
|
|
case 138:
|
|
{yyval = (NOD) NULL;}
|
|
break;
|
|
case 141:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 142:
|
|
{ yyval = make_node (nod_page_size, 1, yyvsp[0]);}
|
|
break;
|
|
case 143:
|
|
{ yyval = make_node (nod_file_length, 1, yyvsp[-1]);}
|
|
break;
|
|
case 144:
|
|
{ yyval = make_node (nod_user_name, 1, yyvsp[0]);}
|
|
break;
|
|
case 145:
|
|
{ yyval = make_node (nod_password, 1, yyvsp[0]);}
|
|
break;
|
|
case 146:
|
|
{ yyval = make_node (nod_lc_ctype, 1, yyvsp[0]);}
|
|
break;
|
|
case 147:
|
|
{yyval = (NOD) NULL;}
|
|
break;
|
|
case 150:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 154:
|
|
{ yyval = make_node (nod_dfl_charset, 1, yyvsp[0]);}
|
|
break;
|
|
case 155:
|
|
{ yyval = make_node (nod_group_commit_wait, 1, yyvsp[0]);}
|
|
break;
|
|
case 156:
|
|
{ yyval = make_node (nod_check_point_len, 1, yyvsp[0]);}
|
|
break;
|
|
case 157:
|
|
{ yyval = make_node (nod_num_log_buffers, 1, yyvsp[0]);}
|
|
break;
|
|
case 158:
|
|
{ yyval = make_node (nod_log_buffer_size, 1, yyvsp[0]);}
|
|
break;
|
|
case 159:
|
|
{ if (log_defined)
|
|
yyabandon (-260, isc_log_redef); /* Log redefined */
|
|
log_defined = TRUE;
|
|
yyval = yyvsp[0]; }
|
|
break;
|
|
case 160:
|
|
{ if (log_defined)
|
|
yyabandon (-260, isc_log_redef);
|
|
log_defined = TRUE;
|
|
yyval = yyvsp[0]; }
|
|
break;
|
|
case 161:
|
|
{ file->fil_flags |= LOG_serial | LOG_overflow;
|
|
if (file->fil_partitions)
|
|
yyabandon (-261, isc_partition_not_supp);
|
|
/* Partitions not supported in series of log file specification */
|
|
yyval = make_node (nod_list, 2, yyvsp[-3], yyvsp[0]); }
|
|
break;
|
|
case 162:
|
|
{ file->fil_flags |= LOG_serial;
|
|
if (file->fil_partitions)
|
|
yyabandon (-261, isc_partition_not_supp);
|
|
yyval = yyvsp[0]; }
|
|
break;
|
|
case 163:
|
|
{ file = make_file();
|
|
file->fil_flags = LOG_serial | LOG_default;
|
|
yyval = make_node (nod_log_file_desc, (int) 1,
|
|
(NOD) file);}
|
|
break;
|
|
case 164:
|
|
{ file->fil_name = (STR) yyvsp[-1];
|
|
yyval = (NOD) make_node (nod_file_desc, (int) 1,
|
|
(NOD) file); }
|
|
break;
|
|
case 166:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 167:
|
|
{
|
|
#ifndef WINDOWS_ONLY
|
|
check_log_file_attrs();
|
|
#endif
|
|
yyval = (NOD) make_node (nod_log_file_desc, (int) 1,
|
|
(NOD) file); }
|
|
break;
|
|
case 168:
|
|
{ file = make_file();
|
|
file->fil_name = (STR) yyvsp[0]; }
|
|
break;
|
|
case 171:
|
|
{ file->fil_length = (SLONG) yyvsp[0]; }
|
|
break;
|
|
case 172:
|
|
{ file = make_file ();}
|
|
break;
|
|
case 177:
|
|
{ file->fil_start = (SLONG) yyvsp[0];}
|
|
break;
|
|
case 178:
|
|
{ file->fil_length = (SLONG) yyvsp[-1];}
|
|
break;
|
|
case 185:
|
|
{ yyval = make_node (nod_def_relation,
|
|
(int) e_drl_count, yyvsp[-4], make_list (yyvsp[-1]), yyvsp[-3]); }
|
|
break;
|
|
case 186:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 187:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 188:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 190:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 193:
|
|
{ yyval = make_node (nod_def_field, (int) e_dfl_count,
|
|
yyvsp[-5], yyvsp[-3], yyvsp[-2], make_list (yyvsp[-1]), yyvsp[0], yyvsp[-4], NULL); }
|
|
break;
|
|
case 194:
|
|
{ yyval = make_node (nod_def_field, (int) e_dfl_count,
|
|
yyvsp[-2], NULL, NULL, NULL, NULL, NULL, yyvsp[0]); }
|
|
break;
|
|
case 195:
|
|
{ yyval = make_node (nod_def_field, (int) e_dfl_count,
|
|
yyvsp[-1], NULL, NULL, NULL, NULL, NULL, yyvsp[0]); }
|
|
break;
|
|
case 196:
|
|
{
|
|
field->fld_flags |= FLD_computed;
|
|
yyval = make_node (nod_def_computed, 2, yyvsp[-2], yyvsp[-1]); }
|
|
break;
|
|
case 199:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 200:
|
|
{ yyval = make_node (nod_def_domain, (int) e_dom_count,
|
|
yyvsp[-1], NULL, NULL, NULL, NULL); }
|
|
break;
|
|
case 201:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 202:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 203:
|
|
{ field_name = yyvsp[0];
|
|
field = make_field (yyvsp[0]);
|
|
yyval = (NOD) field; }
|
|
break;
|
|
case 204:
|
|
{ field = make_field (yyvsp[0]);
|
|
yyval = (NOD) field; }
|
|
break;
|
|
case 205:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 206:
|
|
{ field = make_field (NULL);
|
|
yyval = (NOD) field; }
|
|
break;
|
|
case 207:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 208:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 209:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 210:
|
|
{ yyval = make_node (nod_user_name, (int) 0, NULL); }
|
|
break;
|
|
case 211:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 212:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 213:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 216:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 217:
|
|
{ yyval = make_node (nod_rel_constraint, (int) 2, yyvsp[-1], yyvsp[0]);}
|
|
break;
|
|
case 218:
|
|
{ yyval = make_node (nod_null, (int) 1, NULL); }
|
|
break;
|
|
case 219:
|
|
{ yyval = make_node (nod_foreign, e_for_count,
|
|
make_node (nod_list, (int) 1, field_name), yyvsp[-2], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 221:
|
|
{ yyval = make_node (nod_unique, (int) 0, NULL); }
|
|
break;
|
|
case 222:
|
|
{ yyval = make_node (nod_primary, (int) 0, NULL); }
|
|
break;
|
|
case 223:
|
|
{ yyval = make_node (nod_rel_constraint, (int) 2, yyvsp[-1], yyvsp[0]);}
|
|
break;
|
|
case 224:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 225:
|
|
{ yyval = NULL ;}
|
|
break;
|
|
case 230:
|
|
{ yyval = make_node (nod_unique, 1, yyvsp[0]); }
|
|
break;
|
|
case 231:
|
|
{ yyval = make_node (nod_primary, e_pri_count, yyvsp[0]); }
|
|
break;
|
|
case 232:
|
|
{ yyval = make_node (nod_foreign, e_for_count, yyvsp[-4], yyvsp[-2],
|
|
yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 233:
|
|
{ yyval = make_node (nod_def_constraint,
|
|
(int) e_cnstr_count, MAKE_string (NULL_STRING, 0), NULL,
|
|
NULL, NULL, yyvsp[-2], NULL, yyvsp[0], NULL, NULL); }
|
|
break;
|
|
case 234:
|
|
{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[0], NULL);}
|
|
break;
|
|
case 235:
|
|
{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, NULL, yyvsp[0]);}
|
|
break;
|
|
case 236:
|
|
{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[0], yyvsp[-1]); }
|
|
break;
|
|
case 237:
|
|
{ yyval = make_node (nod_ref_upd_del, e_ref_upd_del_count, yyvsp[-1], yyvsp[0]);}
|
|
break;
|
|
case 238:
|
|
{ yyval = NULL;}
|
|
break;
|
|
case 239:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 240:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 241:
|
|
{ yyval = make_flag_node (nod_ref_trig_action,
|
|
REF_ACTION_CASCADE, e_ref_trig_action_count, NULL);}
|
|
break;
|
|
case 242:
|
|
{ yyval = make_flag_node (nod_ref_trig_action,
|
|
REF_ACTION_SET_DEFAULT, e_ref_trig_action_count, NULL);}
|
|
break;
|
|
case 243:
|
|
{ yyval = make_flag_node (nod_ref_trig_action,
|
|
REF_ACTION_SET_NULL, e_ref_trig_action_count, NULL);}
|
|
break;
|
|
case 244:
|
|
{ yyval = make_flag_node (nod_ref_trig_action,
|
|
REF_ACTION_NONE, e_ref_trig_action_count, NULL);}
|
|
break;
|
|
case 245:
|
|
{ yyval = make_node (nod_def_procedure,
|
|
(int) e_prc_count,
|
|
yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 246:
|
|
{ yyval = make_node (nod_mod_procedure,
|
|
(int) e_prc_count,
|
|
yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 247:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 248:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 249:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 250:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 252:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 253:
|
|
{ yyval = make_node (nod_def_field, (int) e_dfl_count,
|
|
yyvsp[-1], NULL, NULL, NULL, NULL, NULL, NULL); }
|
|
break;
|
|
case 254:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 255:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 257:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 258:
|
|
{ yyval = make_node (nod_def_field, (int) e_dfl_count,
|
|
yyvsp[-2], NULL, NULL, NULL, NULL, NULL, NULL); }
|
|
break;
|
|
case 261:
|
|
{ yyval = make_node (nod_block, e_blk_count,
|
|
make_list (yyvsp[-1]), NULL);}
|
|
break;
|
|
case 262:
|
|
{ yyval = make_node (nod_block, e_blk_count,
|
|
make_list (yyvsp[-2]), make_list (yyvsp[-1]));}
|
|
break;
|
|
case 264:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 267:
|
|
{ yyval = make_node (nod_exception_stmt, 1, yyvsp[-1]); }
|
|
break;
|
|
case 272:
|
|
{ yyval = make_node (nod_post, e_pst_count, yyvsp[-1]); }
|
|
break;
|
|
case 276:
|
|
{ yyval = make_node (nod_return, e_rtn_count, NULL); }
|
|
break;
|
|
case 277:
|
|
{ yyval = make_node (nod_exit, 0, NULL); }
|
|
break;
|
|
case 278:
|
|
{ yyval = make_node (nod_exec_procedure, e_exe_count, yyvsp[-3],
|
|
yyvsp[-2], yyvsp[-1]); }
|
|
break;
|
|
case 279:
|
|
{ yyval = make_node (nod_for_select, e_flp_count, yyvsp[-5],
|
|
make_list (yyvsp[-3]), yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 280:
|
|
{ yyval = make_node (nod_if, e_if_count, yyvsp[-5], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 281:
|
|
{ yyval = make_node (nod_if, e_if_count, yyvsp[-3], yyvsp[0], NULL); }
|
|
break;
|
|
case 282:
|
|
{ yyval = make_node (nod_for_select, e_flp_count, yyvsp[-3],
|
|
make_list (yyvsp[-1]), NULL, NULL); }
|
|
break;
|
|
case 283:
|
|
{ yyval = make_node (nod_var_name, (int) e_vrn_count,
|
|
yyvsp[0]); }
|
|
break;
|
|
case 284:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 285:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 286:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 287:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 288:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 289:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 294:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 295:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 296:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 297:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 300:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 301:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 302:
|
|
{ yyval = make_node (nod_while, e_while_count,
|
|
yyvsp[-3], yyvsp[0], NULL); }
|
|
break;
|
|
case 303:
|
|
{ yyval = make_node (nod_cursor, e_cur_count, yyvsp[0], NULL, NULL); }
|
|
break;
|
|
case 304:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 306:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 307:
|
|
{ yyval = make_node (nod_on_error, e_err_count,
|
|
make_list (yyvsp[-2]), yyvsp[0]); }
|
|
break;
|
|
case 309:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 310:
|
|
{ yyval = make_node (nod_sqlcode, 1, yyvsp[0]); }
|
|
break;
|
|
case 311:
|
|
{ yyval = make_node (nod_gdscode, 1, yyvsp[0]); }
|
|
break;
|
|
case 312:
|
|
{ yyval = make_node (nod_exception, 1, yyvsp[0]); }
|
|
break;
|
|
case 313:
|
|
{ yyval = make_node (nod_default, 1, NULL); }
|
|
break;
|
|
case 314:
|
|
{ yyval = make_node (nod_exec_procedure, e_exe_count, yyvsp[-1],
|
|
yyvsp[0], make_node (nod_all, (int) 0, NULL)); }
|
|
break;
|
|
case 315:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 316:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 317:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 321:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 322:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 323:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 324:
|
|
{ yyval = make_node (nod_def_view, (int) e_view_count,
|
|
yyvsp[-6], yyvsp[-5], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 325:
|
|
{ yyval = make_node (nod_select, (int) 2, yyvsp[0], NULL); }
|
|
break;
|
|
case 326:
|
|
{ yyval = make_node (nod_list, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 327:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 328:
|
|
{ yyval = make_flag_node (nod_list, NOD_UNION_ALL, 2, yyvsp[-3], yyvsp[0]); }
|
|
break;
|
|
case 329:
|
|
{ yyval = make_node (nod_select_expr, e_sel_count,
|
|
yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 330:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 332:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 335:
|
|
{ yyval = make_node (nod_join, (int) e_join_count,
|
|
yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 336:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 337:
|
|
{ beginning = lex_position(); }
|
|
break;
|
|
case 338:
|
|
{ yyval = (NOD) MAKE_string ((UCHAR *) beginning,
|
|
(lex_position() == end) ?
|
|
lex_position()-beginning : last_token-beginning);}
|
|
break;
|
|
case 339:
|
|
{ beginning = last_token; }
|
|
break;
|
|
case 340:
|
|
{ yyval = (NOD) MAKE_string ((UCHAR *) beginning,
|
|
lex_position()-beginning); }
|
|
break;
|
|
case 341:
|
|
{ yyval = make_node (nod_def_constraint, (int) e_cnstr_count,
|
|
MAKE_string (NULL_STRING, 0), NULL, NULL, NULL,
|
|
NULL, NULL, NULL, NULL, NULL); }
|
|
break;
|
|
case 342:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 343:
|
|
{ yyval = make_node (nod_def_trigger, (int) e_trg_count,
|
|
yyvsp[-8], yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 344:
|
|
{ yyval = MAKE_constant ((STR) 0, CONSTANT_SLONG); }
|
|
break;
|
|
case 345:
|
|
{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); }
|
|
break;
|
|
case 346:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 347:
|
|
{ yyval = MAKE_constant ((STR) 1, CONSTANT_SLONG); }
|
|
break;
|
|
case 348:
|
|
{ yyval = MAKE_constant ((STR) 2, CONSTANT_SLONG); }
|
|
break;
|
|
case 349:
|
|
{ yyval = MAKE_constant ((STR) 3, CONSTANT_SLONG); }
|
|
break;
|
|
case 350:
|
|
{ yyval = MAKE_constant ((STR) 4, CONSTANT_SLONG); }
|
|
break;
|
|
case 351:
|
|
{ yyval = MAKE_constant ((STR) 5, CONSTANT_SLONG); }
|
|
break;
|
|
case 352:
|
|
{ yyval = MAKE_constant ((STR) 6, CONSTANT_SLONG); }
|
|
break;
|
|
case 353:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); }
|
|
break;
|
|
case 354:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 355:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 356:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 357:
|
|
{ yyval = make_node (nod_mod_exception, (int) e_xcp_count,
|
|
yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 358:
|
|
{ yyval = make_node (nod_mod_relation, (int) e_alt_count,
|
|
yyvsp[-1], make_list (yyvsp[0])); }
|
|
break;
|
|
case 359:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 360:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 361:
|
|
{ yyval = make_node (nod_mod_database, (int) e_adb_count,
|
|
make_list (yyvsp[0])); }
|
|
break;
|
|
case 362:
|
|
{ yyval = make_node (nod_mod_domain, (int) e_alt_count,
|
|
yyvsp[-1], make_list (yyvsp[0])); }
|
|
break;
|
|
case 363:
|
|
{ yyval = make_node (nod_mod_index,
|
|
(int) e_mod_idx_count, yyvsp[0]); }
|
|
break;
|
|
case 365:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 366:
|
|
{ yyval = make_node (nod_def_default, (int) e_dft_count,
|
|
yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 367:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 368:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 369:
|
|
{yyval = make_node (nod_del_default, (int) 0, NULL); }
|
|
break;
|
|
case 370:
|
|
{ yyval = make_node (nod_delete_rel_constraint, (int) 1, NULL); }
|
|
break;
|
|
case 371:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 372:
|
|
{ yyval = make_node (nod_mod_domain_type, 2, yyvsp[-1]); }
|
|
break;
|
|
case 374:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 375:
|
|
{ yyval = make_node (nod_del_field, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 376:
|
|
{ yyval = make_node (nod_delete_rel_constraint, (int) 1, yyvsp[0]);}
|
|
break;
|
|
case 377:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 378:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 379:
|
|
{ yyval = make_node (nod_mod_field_pos, 2, yyvsp[-2],
|
|
MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG)); }
|
|
break;
|
|
case 380:
|
|
{ yyval = make_node (nod_mod_field_name, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 381:
|
|
{ yyval = make_node (nod_mod_field_type, 3, yyvsp[-3], yyvsp[0], yyvsp[-1]); }
|
|
break;
|
|
case 382:
|
|
{ yyval = make_node (nod_field_name, (int) e_fln_count,
|
|
NULL, yyvsp[0]); }
|
|
break;
|
|
case 400:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 401:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 402:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 403:
|
|
{ yyval = make_node (nod_def_domain, (int) e_dom_count,
|
|
yyvsp[-1], NULL, NULL, NULL, NULL); }
|
|
break;
|
|
case 404:
|
|
{ field_name = yyvsp[0];
|
|
field = make_field (yyvsp[0]);
|
|
yyval = (NOD) field; }
|
|
break;
|
|
case 405:
|
|
{ yyval = make_node (nod_restrict, 0, NULL); }
|
|
break;
|
|
case 406:
|
|
{ yyval = make_node (nod_cascade, 0, NULL); }
|
|
break;
|
|
case 407:
|
|
{ yyval = make_node (nod_restrict, 0, NULL); }
|
|
break;
|
|
case 408:
|
|
{ yyval = make_node (nod_idx_active, 1, yyvsp[-1]); }
|
|
break;
|
|
case 409:
|
|
{ yyval = make_node (nod_idx_inactive, 1, yyvsp[-1]); }
|
|
break;
|
|
case 410:
|
|
{ log_defined = FALSE;
|
|
cache_defined = FALSE;
|
|
yyval = (NOD) NULL; }
|
|
break;
|
|
case 412:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 413:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 414:
|
|
{ yyval = make_node (nod_drop_log, (int) 0, NULL); }
|
|
break;
|
|
case 415:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 416:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 418:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 419:
|
|
{ yyval = make_node (nod_mod_trigger, (int) e_trg_count,
|
|
yyvsp[-6], NULL, yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 421:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 423:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 424:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 425:
|
|
{ yyval = make_node (nod_del_exception, 1, yyvsp[0]); }
|
|
break;
|
|
case 426:
|
|
{ yyval = make_node (nod_del_index, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 427:
|
|
{ yyval = make_node (nod_del_procedure, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 428:
|
|
{ yyval = make_node (nod_del_relation, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 429:
|
|
{ yyval = make_node (nod_del_trigger, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 430:
|
|
{ yyval = make_node (nod_del_relation, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 431:
|
|
{ yyval = make_node (nod_del_filter, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 432:
|
|
{ yyval = make_node (nod_del_domain, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 433:
|
|
{ yyval = make_node (nod_del_udf, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 434:
|
|
{ yyval = make_node (nod_del_shadow, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 435:
|
|
{ yyval = make_node (nod_del_role, (int) 1, yyvsp[0]); }
|
|
break;
|
|
case 440:
|
|
{ field->fld_ranges = make_list (yyvsp[-1]);
|
|
field->fld_dimensions = field->fld_ranges->nod_count / 2;
|
|
field->fld_element_dtype = field->fld_dtype;
|
|
yyval = yyvsp[-3]; }
|
|
break;
|
|
case 441:
|
|
{ field->fld_ranges = make_list (yyvsp[-2]);
|
|
field->fld_dimensions = field->fld_ranges->nod_count / 2;
|
|
field->fld_element_dtype = field->fld_dtype;
|
|
yyval = yyvsp[-4]; }
|
|
break;
|
|
case 443:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 444:
|
|
{ if ((SLONG) yyvsp[0] < 1)
|
|
yyval = make_node (nod_list, (int) 2,
|
|
MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG),
|
|
MAKE_constant ((STR) 1, CONSTANT_SLONG));
|
|
else
|
|
yyval = make_node (nod_list, (int) 2,
|
|
MAKE_constant ((STR) 1, CONSTANT_SLONG),
|
|
MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG) ); }
|
|
break;
|
|
case 445:
|
|
{ yyval = make_node (nod_list, (int) 2,
|
|
MAKE_constant ((STR) yyvsp[-2], CONSTANT_SLONG),
|
|
MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG)); }
|
|
break;
|
|
case 451:
|
|
{
|
|
field->fld_dtype = dtype_long;
|
|
field->fld_length = sizeof (SLONG);
|
|
}
|
|
break;
|
|
case 452:
|
|
{
|
|
field->fld_dtype = dtype_short;
|
|
field->fld_length = sizeof (SSHORT);
|
|
}
|
|
break;
|
|
case 453:
|
|
{
|
|
*stmt_ambiguous = TRUE;
|
|
if (client_dialect <= SQL_DIALECT_V5)
|
|
{
|
|
/* Post warning saying that DATE is equivalent to TIMESTAMP */
|
|
ERRD_post_warning (isc_sqlwarn, gds_arg_number, (SLONG) 301,
|
|
isc_arg_warning, isc_dtype_renamed, 0);
|
|
field->fld_dtype = dtype_timestamp;
|
|
field->fld_length = sizeof (GDS_TIMESTAMP);
|
|
}
|
|
else if (client_dialect == SQL_DIALECT_V6_TRANSITION)
|
|
yyabandon (-104, isc_transitional_date);
|
|
else
|
|
{
|
|
field->fld_dtype = dtype_sql_date;
|
|
field->fld_length = sizeof (ULONG);
|
|
}
|
|
}
|
|
break;
|
|
case 454:
|
|
{
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_dialect_datatype_unsupport,
|
|
gds_arg_number, client_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_db_dialect_dtype_unsupport,
|
|
gds_arg_number, db_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
field->fld_dtype = dtype_sql_time;
|
|
field->fld_length = sizeof (SLONG);
|
|
}
|
|
break;
|
|
case 455:
|
|
{
|
|
field->fld_dtype = dtype_timestamp;
|
|
field->fld_length = sizeof (GDS_TIMESTAMP);
|
|
}
|
|
break;
|
|
case 458:
|
|
{
|
|
field->fld_dtype = dtype_blob;
|
|
}
|
|
break;
|
|
case 459:
|
|
{
|
|
field->fld_dtype = dtype_blob;
|
|
field->fld_seg_length = (USHORT) yyvsp[-1];
|
|
field->fld_sub_type = 0;
|
|
}
|
|
break;
|
|
case 460:
|
|
{
|
|
field->fld_dtype = dtype_blob;
|
|
field->fld_seg_length = (USHORT) yyvsp[-3];
|
|
field->fld_sub_type = (USHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 461:
|
|
{
|
|
field->fld_dtype = dtype_blob;
|
|
field->fld_seg_length = 80;
|
|
field->fld_sub_type = (USHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 462:
|
|
{
|
|
field->fld_seg_length = (USHORT) yyvsp[0];
|
|
}
|
|
break;
|
|
case 463:
|
|
{
|
|
field->fld_seg_length = (USHORT) 80;
|
|
}
|
|
break;
|
|
case 464:
|
|
{
|
|
field->fld_sub_type = (USHORT) yyvsp[0];
|
|
}
|
|
break;
|
|
case 465:
|
|
{
|
|
field->fld_sub_type_name = yyvsp[0];
|
|
}
|
|
break;
|
|
case 466:
|
|
{
|
|
field->fld_sub_type = (USHORT) 0;
|
|
}
|
|
break;
|
|
case 467:
|
|
{
|
|
field->fld_character_set = yyvsp[0];
|
|
}
|
|
break;
|
|
case 469:
|
|
{
|
|
field->fld_dtype = dtype_text;
|
|
field->fld_character_length = (USHORT) yyvsp[-1];
|
|
field->fld_flags |= FLD_national;
|
|
}
|
|
break;
|
|
case 470:
|
|
{
|
|
field->fld_dtype = dtype_text;
|
|
field->fld_character_length = 1;
|
|
field->fld_flags |= FLD_national;
|
|
}
|
|
break;
|
|
case 471:
|
|
{
|
|
field->fld_dtype = dtype_varying;
|
|
field->fld_character_length = (USHORT) yyvsp[-1];
|
|
field->fld_flags |= FLD_national;
|
|
}
|
|
break;
|
|
case 472:
|
|
{
|
|
field->fld_dtype = dtype_text;
|
|
field->fld_character_length = (USHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 473:
|
|
{
|
|
field->fld_dtype = dtype_text;
|
|
field->fld_character_length = 1;
|
|
}
|
|
break;
|
|
case 474:
|
|
{
|
|
field->fld_dtype = dtype_varying;
|
|
field->fld_character_length = (USHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 483:
|
|
{
|
|
field->fld_sub_type = dsc_num_type_numeric;
|
|
}
|
|
break;
|
|
case 484:
|
|
{
|
|
field->fld_sub_type = dsc_num_type_decimal;
|
|
if (field->fld_dtype == dtype_short)
|
|
{
|
|
field->fld_dtype = dtype_long;
|
|
field->fld_length = sizeof (SLONG);
|
|
};
|
|
}
|
|
break;
|
|
case 485:
|
|
{ yyval = make_node (nod_position, 1, yyvsp[0]); }
|
|
break;
|
|
case 486:
|
|
{
|
|
field->fld_dtype = dtype_long;
|
|
field->fld_length = sizeof (SLONG);
|
|
field->fld_precision = 9;
|
|
}
|
|
break;
|
|
case 487:
|
|
{
|
|
if ( ((SLONG) yyvsp[-1] < 1) || ((SLONG) yyvsp[-1] > 18) )
|
|
yyabandon (-842, isc_precision_err);
|
|
/* Precision most be between 1 and 18. */
|
|
if ((SLONG) yyvsp[-1] > 9)
|
|
{
|
|
if ( ( (client_dialect <= SQL_DIALECT_V5) &&
|
|
(db_dialect > SQL_DIALECT_V5) ) ||
|
|
( (client_dialect > SQL_DIALECT_V5) &&
|
|
(db_dialect <= SQL_DIALECT_V5) ) )
|
|
ERRD_post (gds_sqlerr,
|
|
gds_arg_number, (SLONG) -817,
|
|
gds_arg_gds,
|
|
isc_ddl_not_allowed_by_db_sql_dial,
|
|
gds_arg_number, (SLONG) db_dialect,
|
|
0);
|
|
if (client_dialect <= SQL_DIALECT_V5)
|
|
{
|
|
field->fld_dtype = dtype_double;
|
|
field->fld_length = sizeof (double);
|
|
}
|
|
else
|
|
{
|
|
if (client_dialect == SQL_DIALECT_V6_TRANSITION)
|
|
{
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous,
|
|
gds_arg_end );
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous1,
|
|
gds_arg_end );
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous2,
|
|
gds_arg_end );
|
|
|
|
}
|
|
field->fld_dtype = dtype_int64;
|
|
field->fld_length = sizeof (SINT64);
|
|
}
|
|
}
|
|
else
|
|
if ((SLONG) yyvsp[-1] < 5)
|
|
{
|
|
field->fld_dtype = dtype_short;
|
|
field->fld_length = sizeof (SSHORT);
|
|
}
|
|
else
|
|
{
|
|
field->fld_dtype = dtype_long;
|
|
field->fld_length = sizeof (SLONG);
|
|
}
|
|
field->fld_precision = (USHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 488:
|
|
{
|
|
if ( ((SLONG) yyvsp[-3] < 1) || ((SLONG) yyvsp[-3] > 18) )
|
|
yyabandon (-842, isc_precision_err);
|
|
/* Precision should be between 1 and 18 */
|
|
if (((SLONG) yyvsp[-1] > (SLONG) yyvsp[-3]) || ((SLONG) yyvsp[-1] < 0))
|
|
yyabandon (-842, isc_scale_nogt);
|
|
/* Scale must be between 0 and precision */
|
|
if ((SLONG) yyvsp[-3] > 9)
|
|
{
|
|
if ( ( (client_dialect <= SQL_DIALECT_V5) &&
|
|
(db_dialect > SQL_DIALECT_V5) ) ||
|
|
( (client_dialect > SQL_DIALECT_V5) &&
|
|
(db_dialect <= SQL_DIALECT_V5) ) )
|
|
ERRD_post (gds_sqlerr,
|
|
gds_arg_number, (SLONG) -817,
|
|
gds_arg_gds,
|
|
isc_ddl_not_allowed_by_db_sql_dial,
|
|
gds_arg_number, (SLONG) db_dialect,
|
|
0);
|
|
if (client_dialect <= SQL_DIALECT_V5)
|
|
{
|
|
field->fld_dtype = dtype_double;
|
|
field->fld_length = sizeof (double);
|
|
}
|
|
else
|
|
{
|
|
if (client_dialect == SQL_DIALECT_V6_TRANSITION)
|
|
{
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous,
|
|
gds_arg_end );
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous1,
|
|
gds_arg_end );
|
|
ERRD_post_warning (
|
|
isc_dsql_warn_precision_ambiguous2,
|
|
gds_arg_end );
|
|
}
|
|
/* client_dialect >= SQL_DIALECT_V6 */
|
|
field->fld_dtype = dtype_int64;
|
|
field->fld_length = sizeof (SINT64);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((SLONG) yyvsp[-3] < 5)
|
|
{
|
|
field->fld_dtype = dtype_short;
|
|
field->fld_length = sizeof (SSHORT);
|
|
}
|
|
else
|
|
{
|
|
field->fld_dtype = dtype_long;
|
|
field->fld_length = sizeof (SLONG);
|
|
}
|
|
}
|
|
field->fld_precision = (USHORT) yyvsp[-3];
|
|
field->fld_scale = - (SSHORT) yyvsp[-1];
|
|
}
|
|
break;
|
|
case 491:
|
|
{
|
|
if ((SLONG) yyvsp[0] > 7)
|
|
{
|
|
field->fld_dtype = dtype_double;
|
|
field->fld_length = sizeof (double);
|
|
}
|
|
else
|
|
{
|
|
field->fld_dtype = dtype_real;
|
|
field->fld_length = sizeof (float);
|
|
}
|
|
}
|
|
break;
|
|
case 492:
|
|
{
|
|
field->fld_dtype = dtype_double;
|
|
field->fld_length = sizeof (double);
|
|
}
|
|
break;
|
|
case 493:
|
|
{
|
|
field->fld_dtype = dtype_real;
|
|
field->fld_length = sizeof (float);
|
|
}
|
|
break;
|
|
case 494:
|
|
{
|
|
field->fld_dtype = dtype_double;
|
|
field->fld_length = sizeof (double);
|
|
}
|
|
break;
|
|
case 495:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 496:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 500:
|
|
{
|
|
yyval = make_node (nod_set_generator2,e_gen_id_count,yyvsp[-2],
|
|
MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG));
|
|
}
|
|
break;
|
|
case 501:
|
|
{
|
|
yyval = make_node (nod_set_generator2,e_gen_id_count,yyvsp[-2],
|
|
MAKE_constant((STR)yyvsp[0], CONSTANT_SINT64));
|
|
}
|
|
break;
|
|
case 502:
|
|
{
|
|
yyval = make_node (nod_set_generator2, e_gen_id_count, yyvsp[-3],
|
|
make_node(nod_negate, 1,
|
|
MAKE_constant((STR)yyvsp[0], CONSTANT_SINT64)));
|
|
}
|
|
break;
|
|
case 503:
|
|
{ yyval = make_node (nod_commit, 1, yyvsp[0]); }
|
|
break;
|
|
case 504:
|
|
{ yyval = make_node (nod_rollback, 0, NULL); }
|
|
break;
|
|
case 507:
|
|
{ yyval = make_node (nod_commit_retain, 0, NULL); }
|
|
break;
|
|
case 508:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 510:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 511:
|
|
{yyval = make_node (nod_trans, 1, make_list (yyvsp[0])); }
|
|
break;
|
|
case 513:
|
|
{ yyval = (NOD) NULL; }
|
|
break;
|
|
case 515:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 520:
|
|
{ yyval = make_flag_node (nod_access, NOD_READ_ONLY, (int) 0, NULL); }
|
|
break;
|
|
case 521:
|
|
{ yyval = make_flag_node (nod_access, NOD_READ_WRITE, (int) 0, NULL); }
|
|
break;
|
|
case 522:
|
|
{ yyval = make_flag_node (nod_wait, NOD_WAIT, (int) 0, NULL); }
|
|
break;
|
|
case 523:
|
|
{ yyval = make_flag_node (nod_wait, NOD_NO_WAIT, (int) 0, NULL); }
|
|
break;
|
|
case 524:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 526:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 527:
|
|
{ yyval = make_flag_node (nod_isolation, NOD_READ_COMMITTED, 1, yyvsp[0]); }
|
|
break;
|
|
case 528:
|
|
{ yyval = make_flag_node (nod_isolation, NOD_READ_COMMITTED, 1, yyvsp[0]); }
|
|
break;
|
|
case 529:
|
|
{ yyval = make_flag_node (nod_isolation, NOD_CONCURRENCY, 0, NULL); }
|
|
break;
|
|
case 530:
|
|
{ yyval = make_flag_node (nod_isolation, NOD_CONSISTENCY, 0, NULL); }
|
|
break;
|
|
case 531:
|
|
{ yyval = make_flag_node (nod_isolation, NOD_CONSISTENCY, 0, NULL); }
|
|
break;
|
|
case 532:
|
|
{ yyval = make_flag_node (nod_version, NOD_VERSION, 0, NULL); }
|
|
break;
|
|
case 533:
|
|
{ yyval = make_flag_node (nod_version, NOD_NO_VERSION, 0, NULL); }
|
|
break;
|
|
case 534:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 535:
|
|
{ yyval = make_node (nod_reserve, 1, make_list (yyvsp[0])); }
|
|
break;
|
|
case 536:
|
|
{ yyval = (NOD) NOD_SHARED; }
|
|
break;
|
|
case 537:
|
|
{ yyval = (NOD) NOD_PROTECTED ; }
|
|
break;
|
|
case 538:
|
|
{ yyval = (NOD) 0; }
|
|
break;
|
|
case 539:
|
|
{ yyval = (NOD) NOD_READ; }
|
|
break;
|
|
case 540:
|
|
{ yyval = (NOD) NOD_WRITE; }
|
|
break;
|
|
case 542:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 543:
|
|
{ yyval = make_node (nod_table_lock, (int) 2, make_list (yyvsp[-1]), yyvsp[0]); }
|
|
break;
|
|
case 544:
|
|
{ yyval = make_flag_node (nod_lock_mode, (SSHORT) ((SSHORT) yyvsp[-1] | (SSHORT) yyvsp[0]), (SSHORT) 0, NULL); }
|
|
break;
|
|
case 545:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 547:
|
|
{ yyval = make_node (nod_list, (int) 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 548:
|
|
{yyval = make_node (nod_set_statistics,
|
|
(int)e_stat_count, yyvsp[0]); }
|
|
break;
|
|
case 549:
|
|
{ yyval = make_node (nod_select, 3, yyvsp[-2], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 550:
|
|
{ yyval = make_node (nod_list, 1, yyvsp[0]); }
|
|
break;
|
|
case 551:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 552:
|
|
{ yyval = make_flag_node (nod_list, NOD_UNION_ALL, 2, yyvsp[-3], yyvsp[0]); }
|
|
break;
|
|
case 553:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 554:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 556:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 557:
|
|
{ yyval = make_node (nod_order, e_order_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); }
|
|
break;
|
|
case 558:
|
|
{ yyval = make_node (nod_order, e_order_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); }
|
|
break;
|
|
case 559:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 560:
|
|
{ yyval = make_node (nod_flag, 0, NULL); }
|
|
break;
|
|
case 561:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 562:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 563:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 564:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 565:
|
|
{ yyval = make_node (nod_flag, 0, NULL); }
|
|
break;
|
|
case 566:
|
|
{ yyval = make_node (nod_select_expr, e_sel_count,
|
|
yyvsp[-7], yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 567:
|
|
{ yyval = make_node (nod_flag, 0, NULL); }
|
|
break;
|
|
case 568:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 569:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 570:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 572:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 574:
|
|
{ yyval = make_node (nod_alias, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 575:
|
|
{ yyval = make_node (nod_alias, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 576:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 578:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 581:
|
|
{ yyval = make_node (nod_join, (int) e_join_count, yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 582:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 583:
|
|
{ yyval = make_node (nod_rel_proc_name,
|
|
(int) e_rpn_count, yyvsp[-2], yyvsp[0], yyvsp[-1]); }
|
|
break;
|
|
case 584:
|
|
{ yyval = make_node (nod_rel_proc_name,
|
|
(int) e_rpn_count, yyvsp[-1], NULL, yyvsp[0]); }
|
|
break;
|
|
case 585:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 586:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 588:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 592:
|
|
{ yyval = make_node (nod_relation_name,
|
|
(int) e_rln_count, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 593:
|
|
{ yyval = make_node (nod_relation_name,
|
|
(int) e_rln_count, yyvsp[0], NULL); }
|
|
break;
|
|
case 594:
|
|
{ yyval = make_node (nod_join_inner, (int) 0, NULL); }
|
|
break;
|
|
case 595:
|
|
{ yyval = make_node (nod_join_left, (int) 0, NULL); }
|
|
break;
|
|
case 596:
|
|
{ yyval = make_node (nod_join_left, (int) 0, NULL); }
|
|
break;
|
|
case 597:
|
|
{ yyval = make_node (nod_join_right, (int) 0, NULL); }
|
|
break;
|
|
case 598:
|
|
{ yyval = make_node (nod_join_right, (int) 0, NULL); }
|
|
break;
|
|
case 599:
|
|
{ yyval = make_node (nod_join_full, (int) 0, NULL); }
|
|
break;
|
|
case 600:
|
|
{ yyval = make_node (nod_join_full, (int) 0, NULL); }
|
|
break;
|
|
case 601:
|
|
{ yyval = make_node (nod_join_inner, (int) 0, NULL); }
|
|
break;
|
|
case 602:
|
|
{ yyval = make_list (yyvsp[0]); }
|
|
break;
|
|
case 603:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 605:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 608:
|
|
{ yyval = make_node (nod_collate, e_coll_count, (NOD) yyvsp[0], yyvsp[-2]); }
|
|
break;
|
|
case 609:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 610:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 611:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 612:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 613:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 614:
|
|
{ yyval = 0;}
|
|
break;
|
|
case 615:
|
|
{ yyval = make_node (nod_top, 1, yyvsp[-2]);}
|
|
break;
|
|
case 616:
|
|
{ yyval = make_node (nod_top, 2, yyvsp[-4], yyvsp[-3]);}
|
|
break;
|
|
case 617:
|
|
{ yyval = 0;}
|
|
break;
|
|
case 618:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 619:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 620:
|
|
{ yyval = make_node (nod_plan_expr, 2, yyvsp[-3], make_list (yyvsp[-1])); }
|
|
break;
|
|
case 621:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 622:
|
|
{ yyval = make_node (nod_merge, (int) 0, NULL); }
|
|
break;
|
|
case 623:
|
|
{ yyval = make_node (nod_merge, (int) 0, NULL); }
|
|
break;
|
|
case 624:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 625:
|
|
{ yyval = 0; }
|
|
break;
|
|
case 627:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 628:
|
|
{ yyval = make_node (nod_plan_item, 2, make_list (yyvsp[-1]), yyvsp[0]); }
|
|
break;
|
|
case 631:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 632:
|
|
{ yyval = make_node (nod_natural, (int) 0, NULL); }
|
|
break;
|
|
case 633:
|
|
{ yyval = make_node (nod_index, 1, make_list (yyvsp[-1])); }
|
|
break;
|
|
case 634:
|
|
{ yyval = make_node (nod_index_order, 1, yyvsp[0]); }
|
|
break;
|
|
case 636:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 637:
|
|
{ yyval = make_node (nod_insert, e_ins_count,
|
|
yyvsp[-5], make_list (yyvsp[-4]), make_list (yyvsp[-1]), NULL); }
|
|
break;
|
|
case 638:
|
|
{ yyval = make_node (nod_insert, e_ins_count, yyvsp[-2], yyvsp[-1], NULL, yyvsp[0]); }
|
|
break;
|
|
case 640:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 643:
|
|
{ yyval = make_node (nod_delete, e_del_count, yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 644:
|
|
{ yyval = make_node (nod_delete, e_del_count, yyvsp[-1], NULL, yyvsp[0]); }
|
|
break;
|
|
case 645:
|
|
{ yyval = make_node (nod_cursor, e_cur_count, yyvsp[0], NULL, NULL); }
|
|
break;
|
|
case 648:
|
|
{ yyval = make_node (nod_update, e_upd_count,
|
|
yyvsp[-3], make_list (yyvsp[-1]), yyvsp[0], NULL); }
|
|
break;
|
|
case 649:
|
|
{ yyval = make_node (nod_update, e_upd_count,
|
|
yyvsp[-3], make_list (yyvsp[-1]), NULL, yyvsp[0]); }
|
|
break;
|
|
case 651:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 652:
|
|
{ yyval = make_node (nod_assign, 2, yyvsp[0], yyvsp[-2]); }
|
|
break;
|
|
case 655:
|
|
{ yyval = make_node (nod_get_segment, e_blb_count, yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 656:
|
|
{ yyval = make_node (nod_put_segment, e_blb_count, yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[0]); }
|
|
break;
|
|
case 657:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 658:
|
|
{ yyval = make_node (nod_list, 2, NULL, yyvsp[0]); }
|
|
break;
|
|
case 662:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); }
|
|
break;
|
|
case 663:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 665:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); }
|
|
break;
|
|
case 668:
|
|
{ yyval = NULL; }
|
|
break;
|
|
case 669:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 671:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 673:
|
|
{ yyval = make_node (nod_field_name, (int) e_fln_count,
|
|
yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 674:
|
|
{ yyval = make_node (nod_field_name, (int) e_fln_count,
|
|
yyvsp[-2], NULL); }
|
|
break;
|
|
case 675:
|
|
{ yyval = make_node (nod_field_name, (int) e_fln_count,
|
|
NULL, yyvsp[0]); }
|
|
break;
|
|
case 677:
|
|
{ yyval = make_node (nod_or, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 678:
|
|
{ yyval = make_node (nod_and, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 679:
|
|
{ yyval = make_node (nod_not, 1, yyvsp[0]); }
|
|
break;
|
|
case 690:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 691:
|
|
{ yyval = make_node (nod_eql, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 692:
|
|
{ yyval = make_node (nod_lss, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 693:
|
|
{ yyval = make_node (nod_gtr, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 694:
|
|
{ yyval = make_node (nod_geq, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 695:
|
|
{ yyval = make_node (nod_leq, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 696:
|
|
{ yyval = make_node (nod_leq, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 697:
|
|
{ yyval = make_node (nod_geq, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 698:
|
|
{ yyval = make_node (nod_neq, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 699:
|
|
{ yyval = make_node (nod_eql_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 700:
|
|
{ yyval = make_node (nod_lss_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 701:
|
|
{ yyval = make_node (nod_gtr_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 702:
|
|
{ yyval = make_node (nod_geq_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 703:
|
|
{ yyval = make_node (nod_leq_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 704:
|
|
{ yyval = make_node (nod_leq_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 705:
|
|
{ yyval = make_node (nod_geq_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 706:
|
|
{ yyval = make_node (nod_neq_all, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 707:
|
|
{ yyval = make_node (nod_eql_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 708:
|
|
{ yyval = make_node (nod_lss_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 709:
|
|
{ yyval = make_node (nod_gtr_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 710:
|
|
{ yyval = make_node (nod_geq_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 711:
|
|
{ yyval = make_node (nod_leq_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 712:
|
|
{ yyval = make_node (nod_leq_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 713:
|
|
{ yyval = make_node (nod_geq_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 714:
|
|
{ yyval = make_node (nod_neq_any, 2, yyvsp[-5], yyvsp[-1]); }
|
|
break;
|
|
case 717:
|
|
{ yyval = make_node (nod_between, 3, yyvsp[-4], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 718:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_between,
|
|
3, yyvsp[-5], yyvsp[-2], yyvsp[0])); }
|
|
break;
|
|
case 719:
|
|
{ yyval = make_node (nod_like, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 720:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_like, 2, yyvsp[-3], yyvsp[0])); }
|
|
break;
|
|
case 721:
|
|
{ yyval = make_node (nod_like, 3, yyvsp[-4], yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 722:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_like,
|
|
3, yyvsp[-5], yyvsp[-2], yyvsp[0])); }
|
|
break;
|
|
case 723:
|
|
{ yyval = make_node (nod_eql_any, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 724:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_eql_any, 2, yyvsp[-3], yyvsp[0])); }
|
|
break;
|
|
case 725:
|
|
{ yyval = make_node (nod_containing, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 726:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_containing, 2, yyvsp[-3], yyvsp[0])); }
|
|
break;
|
|
case 727:
|
|
{ yyval = make_node (nod_starting, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 728:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_starting, 2, yyvsp[-3], yyvsp[0])); }
|
|
break;
|
|
case 729:
|
|
{ yyval = make_node (nod_starting, 2, yyvsp[-3], yyvsp[0]); }
|
|
break;
|
|
case 730:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_starting, 2, yyvsp[-4], yyvsp[0])); }
|
|
break;
|
|
case 731:
|
|
{ yyval = make_node (nod_exists, 1, yyvsp[-1]); }
|
|
break;
|
|
case 732:
|
|
{ yyval = make_node (nod_singular, 1, yyvsp[-1]); }
|
|
break;
|
|
case 733:
|
|
{ yyval = make_node (nod_missing, 1, yyvsp[-2]); }
|
|
break;
|
|
case 734:
|
|
{ yyval = make_node (nod_not, 1, make_node (nod_missing, 1, yyvsp[-3])); }
|
|
break;
|
|
case 735:
|
|
{ yyval = make_list (yyvsp[-1]); }
|
|
break;
|
|
case 736:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 737:
|
|
{ yyval = make_node (nod_select_expr, e_sel_count,
|
|
yyvsp[-6], make_list (yyvsp[-5]), yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0], NULL); }
|
|
break;
|
|
case 738:
|
|
{ yyval = make_node (nod_select_expr, e_sel_count,
|
|
yyvsp[-6], make_list (yyvsp[-5]), yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0],
|
|
MAKE_constant ((STR) 1, CONSTANT_SLONG)); }
|
|
break;
|
|
case 746:
|
|
{ yyval = make_node (nod_negate, 1, yyvsp[0]); }
|
|
break;
|
|
case 747:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 748:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_add2, 2, yyvsp[-2], yyvsp[0]);
|
|
else
|
|
yyval = make_node (nod_add, 2, yyvsp[-2], yyvsp[0]);
|
|
}
|
|
break;
|
|
case 749:
|
|
{ yyval = make_node (nod_concatenate, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 750:
|
|
{ yyval = make_node (nod_collate, e_coll_count, (NOD) yyvsp[0], yyvsp[-2]); }
|
|
break;
|
|
case 751:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_subtract2, 2, yyvsp[-2], yyvsp[0]);
|
|
else
|
|
yyval = make_node (nod_subtract, 2, yyvsp[-2], yyvsp[0]);
|
|
}
|
|
break;
|
|
case 752:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_multiply2, 2, yyvsp[-2], yyvsp[0]);
|
|
else
|
|
yyval = make_node (nod_multiply, 2, yyvsp[-2], yyvsp[0]);
|
|
}
|
|
break;
|
|
case 753:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_divide2, 2, yyvsp[-2], yyvsp[0]);
|
|
else
|
|
yyval = make_node (nod_divide, 2, yyvsp[-2], yyvsp[0]);
|
|
}
|
|
break;
|
|
case 754:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 755:
|
|
{ yyval = yyvsp[-1]; }
|
|
break;
|
|
case 756:
|
|
{ yyval = make_node (nod_user_name, 0, NULL); }
|
|
break;
|
|
case 757:
|
|
{ yyval = make_node (nod_dbkey, 1, NULL); }
|
|
break;
|
|
case 758:
|
|
{ yyval = make_node (nod_dbkey, 1, yyvsp[-2]); }
|
|
break;
|
|
case 759:
|
|
{
|
|
yyval = make_node (nod_dom_value, 0, NULL);
|
|
}
|
|
break;
|
|
case 760:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 761:
|
|
{
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_dialect_datatype_unsupport,
|
|
gds_arg_number, client_dialect,
|
|
gds_arg_string, "DATE",
|
|
0);
|
|
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_db_dialect_dtype_unsupport,
|
|
gds_arg_number, db_dialect,
|
|
gds_arg_string, "DATE",
|
|
0);
|
|
yyval = make_node (nod_current_date, 0, NULL);
|
|
}
|
|
break;
|
|
case 762:
|
|
{
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_dialect_datatype_unsupport,
|
|
gds_arg_number, client_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_db_dialect_dtype_unsupport,
|
|
gds_arg_number, db_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
yyval = make_node (nod_current_time, 0, NULL);
|
|
}
|
|
break;
|
|
case 763:
|
|
{ yyval = make_node (nod_current_timestamp, 0, NULL); }
|
|
break;
|
|
case 764:
|
|
{ yyval = make_node (nod_array, 2, yyvsp[-3], make_list (yyvsp[-1])); }
|
|
break;
|
|
case 766:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 768:
|
|
{ yyval = make_node (nod_negate, 1, yyvsp[0]); }
|
|
break;
|
|
case 769:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_STRING); }
|
|
break;
|
|
case 770:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SLONG); }
|
|
break;
|
|
case 771:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_DOUBLE); }
|
|
break;
|
|
case 772:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SINT64); }
|
|
break;
|
|
case 773:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_SINT64); }
|
|
break;
|
|
case 775:
|
|
{ yyval = MAKE_str_constant ((STR) yyvsp[0], att_charset); }
|
|
break;
|
|
case 776:
|
|
{
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_dialect_datatype_unsupport,
|
|
gds_arg_number, client_dialect,
|
|
gds_arg_string, "DATE",
|
|
0);
|
|
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_db_dialect_dtype_unsupport,
|
|
gds_arg_number, db_dialect,
|
|
gds_arg_string, "DATE",
|
|
0);
|
|
yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_DATE);
|
|
}
|
|
break;
|
|
case 777:
|
|
{
|
|
if (client_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_dialect_datatype_unsupport,
|
|
gds_arg_number, client_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
if (db_dialect < SQL_DIALECT_V6_TRANSITION)
|
|
ERRD_post (gds_sqlerr, gds_arg_number, (SLONG) -104,
|
|
gds_arg_gds, isc_sql_db_dialect_dtype_unsupport,
|
|
gds_arg_number, db_dialect,
|
|
gds_arg_string, "TIME",
|
|
0);
|
|
yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_TIME);
|
|
}
|
|
break;
|
|
case 778:
|
|
{ yyval = MAKE_constant ((STR) yyvsp[0], CONSTANT_TIMESTAMP); }
|
|
break;
|
|
case 782:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 783:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 784:
|
|
{ yyval = make_node (nod_list, 2, yyvsp[-2], yyvsp[0]); }
|
|
break;
|
|
case 785:
|
|
{ yyval = make_node (nod_parameter, 0, NULL); }
|
|
break;
|
|
case 786:
|
|
{ yyval = make_node (nod_user_name, 0, NULL); }
|
|
break;
|
|
case 787:
|
|
{ yyval = yyvsp[0]; }
|
|
break;
|
|
case 788:
|
|
{ ((STR) yyvsp[0])->str_charset = (TEXT *) yyvsp[-1];
|
|
yyval = yyvsp[0]; }
|
|
break;
|
|
case 790:
|
|
{ yyval = (NOD) - (SLONG) yyvsp[0]; }
|
|
break;
|
|
case 791:
|
|
{ if ((SLONG) yyvsp[0] > SHRT_POS_MAX)
|
|
yyabandon (-842, isc_expec_short);
|
|
/* Short integer expected */
|
|
yyval = yyvsp[0];}
|
|
break;
|
|
case 792:
|
|
{ if ((SLONG) yyvsp[0] > SHRT_NEG_MAX)
|
|
yyabandon (-842, isc_expec_short);
|
|
/* Short integer expected */
|
|
yyval = yyvsp[0];}
|
|
break;
|
|
case 793:
|
|
{ if ((SLONG) yyvsp[0] == 0)
|
|
yyabandon (-842, isc_expec_positive);
|
|
/* Positive number expected */
|
|
yyval = yyvsp[0];}
|
|
break;
|
|
case 794:
|
|
{ if ((SLONG) yyvsp[0] > SHRT_UNSIGNED_MAX)
|
|
yyabandon (-842, isc_expec_ushort);
|
|
/* Unsigned short integer expected */
|
|
yyval = yyvsp[0];}
|
|
break;
|
|
case 796:
|
|
{ yyval = (NOD) - (SLONG) yyvsp[0]; }
|
|
break;
|
|
case 797:
|
|
{ yyval = yyvsp[0];}
|
|
break;
|
|
case 798:
|
|
{ yyval = make_node (nod_agg_count, 0, NULL); }
|
|
break;
|
|
case 799:
|
|
{ yyval = make_node (nod_agg_count, 1, yyvsp[-1]); }
|
|
break;
|
|
case 800:
|
|
{ yyval = make_flag_node (nod_agg_count,
|
|
NOD_AGG_DISTINCT, 1, yyvsp[-1]); }
|
|
break;
|
|
case 801:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_agg_total2, 1, yyvsp[-1]);
|
|
else
|
|
yyval = make_node (nod_agg_total, 1, yyvsp[-1]);
|
|
}
|
|
break;
|
|
case 802:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_flag_node (nod_agg_total2,
|
|
NOD_AGG_DISTINCT, 1, yyvsp[-1]);
|
|
else
|
|
yyval = make_flag_node (nod_agg_total,
|
|
NOD_AGG_DISTINCT, 1, yyvsp[-1]);
|
|
}
|
|
break;
|
|
case 803:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_agg_average2, 1, yyvsp[-1]);
|
|
else
|
|
yyval = make_node (nod_agg_average, 1, yyvsp[-1]);
|
|
}
|
|
break;
|
|
case 804:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_flag_node (nod_agg_average2,
|
|
NOD_AGG_DISTINCT, 1, yyvsp[-1]);
|
|
else
|
|
yyval = make_flag_node (nod_agg_average,
|
|
NOD_AGG_DISTINCT, 1, yyvsp[-1]);
|
|
}
|
|
break;
|
|
case 805:
|
|
{ yyval = make_node (nod_agg_min, 1, yyvsp[-1]); }
|
|
break;
|
|
case 806:
|
|
{ yyval = make_node (nod_agg_min, 1, yyvsp[-1]); }
|
|
break;
|
|
case 807:
|
|
{ yyval = make_node (nod_agg_max, 1, yyvsp[-1]); }
|
|
break;
|
|
case 808:
|
|
{ yyval = make_node (nod_agg_max, 1, yyvsp[-1]); }
|
|
break;
|
|
case 809:
|
|
{ yyval = make_node (nod_cast, e_cast_count, yyvsp[-1], yyvsp[-3]); }
|
|
break;
|
|
case 810:
|
|
{ yyval = make_node (nod_upcase, 1, yyvsp[-1]); }
|
|
break;
|
|
case 811:
|
|
{
|
|
if (client_dialect >= SQL_DIALECT_V6_TRANSITION)
|
|
yyval = make_node (nod_gen_id2, 2, yyvsp[-3], yyvsp[-1]);
|
|
else
|
|
yyval = make_node (nod_gen_id, 2, yyvsp[-3], yyvsp[-1]);
|
|
}
|
|
break;
|
|
case 812:
|
|
{ yyval = make_node (nod_extract, e_extract_count, yyvsp[-3], yyvsp[-1]); }
|
|
break;
|
|
case 813:
|
|
{ yyval = make_node (nod_udf, 2, yyvsp[-3], yyvsp[-1]); }
|
|
break;
|
|
case 814:
|
|
{ yyval = make_node (nod_udf, 1, yyvsp[-2]); }
|
|
break;
|
|
case 815:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_year, CONSTANT_SLONG); }
|
|
break;
|
|
case 816:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_month, CONSTANT_SLONG); }
|
|
break;
|
|
case 817:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_day, CONSTANT_SLONG); }
|
|
break;
|
|
case 818:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_hour, CONSTANT_SLONG); }
|
|
break;
|
|
case 819:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_minute, CONSTANT_SLONG); }
|
|
break;
|
|
case 820:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_second, CONSTANT_SLONG); }
|
|
break;
|
|
case 821:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_weekday, CONSTANT_SLONG); }
|
|
break;
|
|
case 822:
|
|
{ yyval = MAKE_constant ((STR)blr_extract_yearday, CONSTANT_SLONG); }
|
|
break;
|
|
case 825:
|
|
{ yyval = make_node (nod_null, 0, NULL); }
|
|
break;
|
|
}
|
|
DSQL_DSQL_yyssp -= yym;
|
|
yystate = *DSQL_DSQL_yyssp;
|
|
yyvsp -= yym;
|
|
yym = yylhs[yyn];
|
|
if (yystate == 0 && yym == 0)
|
|
{
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: after reduction, shifting from state 0 to\
|
|
state %d\n", YYPREFIX, YYFINAL);
|
|
#endif
|
|
yystate = YYFINAL;
|
|
*++DSQL_DSQL_yyssp = YYFINAL;
|
|
*++yyvsp = yyval;
|
|
if (DSQL_yychar < 0)
|
|
{
|
|
if ((DSQL_yychar = yylex(client_dialect, db_dialect, parser_version, stmt_ambiguous)) < 0) DSQL_yychar = 0;
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
{
|
|
yys = 0;
|
|
if (DSQL_yychar <= YYMAXTOKEN) yys = yyname[DSQL_yychar];
|
|
if (!yys) yys = "illegal-symbol";
|
|
printf("%sdebug: state %d, reading %d (%s)\n",
|
|
YYPREFIX, YYFINAL, DSQL_yychar, yys);
|
|
}
|
|
#endif
|
|
}
|
|
if (DSQL_yychar == 0) goto yyaccept;
|
|
goto yyloop;
|
|
}
|
|
if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
|
|
yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
|
|
yystate = yytable[yyn];
|
|
else
|
|
yystate = yydgoto[yym];
|
|
#if YYDEBUG
|
|
if (yydebug)
|
|
printf("%sdebug: after reduction, shifting from state %d \
|
|
to state %d\n", YYPREFIX, *DSQL_DSQL_yyssp, yystate);
|
|
#endif
|
|
if (DSQL_DSQL_yyssp >= DSQL_yyss + yystacksize - 1)
|
|
{
|
|
goto yyoverflow;
|
|
}
|
|
*++DSQL_DSQL_yyssp = yystate;
|
|
*++yyvsp = yyval;
|
|
goto yyloop;
|
|
yyoverflow:
|
|
yyerror("yacc stack overflow");
|
|
yyabort:
|
|
return (1);
|
|
yyaccept:
|
|
return (0);
|
|
}
|