#ifndef _yacc_defines_keywords
#define _yacc_defines_keywords

#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 BEFORE 269
#define BEGIN 270
#define BETWEEN 271
#define BLOB 272
#define BY 273
#define CAST 274
#define CHARACTER 275
#define CHECK 276
#define COLLATE 277
#define COMMIT 278
#define COMMITTED 279
#define COMPUTED 280
#define CONCATENATE 281
#define CONDITIONAL 282
#define CONSTRAINT 283
#define CONTAINING 284
#define COUNT 285
#define CREATE 286
#define CSTRING 287
#define CURRENT 288
#define CURSOR 289
#define DATABASE 290
#define DATE 291
#define DB_KEY 292
#define DECIMAL 293
#define DECLARE 294
#define DEFAULT 295
#define KW_DELETE 296
#define DESC 297
#define DISTINCT 298
#define DO 299
#define KW_DOMAIN 300
#define DROP 301
#define ELSE 302
#define END 303
#define ENTRY_POINT 304
#define ESCAPE 305
#define EXCEPTION 306
#define EXECUTE 307
#define EXISTS 308
#define EXIT 309
#define EXTERNAL 310
#define FILTER 311
#define FOR 312
#define FOREIGN 313
#define FROM 314
#define FULL 315
#define FUNCTION 316
#define GDSCODE 317
#define GEQ 318
#define GENERATOR 319
#define GEN_ID 320
#define GRANT 321
#define GROUP 322
#define HAVING 323
#define IF 324
#define KW_IN 325
#define INACTIVE 326
#define INNER 327
#define INPUT_TYPE 328
#define INDEX 329
#define INSERT 330
#define INTEGER 331
#define INTO 332
#define IS 333
#define ISOLATION 334
#define JOIN 335
#define KEY 336
#define KW_CHAR 337
#define KW_DEC 338
#define KW_DOUBLE 339
#define KW_FILE 340
#define KW_FLOAT 341
#define KW_INT 342
#define KW_LONG 343
#define KW_NULL 344
#define KW_NUMERIC 345
#define KW_UPPER 346
#define KW_VALUE 347
#define LENGTH 348
#define LEFT 349
#define LEQ 350
#define LEVEL 351
#define LIKE 352
#define MANUAL 353
#define MAXIMUM 354
#define MERGE 355
#define MINIMUM 356
#define MODULE_NAME 357
#define NAMES 358
#define NATIONAL 359
#define NATURAL 360
#define NCHAR 361
#define NEQ 362
#define NO 363
#define NOT 364
#define NOT_GTR 365
#define NOT_LSS 366
#define OF 367
#define ON 368
#define ONLY 369
#define OPTION 370
#define OR 371
#define ORDER 372
#define OUTER 373
#define OUTPUT_TYPE 374
#define KW_OVERFLOW 375
#define PAGE 376
#define PAGES 377
#define KW_PAGE_SIZE 378
#define PARAMETER 379
#define PASSWORD 380
#define PLAN 381
#define POSITION 382
#define POST_EVENT 383
#define PRECISION 384
#define PRIMARY 385
#define PRIVILEGES 386
#define PROCEDURE 387
#define PROTECTED 388
#define READ 389
#define REAL 390
#define REFERENCES 391
#define RESERVING 392
#define RETAIN 393
#define RETURNING_VALUES 394
#define RETURNS 395
#define REVOKE 396
#define RIGHT 397
#define ROLLBACK 398
#define SEGMENT 399
#define SELECT 400
#define SET 401
#define SHADOW 402
#define KW_SHARED 403
#define SINGULAR 404
#define KW_SIZE 405
#define SMALLINT 406
#define SNAPSHOT 407
#define SOME 408
#define SORT 409
#define SQLCODE 410
#define STABILITY 411
#define STARTING 412
#define STATISTICS 413
#define SUB_TYPE 414
#define SUSPEND 415
#define SUM 416
#define TABLE 417
#define THEN 418
#define TO 419
#define TRANSACTION 420
#define TRIGGER 421
#define UNCOMMITTED 422
#define UNION 423
#define UNIQUE 424
#define UPDATE 425
#define USER 426
#define VALUES 427
#define VARCHAR 428
#define VARIABLE 429
#define VARYING 430
#define VERSION 431
#define VIEW 432
#define WAIT 433
#define WHEN 434
#define WHERE 435
#define WHILE 436
#define WITH 437
#define WORK 438
#define WRITE 439
#define FLOAT_NUMBER 440
#define SYMBOL 441
#define NUMBER 442
#define STRING 443
#define INTRODUCER 444
#define ACTION 445
#define ADMIN 446
#define CASCADE 447
#define FREE_IT 448
#define RESTRICT 449
#define ROLE 450
#define COLUMN 451
#define KW_TYPE 452
#define EXTRACT 453
#define YEAR 454
#define MONTH 455
#define DAY 456
#define HOUR 457
#define MINUTE 458
#define SECOND 459
#define WEEKDAY 460
#define YEARDAY 461
#define TIME 462
#define TIMESTAMP 463
#define CURRENT_DATE 464
#define CURRENT_TIME 465
#define CURRENT_TIMESTAMP 466
#define NUMBER64BIT 467
#define SCALEDINT 468
#define CURRENT_USER 469
#define CURRENT_ROLE 470
#define KW_BREAK 471
#define SUBSTRING 472
#define RECREATE 473
#define KW_DESCRIPTOR 474
#define FIRST 475
#define SKIP 476
#define CURRENT_CONNECTION 477
#define CURRENT_TRANSACTION 478
#define BIGINT 479
#define CASE 480
#define NULLIF 481
#define COALESCE 482
#define USING 483
#define NULLS 484
#define LAST 485
#define ROW_COUNT 486
#define LOCK 487
#define SAVEPOINT 488
#define RELEASE 489
#define STATEMENT 490
#define LEAVE 491
#define INSERTING 492
#define UPDATING 493
#define DELETING 494
#define BACKUP 495
#define KW_DIFFERENCE 496
#define OPEN 497
#define CLOSE 498
#define FETCH 499
#define ROWS 500
#define BLOCK 501
#define IIF 502
#define SCALAR_ARRAY 503
#define CROSS 504
#define NEXT 505
#define SEQUENCE 506
#define RESTART 507
#define BOTH 508
#define COLLATION 509
#define COMMENT 510
#define BIT_LENGTH 511
#define CHAR_LENGTH 512
#define CHARACTER_LENGTH 513
#define LEADING 514
#define KW_LOWER 515
#define OCTET_LENGTH 516
#define TRAILING 517
#define TRIM 518
#define RETURNING 519
#define KW_IGNORE 520
#define LIMBO 521
#define UNDO 522
#define REQUESTS 523
#define TIMEOUT 524
#define ABS 525
#define ACCENT 526
#define ACOS 527
#define ALWAYS 528
#define ASCII_CHAR 529
#define ASCII_VAL 530
#define ASIN 531
#define ATAN 532
#define ATAN2 533
#define BIN_AND 534
#define BIN_OR 535
#define BIN_SHL 536
#define BIN_SHR 537
#define BIN_XOR 538
#define CEIL 539
#define CONNECT 540
#define COS 541
#define COSH 542
#define COT 543
#define DATEADD 544
#define DATEDIFF 545
#define DECODE 546
#define DISCONNECT 547
#define EXP 548
#define FLOOR 549
#define GEN_UUID 550
#define GENERATED 551
#define GLOBAL 552
#define HASH 553
#define INSENSITIVE 554
#define LIST 555
#define LN 556
#define LOG 557
#define LOG10 558
#define LPAD 559
#define MATCHED 560
#define MATCHING 561
#define MAXVALUE 562
#define MILLISECOND 563
#define MINVALUE 564
#define MOD 565
#define OVERLAY 566
#define PAD 567
#define PI 568
#define PLACING 569
#define POWER 570
#define PRESERVE 571
#define RAND 572
#define RECURSIVE 573
#define REPLACE 574
#define REVERSE 575
#define ROUND 576
#define RPAD 577
#define SENSITIVE 578
#define SIGN 579
#define SIN 580
#define SINH 581
#define SPACE 582
#define SQRT 583
#define START 584
#define TAN 585
#define TANH 586
#define TEMPORARY 587
#define TRUNC 588
#define WEEK 589
#define AUTONOMOUS 590
#define CHAR_TO_UUID 591
#define FIRSTNAME 592
#define GRANTED 593
#define LASTNAME 594
#define MIDDLENAME 595
#define MAPPING 596
#define OS_NAME 597
#define SIMILAR 598
#define UUID_TO_CHAR 599
#define CALLER 600
#define COMMON 601
#define DATA 602
#define SOURCE 603
#define TWO_PHASE 604
#define BIND_PARAM 605
#define BIN_NOT 606
#define BODY 607
#define CONTINUE 608
#define DDL 609
#define DECRYPT 610
#define ENCRYPT 611
#define ENGINE 612
#define NAME 613
#define OVER 614
#define PACKAGE 615
#define PARTITION 616
#define RDB_GET_CONTEXT 617
#define RDB_SET_CONTEXT 618
#define SCROLL 619
#define PRIOR 620
#define KW_ABSOLUTE 621
#define KW_RELATIVE 622
#define ACOSH 623
#define ASINH 624
#define ATANH 625
#define RETURN 626
#define DETERMINISTIC 627
#define IDENTITY 628
#define DENSE_RANK 629
#define FIRST_VALUE 630
#define NTH_VALUE 631
#define LAST_VALUE 632
#define LAG 633
#define LEAD 634
#define RANK 635
#define ROW_NUMBER 636
#define SQLSTATE 637
#define KW_BOOLEAN 638
#define KW_FALSE 639
#define KW_TRUE 640
#define UNKNOWN 641
#define USAGE 642
#define RDB_RECORD_VERSION 643
#define LINGER 644
#define TAGS 645
#define PLUGIN 646
#define SERVERWIDE 647
#define INCREMENT 648
#define TRUSTED 649
#define ROW 650
#define OFFSET 651
#define STDDEV_SAMP 652
#define STDDEV_POP 653
#define VAR_SAMP 654
#define VAR_POP 655
#define COVAR_SAMP 656
#define COVAR_POP 657
#define CORR 658
#define REGR_AVGX 659
#define REGR_AVGY 660
#define REGR_COUNT 661
#define REGR_INTERCEPT 662
#define REGR_R2 663
#define REGR_SLOPE 664
#define REGR_SXX 665
#define REGR_SXY 666
#define REGR_SYY 667
#define LOCALTIME 668
#define LOCALTIMESTAMP 669
#define UMINUS 670
#define UPLUS 671
#define YYERRCODE 256

#endif /* _yacc_defines_keywords */

#ifndef _yacc_defines_yystype
#define _yacc_defines_yystype

typedef union
{
	BaseNullable<int> nullableIntVal;
	BaseNullable<bool> nullableBoolVal;
	bool boolVal;
	int intVal;
	unsigned uintVal;
	SLONG int32Val;
	BaseNullable<SLONG> nullableInt32Val;
	SINT64 int64Val;
	FB_UINT64 uint64Val;
	BaseNullable<SINT64> nullableInt64Val;
	BaseNullable<BaseNullable<SINT64> > nullableNullableInt64Val;
	BaseNullable<FB_UINT64> nullableUint64Val;
	Jrd::ScaledNumber scaledNumber;
	UCHAR blrOp;
	Jrd::OrderNode::NullsPlacement nullsPlacement;
	Jrd::ComparativeBoolNode::DsqlFlag cmpBoolFlag;
	Jrd::dsql_fld* legacyField;
	Jrd::ReturningClause* returningClause;
	Firebird::MetaName* metaNamePtr;
	Firebird::ObjectsArray<Firebird::MetaName>* metaNameArray;
	Firebird::PathName* pathNamePtr;
	Firebird::QualifiedName* qualifiedNamePtr;
	Firebird::string* stringPtr;
	Jrd::IntlString* intlStringPtr;
	Jrd::DbFileClause* dbFileClause;
	Firebird::Array<NestConst<Jrd::DbFileClause> >* dbFilesClause;
	Jrd::ExternalClause* externalClause;
	Firebird::Array<NestConst<Jrd::ParameterClause> >* parametersClause;
	Jrd::Node* node;
	Jrd::ExprNode* exprNode;
	Jrd::ValueExprNode* valueExprNode;
	Jrd::BoolExprNode* boolExprNode;
	Jrd::RecordSourceNode* recSourceNode;
	Jrd::RelationSourceNode* relSourceNode;
	Jrd::ValueListNode* valueListNode;
	Jrd::RecSourceListNode* recSourceListNode;
	Jrd::RseNode* rseNode;
	Jrd::PlanNode* planNode;
	Jrd::PlanNode::AccessType* accessType;
	Jrd::StmtNode* stmtNode;
	Jrd::DdlNode* ddlNode;
	Jrd::SelectExprNode* selectExprNode;
	Jrd::WithClause* withClause;
	Jrd::RowsClause* rowsClause;
	Jrd::FieldNode* fieldNode;
	Jrd::DecodeNode* decodeNode;
	Firebird::Array<Jrd::FieldNode*>* fieldArray;
	Firebird::Array<NestConst<Jrd::FieldNode> >* nestFieldArray;
	Jrd::TransactionNode* traNode;
	Firebird::Array<Jrd::PrivilegeClause>* privilegeArray;
	Jrd::GranteeClause* granteeClause;
	Firebird::Array<Jrd::GranteeClause>* granteeArray;
	Jrd::GrantRevokeNode* grantRevokeNode;
	Jrd::CreateCollationNode* createCollationNode;
	Jrd::CreateDomainNode* createDomainNode;
	Jrd::AlterDomainNode* alterDomainNode;
	Jrd::CreateAlterFunctionNode* createAlterFunctionNode;
	Jrd::CreateAlterProcedureNode* createAlterProcedureNode;
	Jrd::CreateAlterTriggerNode* createAlterTriggerNode;
	Jrd::CreateAlterPackageNode* createAlterPackageNode;
	Jrd::CreateFilterNode::NameNumber* filterNameNumber;
	Jrd::CreateAlterExceptionNode* createAlterExceptionNode;
	Jrd::CreateAlterSequenceNode* createAlterSequenceNode;
	Jrd::CreateShadowNode* createShadowNode;
	Firebird::Array<Jrd::CreateAlterPackageNode::Item>* packageItems;
	Jrd::ExceptionArray* exceptionArray;
	Jrd::CreateAlterPackageNode::Item packageItem;
	Jrd::CreatePackageBodyNode* createPackageBodyNode;
	Jrd::BoolSourceClause* boolSourceClause;
	Jrd::ValueSourceClause* valueSourceClause;
	Jrd::RelationNode* relationNode;
	Jrd::RelationNode::AddColumnClause* addColumnClause;
	Jrd::RelationNode::RefActionClause* refActionClause;
	Jrd::RelationNode::IndexConstraintClause* indexConstraintClause;
	Jrd::CreateRelationNode* createRelationNode;
	Jrd::CreateAlterViewNode* createAlterViewNode;
	Jrd::CreateIndexNode* createIndexNode;
	Jrd::AlterDatabaseNode* alterDatabaseNode;
	Jrd::ExecBlockNode* execBlockNode;
	Jrd::StoreNode* storeNode;
	Jrd::UpdateOrInsertNode* updInsNode;
	Jrd::AggNode* aggNode;
	Jrd::SysFuncCallNode* sysFuncCallNode;
	Jrd::ValueIfNode* valueIfNode;
	Jrd::CompoundStmtNode* compoundStmtNode;
	Jrd::CursorStmtNode* cursorStmtNode;
	Jrd::DeclareCursorNode* declCursorNode;
	Jrd::ErrorHandlerNode* errorHandlerNode;
	Jrd::ExecStatementNode* execStatementNode;
	Jrd::MergeNode* mergeNode;
	Jrd::MergeNode::NotMatched* mergeNotMatchedClause;
	Jrd::MergeNode::Matched* mergeMatchedClause;
	Jrd::SelectNode* selectNode;
	Jrd::ForNode* forNode;
	Jrd::SetTransactionNode* setTransactionNode;
	Jrd::SetTransactionNode::RestrictionOption* setTransactionRestrictionClause;
	Jrd::DeclareSubProcNode* declareSubProcNode;
	Jrd::DeclareSubFuncNode* declareSubFuncNode;
	Jrd::dsql_req* dsqlReq;
	Jrd::CreateAlterUserNode* createAlterUserNode;
	Jrd::MappingNode* mappingNode;
	Jrd::MappingNode::OP mappingOp;
	Jrd::SetRoleNode* setRoleNode;
} YYSTYPE;

#endif /* _yacc_defines_yystype */

