OpenCOBOL 1.1pre-rel
parser.c
Go to the documentation of this file.
00001 /* A Bison parser, made by GNU Bison 1.875.  */
00002 
00003 /* Skeleton parser for Yacc-like parsing with Bison,
00004    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
00005 
00006    This program is free software; you can redistribute it and/or modify
00007    it under the terms of the GNU General Public License as published by
00008    the Free Software Foundation; either version 2, or (at your option)
00009    any later version.
00010 
00011    This program is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014    GNU General Public License for more details.
00015 
00016    You should have received a copy of the GNU General Public License
00017    along with this program; if not, write to the Free Software
00018    Foundation, Inc., 59 Temple Place - Suite 330,
00019    Boston, MA 02111-1307, USA.  */
00020 
00021 /* As a special exception, when this file is copied by Bison into a
00022    Bison output file, you may use that output file without restriction.
00023    This special exception was added by the Free Software Foundation
00024    in version 1.24 of Bison.  */
00025 
00026 /* Written by Richard Stallman by simplifying the original so called
00027    ``semantic'' parser.  */
00028 
00029 /* All symbols defined below should begin with yy or YY, to avoid
00030    infringing on user name space.  This should be done even for local
00031    variables, as they might otherwise be expanded by user macros.
00032    There are some unavoidable exceptions within include files to
00033    define necessary library symbols; they are noted "INFRINGES ON
00034    USER NAME SPACE" below.  */
00035 
00036 /* Identify Bison output.  */
00037 #define YYBISON 1
00038 
00039 /* Skeleton name.  */
00040 #define YYSKELETON_NAME "yacc.c"
00041 
00042 /* Pure parsers.  */
00043 #define YYPURE 0
00044 
00045 /* Using locations.  */
00046 #define YYLSP_NEEDED 0
00047 
00048 
00049 
00050 /* Tokens.  */
00051 #ifndef YYTOKENTYPE
00052 # define YYTOKENTYPE
00053    /* Put the tokens into the symbol table, so that GDB and other debuggers
00054       know about them.  */
00055    enum yytokentype {
00056      TOKEN_EOF = 0,
00057      ACCEPT = 258,
00058      ACCESS = 259,
00059      ADD = 260,
00060      ADDRESS = 261,
00061      ADVANCING = 262,
00062      AFTER = 263,
00063      ALL = 264,
00064      ALLOCATE = 265,
00065      ALPHABET = 266,
00066      ALPHABETIC = 267,
00067      ALPHABETIC_LOWER = 268,
00068      ALPHABETIC_UPPER = 269,
00069      ALPHANUMERIC = 270,
00070      ALPHANUMERIC_EDITED = 271,
00071      ALSO = 272,
00072      ALTER = 273,
00073      ALTERNATE = 274,
00074      AND = 275,
00075      ANY = 276,
00076      ARE = 277,
00077      AREA = 278,
00078      ARGUMENT_NUMBER = 279,
00079      ARGUMENT_VALUE = 280,
00080      AS = 281,
00081      ASCENDING = 282,
00082      ASSIGN = 283,
00083      AT = 284,
00084      AUTO = 285,
00085      AUTOMATIC = 286,
00086      BACKGROUND_COLOR = 287,
00087      BASED = 288,
00088      BEFORE = 289,
00089      BELL = 290,
00090      BINARY = 291,
00091      BINARY_C_LONG = 292,
00092      BINARY_CHAR = 293,
00093      BINARY_DOUBLE = 294,
00094      BINARY_LONG = 295,
00095      BINARY_SHORT = 296,
00096      BLANK = 297,
00097      BLANK_LINE = 298,
00098      BLANK_SCREEN = 299,
00099      BLINK = 300,
00100      BLOCK = 301,
00101      BOTTOM = 302,
00102      BY = 303,
00103      BYTE_LENGTH = 304,
00104      CALL = 305,
00105      CANCEL = 306,
00106      CH = 307,
00107      CHAINING = 308,
00108      CHARACTER = 309,
00109      CHARACTERS = 310,
00110      CLASS = 311,
00111      CLOSE = 312,
00112      CODE = 313,
00113      CODE_SET = 314,
00114      COLLATING = 315,
00115      COL = 316,
00116      COLS = 317,
00117      COLUMN = 318,
00118      COLUMNS = 319,
00119      COMMA = 320,
00120      COMMAND_LINE = 321,
00121      COMMA_DELIM = 322,
00122      COMMIT = 323,
00123      COMMON = 324,
00124      COMP = 325,
00125      COMPUTE = 326,
00126      COMP_1 = 327,
00127      COMP_2 = 328,
00128      COMP_3 = 329,
00129      COMP_4 = 330,
00130      COMP_5 = 331,
00131      COMP_X = 332,
00132      CONCATENATE_FUNC = 333,
00133      CONFIGURATION = 334,
00134      CONSTANT = 335,
00135      CONTAINS = 336,
00136      CONTENT = 337,
00137      CONTINUE = 338,
00138      CONTROL = 339,
00139      CONTROLS = 340,
00140      CONTROL_FOOTING = 341,
00141      CONTROL_HEADING = 342,
00142      CONVERTING = 343,
00143      CORRESPONDING = 344,
00144      COUNT = 345,
00145      CRT = 346,
00146      CURRENCY = 347,
00147      CURRENT_DATE_FUNC = 348,
00148      CURSOR = 349,
00149      CYCLE = 350,
00150      DATA = 351,
00151      DATE = 352,
00152      DAY = 353,
00153      DAY_OF_WEEK = 354,
00154      DE = 355,
00155      DEBUGGING = 356,
00156      DECIMAL_POINT = 357,
00157      DECLARATIVES = 358,
00158      DEFAULT = 359,
00159      DELETE = 360,
00160      DELIMITED = 361,
00161      DELIMITER = 362,
00162      DEPENDING = 363,
00163      DESCENDING = 364,
00164      DETAIL = 365,
00165      DISK = 366,
00166      DISPLAY = 367,
00167      DIVIDE = 368,
00168      DIVISION = 369,
00169      DOWN = 370,
00170      DUPLICATES = 371,
00171      DYNAMIC = 372,
00172      EBCDIC = 373,
00173      ELSE = 374,
00174      END = 375,
00175      END_ACCEPT = 376,
00176      END_ADD = 377,
00177      END_CALL = 378,
00178      END_COMPUTE = 379,
00179      END_DELETE = 380,
00180      END_DISPLAY = 381,
00181      END_DIVIDE = 382,
00182      END_EVALUATE = 383,
00183      END_FUNCTION = 384,
00184      END_IF = 385,
00185      END_MULTIPLY = 386,
00186      END_PERFORM = 387,
00187      END_PROGRAM = 388,
00188      END_READ = 389,
00189      END_RETURN = 390,
00190      END_REWRITE = 391,
00191      END_SEARCH = 392,
00192      END_START = 393,
00193      END_STRING = 394,
00194      END_SUBTRACT = 395,
00195      END_UNSTRING = 396,
00196      END_WRITE = 397,
00197      ENTRY = 398,
00198      ENVIRONMENT = 399,
00199      ENVIRONMENT_NAME = 400,
00200      ENVIRONMENT_VALUE = 401,
00201      EOL = 402,
00202      EOP = 403,
00203      EOS = 404,
00204      EQUAL = 405,
00205      EQUALS = 406,
00206      ERASE = 407,
00207      ERROR = 408,
00208      ESCAPE = 409,
00209      EVALUATE = 410,
00210      EVENT_STATUS = 411,
00211      EXCEPTION = 412,
00212      EXCLUSIVE = 413,
00213      EXIT = 414,
00214      EXTEND = 415,
00215      EXTERNAL = 416,
00216      FD = 417,
00217      FILE_CONTROL = 418,
00218      FILE_ID = 419,
00219      FILLER = 420,
00220      FINAL = 421,
00221      FIRST = 422,
00222      FOOTING = 423,
00223      FOR = 424,
00224      FOREGROUND_COLOR = 425,
00225      FOREVER = 426,
00226      FREE = 427,
00227      FROM = 428,
00228      FULL = 429,
00229      FUNCTION = 430,
00230      FUNCTION_ID = 431,
00231      FUNCTION_NAME = 432,
00232      GE = 433,
00233      GENERATE = 434,
00234      GIVING = 435,
00235      GLOBAL = 436,
00236      GO = 437,
00237      GOBACK = 438,
00238      GREATER = 439,
00239      GROUP = 440,
00240      HEADING = 441,
00241      HIGHLIGHT = 442,
00242      HIGH_VALUE = 443,
00243      IDENTIFICATION = 444,
00244      IF = 445,
00245      IGNORE = 446,
00246      IGNORING = 447,
00247      IN = 448,
00248      INDEX = 449,
00249      INDEXED = 450,
00250      INDICATE = 451,
00251      INITIALIZE = 452,
00252      INITIALIZED = 453,
00253      INITIATE = 454,
00254      INPUT = 455,
00255      INPUT_OUTPUT = 456,
00256      INSPECT = 457,
00257      INTO = 458,
00258      INTRINSIC = 459,
00259      INVALID = 460,
00260      INVALID_KEY = 461,
00261      IS = 462,
00262      I_O = 463,
00263      I_O_CONTROL = 464,
00264      JUSTIFIED = 465,
00265      KEY = 466,
00266      LABEL = 467,
00267      LAST = 468,
00268      LAST_DETAIL = 469,
00269      LE = 470,
00270      LEADING = 471,
00271      LEFT = 472,
00272      LENGTH = 473,
00273      LESS = 474,
00274      LIMIT = 475,
00275      LIMITS = 476,
00276      LINAGE = 477,
00277      LINAGE_COUNTER = 478,
00278      LINE = 479,
00279      LINES = 480,
00280      LINKAGE = 481,
00281      LITERAL = 482,
00282      LOCALE = 483,
00283      LOCALE_DT_FUNC = 484,
00284      LOCAL_STORAGE = 485,
00285      LOCK = 486,
00286      LOWER_CASE_FUNC = 487,
00287      LOWLIGHT = 488,
00288      LOW_VALUE = 489,
00289      MANUAL = 490,
00290      MEMORY = 491,
00291      MERGE = 492,
00292      MINUS = 493,
00293      MNEMONIC_NAME = 494,
00294      MODE = 495,
00295      MOVE = 496,
00296      MULTIPLE = 497,
00297      MULTIPLY = 498,
00298      NATIONAL = 499,
00299      NATIONAL_EDITED = 500,
00300      NATIVE = 501,
00301      NE = 502,
00302      NEGATIVE = 503,
00303      NEXT = 504,
00304      NEXT_SENTENCE = 505,
00305      NO = 506,
00306      NOT = 507,
00307      NOT_END = 508,
00308      NOT_EOP = 509,
00309      NOT_EXCEPTION = 510,
00310      NOT_INVALID_KEY = 511,
00311      NOT_OVERFLOW = 512,
00312      NOT_SIZE_ERROR = 513,
00313      NO_ADVANCING = 514,
00314      NUMBER = 515,
00315      NUMBERS = 516,
00316      NUMERIC = 517,
00317      NUMERIC_EDITED = 518,
00318      NUMVALC_FUNC = 519,
00319      OBJECT_COMPUTER = 520,
00320      OCCURS = 521,
00321      OF = 522,
00322      OFF = 523,
00323      OMITTED = 524,
00324      ON = 525,
00325      ONLY = 526,
00326      OPEN = 527,
00327      OPTIONAL = 528,
00328      OR = 529,
00329      ORDER = 530,
00330      ORGANIZATION = 531,
00331      OTHER = 532,
00332      OUTPUT = 533,
00333      OVERFLOW = 534,
00334      OVERLINE = 535,
00335      PACKED_DECIMAL = 536,
00336      PADDING = 537,
00337      PAGE = 538,
00338      PAGE_FOOTING = 539,
00339      PAGE_HEADING = 540,
00340      PARAGRAPH = 541,
00341      PERFORM = 542,
00342      PICTURE = 543,
00343      PLUS = 544,
00344      POINTER = 545,
00345      POSITION = 546,
00346      POSITIVE = 547,
00347      PRESENT = 548,
00348      PREVIOUS = 549,
00349      PRINTER = 550,
00350      PRINTING = 551,
00351      PROCEDURE = 552,
00352      PROCEDURES = 553,
00353      PROCEED = 554,
00354      PROGRAM = 555,
00355      PROGRAM_ID = 556,
00356      PROGRAM_NAME = 557,
00357      PROGRAM_POINTER = 558,
00358      PROMPT = 559,
00359      QUOTE = 560,
00360      RANDOM = 561,
00361      RD = 562,
00362      READ = 563,
00363      RECORD = 564,
00364      RECORDING = 565,
00365      RECORDS = 566,
00366      RECURSIVE = 567,
00367      REDEFINES = 568,
00368      REEL = 569,
00369      REFERENCE = 570,
00370      RELATIVE = 571,
00371      RELEASE = 572,
00372      REMAINDER = 573,
00373      REMOVAL = 574,
00374      RENAMES = 575,
00375      REPLACING = 576,
00376      REPORT = 577,
00377      REPORTING = 578,
00378      REPORTS = 579,
00379      REPORT_FOOTING = 580,
00380      REPORT_HEADING = 581,
00381      REPOSITORY = 582,
00382      REQUIRED = 583,
00383      RESERVE = 584,
00384      RETURN = 585,
00385      RETURNING = 586,
00386      REVERSE_FUNC = 587,
00387      REVERSE_VIDEO = 588,
00388      REWIND = 589,
00389      REWRITE = 590,
00390      RIGHT = 591,
00391      ROLLBACK = 592,
00392      ROUNDED = 593,
00393      RUN = 594,
00394      SAME = 595,
00395      SCREEN = 596,
00396      SCREEN_CONTROL = 597,
00397      SCROLL = 598,
00398      SD = 599,
00399      SEARCH = 600,
00400      SECTION = 601,
00401      SECURE = 602,
00402      SEGMENT_LIMIT = 603,
00403      SELECT = 604,
00404      SEMI_COLON = 605,
00405      SENTENCE = 606,
00406      SEPARATE = 607,
00407      SEQUENCE = 608,
00408      SEQUENTIAL = 609,
00409      SET = 610,
00410      SHARING = 611,
00411      SIGN = 612,
00412      SIGNED = 613,
00413      SIGNED_INT = 614,
00414      SIGNED_LONG = 615,
00415      SIGNED_SHORT = 616,
00416      SIZE = 617,
00417      SIZE_ERROR = 618,
00418      SORT = 619,
00419      SORT_MERGE = 620,
00420      SOURCE = 621,
00421      SOURCE_COMPUTER = 622,
00422      SPACE = 623,
00423      SPECIAL_NAMES = 624,
00424      STANDARD = 625,
00425      STANDARD_1 = 626,
00426      STANDARD_2 = 627,
00427      START = 628,
00428      STATUS = 629,
00429      STOP = 630,
00430      STRING = 631,
00431      SUBSTITUTE_FUNC = 632,
00432      SUBSTITUTE_CASE_FUNC = 633,
00433      SUBTRACT = 634,
00434      SUM = 635,
00435      SUPPRESS = 636,
00436      SYMBOLIC = 637,
00437      SYNCHRONIZED = 638,
00438      TALLYING = 639,
00439      TAPE = 640,
00440      TERMINATE = 641,
00441      TEST = 642,
00442      THAN = 643,
00443      THEN = 644,
00444      THRU = 645,
00445      TIME = 646,
00446      TIMES = 647,
00447      TO = 648,
00448      TOK_FALSE = 649,
00449      TOK_FILE = 650,
00450      TOK_INITIAL = 651,
00451      TOK_NULL = 652,
00452      TOK_TRUE = 653,
00453      TOP = 654,
00454      TRAILING = 655,
00455      TRANSFORM = 656,
00456      TRIM_FUNCTION = 657,
00457      TYPE = 658,
00458      UNDERLINE = 659,
00459      UNIT = 660,
00460      UNLOCK = 661,
00461      UNSIGNED = 662,
00462      UNSIGNED_INT = 663,
00463      UNSIGNED_LONG = 664,
00464      UNSIGNED_SHORT = 665,
00465      UNSTRING = 666,
00466      UNTIL = 667,
00467      UP = 668,
00468      UPDATE = 669,
00469      UPON = 670,
00470      UPON_ARGUMENT_NUMBER = 671,
00471      UPON_COMMAND_LINE = 672,
00472      UPON_ENVIRONMENT_NAME = 673,
00473      UPON_ENVIRONMENT_VALUE = 674,
00474      UPPER_CASE_FUNC = 675,
00475      USAGE = 676,
00476      USE = 677,
00477      USING = 678,
00478      VALUE = 679,
00479      VARYING = 680,
00480      WAIT = 681,
00481      WHEN = 682,
00482      WHEN_COMPILED_FUNC = 683,
00483      WITH = 684,
00484      WORD = 685,
00485      WORDS = 686,
00486      WORKING_STORAGE = 687,
00487      WRITE = 688,
00488      YYYYDDD = 689,
00489      YYYYMMDD = 690,
00490      ZERO = 691,
00491      UNARY_SIGN = 692
00492    };
00493 #endif
00494 #define TOKEN_EOF 0
00495 #define ACCEPT 258
00496 #define ACCESS 259
00497 #define ADD 260
00498 #define ADDRESS 261
00499 #define ADVANCING 262
00500 #define AFTER 263
00501 #define ALL 264
00502 #define ALLOCATE 265
00503 #define ALPHABET 266
00504 #define ALPHABETIC 267
00505 #define ALPHABETIC_LOWER 268
00506 #define ALPHABETIC_UPPER 269
00507 #define ALPHANUMERIC 270
00508 #define ALPHANUMERIC_EDITED 271
00509 #define ALSO 272
00510 #define ALTER 273
00511 #define ALTERNATE 274
00512 #define AND 275
00513 #define ANY 276
00514 #define ARE 277
00515 #define AREA 278
00516 #define ARGUMENT_NUMBER 279
00517 #define ARGUMENT_VALUE 280
00518 #define AS 281
00519 #define ASCENDING 282
00520 #define ASSIGN 283
00521 #define AT 284
00522 #define AUTO 285
00523 #define AUTOMATIC 286
00524 #define BACKGROUND_COLOR 287
00525 #define BASED 288
00526 #define BEFORE 289
00527 #define BELL 290
00528 #define BINARY 291
00529 #define BINARY_C_LONG 292
00530 #define BINARY_CHAR 293
00531 #define BINARY_DOUBLE 294
00532 #define BINARY_LONG 295
00533 #define BINARY_SHORT 296
00534 #define BLANK 297
00535 #define BLANK_LINE 298
00536 #define BLANK_SCREEN 299
00537 #define BLINK 300
00538 #define BLOCK 301
00539 #define BOTTOM 302
00540 #define BY 303
00541 #define BYTE_LENGTH 304
00542 #define CALL 305
00543 #define CANCEL 306
00544 #define CH 307
00545 #define CHAINING 308
00546 #define CHARACTER 309
00547 #define CHARACTERS 310
00548 #define CLASS 311
00549 #define CLOSE 312
00550 #define CODE 313
00551 #define CODE_SET 314
00552 #define COLLATING 315
00553 #define COL 316
00554 #define COLS 317
00555 #define COLUMN 318
00556 #define COLUMNS 319
00557 #define COMMA 320
00558 #define COMMAND_LINE 321
00559 #define COMMA_DELIM 322
00560 #define COMMIT 323
00561 #define COMMON 324
00562 #define COMP 325
00563 #define COMPUTE 326
00564 #define COMP_1 327
00565 #define COMP_2 328
00566 #define COMP_3 329
00567 #define COMP_4 330
00568 #define COMP_5 331
00569 #define COMP_X 332
00570 #define CONCATENATE_FUNC 333
00571 #define CONFIGURATION 334
00572 #define CONSTANT 335
00573 #define CONTAINS 336
00574 #define CONTENT 337
00575 #define CONTINUE 338
00576 #define CONTROL 339
00577 #define CONTROLS 340
00578 #define CONTROL_FOOTING 341
00579 #define CONTROL_HEADING 342
00580 #define CONVERTING 343
00581 #define CORRESPONDING 344
00582 #define COUNT 345
00583 #define CRT 346
00584 #define CURRENCY 347
00585 #define CURRENT_DATE_FUNC 348
00586 #define CURSOR 349
00587 #define CYCLE 350
00588 #define DATA 351
00589 #define DATE 352
00590 #define DAY 353
00591 #define DAY_OF_WEEK 354
00592 #define DE 355
00593 #define DEBUGGING 356
00594 #define DECIMAL_POINT 357
00595 #define DECLARATIVES 358
00596 #define DEFAULT 359
00597 #define DELETE 360
00598 #define DELIMITED 361
00599 #define DELIMITER 362
00600 #define DEPENDING 363
00601 #define DESCENDING 364
00602 #define DETAIL 365
00603 #define DISK 366
00604 #define DISPLAY 367
00605 #define DIVIDE 368
00606 #define DIVISION 369
00607 #define DOWN 370
00608 #define DUPLICATES 371
00609 #define DYNAMIC 372
00610 #define EBCDIC 373
00611 #define ELSE 374
00612 #define END 375
00613 #define END_ACCEPT 376
00614 #define END_ADD 377
00615 #define END_CALL 378
00616 #define END_COMPUTE 379
00617 #define END_DELETE 380
00618 #define END_DISPLAY 381
00619 #define END_DIVIDE 382
00620 #define END_EVALUATE 383
00621 #define END_FUNCTION 384
00622 #define END_IF 385
00623 #define END_MULTIPLY 386
00624 #define END_PERFORM 387
00625 #define END_PROGRAM 388
00626 #define END_READ 389
00627 #define END_RETURN 390
00628 #define END_REWRITE 391
00629 #define END_SEARCH 392
00630 #define END_START 393
00631 #define END_STRING 394
00632 #define END_SUBTRACT 395
00633 #define END_UNSTRING 396
00634 #define END_WRITE 397
00635 #define ENTRY 398
00636 #define ENVIRONMENT 399
00637 #define ENVIRONMENT_NAME 400
00638 #define ENVIRONMENT_VALUE 401
00639 #define EOL 402
00640 #define EOP 403
00641 #define EOS 404
00642 #define EQUAL 405
00643 #define EQUALS 406
00644 #define ERASE 407
00645 #define ERROR 408
00646 #define ESCAPE 409
00647 #define EVALUATE 410
00648 #define EVENT_STATUS 411
00649 #define EXCEPTION 412
00650 #define EXCLUSIVE 413
00651 #define EXIT 414
00652 #define EXTEND 415
00653 #define EXTERNAL 416
00654 #define FD 417
00655 #define FILE_CONTROL 418
00656 #define FILE_ID 419
00657 #define FILLER 420
00658 #define FINAL 421
00659 #define FIRST 422
00660 #define FOOTING 423
00661 #define FOR 424
00662 #define FOREGROUND_COLOR 425
00663 #define FOREVER 426
00664 #define FREE 427
00665 #define FROM 428
00666 #define FULL 429
00667 #define FUNCTION 430
00668 #define FUNCTION_ID 431
00669 #define FUNCTION_NAME 432
00670 #define GE 433
00671 #define GENERATE 434
00672 #define GIVING 435
00673 #define GLOBAL 436
00674 #define GO 437
00675 #define GOBACK 438
00676 #define GREATER 439
00677 #define GROUP 440
00678 #define HEADING 441
00679 #define HIGHLIGHT 442
00680 #define HIGH_VALUE 443
00681 #define IDENTIFICATION 444
00682 #define IF 445
00683 #define IGNORE 446
00684 #define IGNORING 447
00685 #define IN 448
00686 #define INDEX 449
00687 #define INDEXED 450
00688 #define INDICATE 451
00689 #define INITIALIZE 452
00690 #define INITIALIZED 453
00691 #define INITIATE 454
00692 #define INPUT 455
00693 #define INPUT_OUTPUT 456
00694 #define INSPECT 457
00695 #define INTO 458
00696 #define INTRINSIC 459
00697 #define INVALID 460
00698 #define INVALID_KEY 461
00699 #define IS 462
00700 #define I_O 463
00701 #define I_O_CONTROL 464
00702 #define JUSTIFIED 465
00703 #define KEY 466
00704 #define LABEL 467
00705 #define LAST 468
00706 #define LAST_DETAIL 469
00707 #define LE 470
00708 #define LEADING 471
00709 #define LEFT 472
00710 #define LENGTH 473
00711 #define LESS 474
00712 #define LIMIT 475
00713 #define LIMITS 476
00714 #define LINAGE 477
00715 #define LINAGE_COUNTER 478
00716 #define LINE 479
00717 #define LINES 480
00718 #define LINKAGE 481
00719 #define LITERAL 482
00720 #define LOCALE 483
00721 #define LOCALE_DT_FUNC 484
00722 #define LOCAL_STORAGE 485
00723 #define LOCK 486
00724 #define LOWER_CASE_FUNC 487
00725 #define LOWLIGHT 488
00726 #define LOW_VALUE 489
00727 #define MANUAL 490
00728 #define MEMORY 491
00729 #define MERGE 492
00730 #define MINUS 493
00731 #define MNEMONIC_NAME 494
00732 #define MODE 495
00733 #define MOVE 496
00734 #define MULTIPLE 497
00735 #define MULTIPLY 498
00736 #define NATIONAL 499
00737 #define NATIONAL_EDITED 500
00738 #define NATIVE 501
00739 #define NE 502
00740 #define NEGATIVE 503
00741 #define NEXT 504
00742 #define NEXT_SENTENCE 505
00743 #define NO 506
00744 #define NOT 507
00745 #define NOT_END 508
00746 #define NOT_EOP 509
00747 #define NOT_EXCEPTION 510
00748 #define NOT_INVALID_KEY 511
00749 #define NOT_OVERFLOW 512
00750 #define NOT_SIZE_ERROR 513
00751 #define NO_ADVANCING 514
00752 #define NUMBER 515
00753 #define NUMBERS 516
00754 #define NUMERIC 517
00755 #define NUMERIC_EDITED 518
00756 #define NUMVALC_FUNC 519
00757 #define OBJECT_COMPUTER 520
00758 #define OCCURS 521
00759 #define OF 522
00760 #define OFF 523
00761 #define OMITTED 524
00762 #define ON 525
00763 #define ONLY 526
00764 #define OPEN 527
00765 #define OPTIONAL 528
00766 #define OR 529
00767 #define ORDER 530
00768 #define ORGANIZATION 531
00769 #define OTHER 532
00770 #define OUTPUT 533
00771 #define OVERFLOW 534
00772 #define OVERLINE 535
00773 #define PACKED_DECIMAL 536
00774 #define PADDING 537
00775 #define PAGE 538
00776 #define PAGE_FOOTING 539
00777 #define PAGE_HEADING 540
00778 #define PARAGRAPH 541
00779 #define PERFORM 542
00780 #define PICTURE 543
00781 #define PLUS 544
00782 #define POINTER 545
00783 #define POSITION 546
00784 #define POSITIVE 547
00785 #define PRESENT 548
00786 #define PREVIOUS 549
00787 #define PRINTER 550
00788 #define PRINTING 551
00789 #define PROCEDURE 552
00790 #define PROCEDURES 553
00791 #define PROCEED 554
00792 #define PROGRAM 555
00793 #define PROGRAM_ID 556
00794 #define PROGRAM_NAME 557
00795 #define PROGRAM_POINTER 558
00796 #define PROMPT 559
00797 #define QUOTE 560
00798 #define RANDOM 561
00799 #define RD 562
00800 #define READ 563
00801 #define RECORD 564
00802 #define RECORDING 565
00803 #define RECORDS 566
00804 #define RECURSIVE 567
00805 #define REDEFINES 568
00806 #define REEL 569
00807 #define REFERENCE 570
00808 #define RELATIVE 571
00809 #define RELEASE 572
00810 #define REMAINDER 573
00811 #define REMOVAL 574
00812 #define RENAMES 575
00813 #define REPLACING 576
00814 #define REPORT 577
00815 #define REPORTING 578
00816 #define REPORTS 579
00817 #define REPORT_FOOTING 580
00818 #define REPORT_HEADING 581
00819 #define REPOSITORY 582
00820 #define REQUIRED 583
00821 #define RESERVE 584
00822 #define RETURN 585
00823 #define RETURNING 586
00824 #define REVERSE_FUNC 587
00825 #define REVERSE_VIDEO 588
00826 #define REWIND 589
00827 #define REWRITE 590
00828 #define RIGHT 591
00829 #define ROLLBACK 592
00830 #define ROUNDED 593
00831 #define RUN 594
00832 #define SAME 595
00833 #define SCREEN 596
00834 #define SCREEN_CONTROL 597
00835 #define SCROLL 598
00836 #define SD 599
00837 #define SEARCH 600
00838 #define SECTION 601
00839 #define SECURE 602
00840 #define SEGMENT_LIMIT 603
00841 #define SELECT 604
00842 #define SEMI_COLON 605
00843 #define SENTENCE 606
00844 #define SEPARATE 607
00845 #define SEQUENCE 608
00846 #define SEQUENTIAL 609
00847 #define SET 610
00848 #define SHARING 611
00849 #define SIGN 612
00850 #define SIGNED 613
00851 #define SIGNED_INT 614
00852 #define SIGNED_LONG 615
00853 #define SIGNED_SHORT 616
00854 #define SIZE 617
00855 #define SIZE_ERROR 618
00856 #define SORT 619
00857 #define SORT_MERGE 620
00858 #define SOURCE 621
00859 #define SOURCE_COMPUTER 622
00860 #define SPACE 623
00861 #define SPECIAL_NAMES 624
00862 #define STANDARD 625
00863 #define STANDARD_1 626
00864 #define STANDARD_2 627
00865 #define START 628
00866 #define STATUS 629
00867 #define STOP 630
00868 #define STRING 631
00869 #define SUBSTITUTE_FUNC 632
00870 #define SUBSTITUTE_CASE_FUNC 633
00871 #define SUBTRACT 634
00872 #define SUM 635
00873 #define SUPPRESS 636
00874 #define SYMBOLIC 637
00875 #define SYNCHRONIZED 638
00876 #define TALLYING 639
00877 #define TAPE 640
00878 #define TERMINATE 641
00879 #define TEST 642
00880 #define THAN 643
00881 #define THEN 644
00882 #define THRU 645
00883 #define TIME 646
00884 #define TIMES 647
00885 #define TO 648
00886 #define TOK_FALSE 649
00887 #define TOK_FILE 650
00888 #define TOK_INITIAL 651
00889 #define TOK_NULL 652
00890 #define TOK_TRUE 653
00891 #define TOP 654
00892 #define TRAILING 655
00893 #define TRANSFORM 656
00894 #define TRIM_FUNCTION 657
00895 #define TYPE 658
00896 #define UNDERLINE 659
00897 #define UNIT 660
00898 #define UNLOCK 661
00899 #define UNSIGNED 662
00900 #define UNSIGNED_INT 663
00901 #define UNSIGNED_LONG 664
00902 #define UNSIGNED_SHORT 665
00903 #define UNSTRING 666
00904 #define UNTIL 667
00905 #define UP 668
00906 #define UPDATE 669
00907 #define UPON 670
00908 #define UPON_ARGUMENT_NUMBER 671
00909 #define UPON_COMMAND_LINE 672
00910 #define UPON_ENVIRONMENT_NAME 673
00911 #define UPON_ENVIRONMENT_VALUE 674
00912 #define UPPER_CASE_FUNC 675
00913 #define USAGE 676
00914 #define USE 677
00915 #define USING 678
00916 #define VALUE 679
00917 #define VARYING 680
00918 #define WAIT 681
00919 #define WHEN 682
00920 #define WHEN_COMPILED_FUNC 683
00921 #define WITH 684
00922 #define WORD 685
00923 #define WORDS 686
00924 #define WORKING_STORAGE 687
00925 #define WRITE 688
00926 #define YYYYDDD 689
00927 #define YYYYMMDD 690
00928 #define ZERO 691
00929 #define UNARY_SIGN 692
00930 
00931 
00932 
00933 
00934 /* Copy the first part of user declarations.  */
00935 #line 26 "parser.y"
00936 
00937 #include "config.h"
00938 
00939 #include <stdlib.h>
00940 #include <string.h>
00941 
00942 #include "cobc.h"
00943 #include "tree.h"
00944 
00945 #define yyerror                 cb_error
00946 #define YYDEBUG                 1
00947 #define YYERROR_VERBOSE         1
00948 
00949 #define PENDING(x)              cb_warning (_("'%s' not implemented"), x)
00950 
00951 #define emit_statement(x) \
00952   current_program->exec_list = cb_cons (x, current_program->exec_list)
00953 
00954 #define push_expr(type, node) \
00955   current_expr = cb_build_list (cb_int (type), node, current_expr)
00956 
00957 #define TERM_NONE               0
00958 #define TERM_ACCEPT             1
00959 #define TERM_ADD                2
00960 #define TERM_CALL               3
00961 #define TERM_COMPUTE            4
00962 #define TERM_DELETE             5
00963 #define TERM_DISPLAY            6
00964 #define TERM_DIVIDE             7
00965 #define TERM_EVALUATE           8
00966 #define TERM_IF                 9
00967 #define TERM_MULTIPLY           10
00968 #define TERM_PERFORM            11
00969 #define TERM_READ               12
00970 #define TERM_RECEIVE            13
00971 #define TERM_RETURN             14
00972 #define TERM_REWRITE            15
00973 #define TERM_SEARCH             16
00974 #define TERM_START              17
00975 #define TERM_STRING             18
00976 #define TERM_SUBTRACT           19
00977 #define TERM_UNSTRING           20
00978 #define TERM_WRITE              21
00979 #define TERM_MAX                22
00980 
00981 /* Global variables */
00982 
00983 struct cb_program               *current_program = NULL;
00984 struct cb_statement             *current_statement = NULL;
00985 struct cb_label                 *current_section = NULL;
00986 struct cb_label                 *current_paragraph = NULL;
00987 size_t                          functions_are_all = 0;
00988 int                             non_const_word = 0;
00989 
00990 /* Local variables */
00991 
00992 static struct cb_statement      *main_statement;
00993 
00994 static cb_tree                  current_expr;
00995 static struct cb_field          *current_field;
00996 static struct cb_field          *description_field;
00997 static struct cb_file           *current_file;
00998 
00999 static enum cb_storage          current_storage;
01000 
01001 static size_t                   check_unreached = 0;
01002 static int                      call_mode;
01003 static int                      size_mode;
01004 
01005 static cb_tree                  perform_stack = NULL;
01006 static cb_tree                  qualifier = NULL;
01007 
01008 static cb_tree                  fgc;
01009 static cb_tree                  bgc;
01010 static cb_tree                  scroll;
01011 static cb_tree                  save_tree_1;
01012 static cb_tree                  save_tree_2;
01013 static cb_tree                  dummy_tree;
01014 static size_t                   in_declaratives = 0;
01015 static size_t                   current_linage = 0;
01016 static size_t                   prog_end = 0;
01017 static size_t                   use_global_ind = 0;
01018 static size_t                   samearea = 1;
01019 static size_t                   organized_seen = 0;
01020 static size_t                   inspect_keyword = 0;
01021 static int                      next_label_id = 0;
01022 static int                      eval_level = 0;
01023 static int                      eval_inc = 0;
01024 static int                      eval_inc2 = 0;
01025 static int                      depth = 0;
01026 static int                      dispattrs = 0;
01027 static struct cb_file           *linage_file;
01028 static cb_tree                  next_label_list = NULL;
01029 static char                     *stack_progid[32];
01030 static int                      term_array[TERM_MAX];
01031 static int                      eval_check[64][64];
01032 
01033 /* Static functions */
01034 
01035 static void
01036 BEGIN_STATEMENT (const char *name, const size_t term)
01037 {
01038         if (cb_warn_unreachable && check_unreached) {
01039                 cb_warning (_("Unreachable statement"));
01040         }
01041         current_statement = cb_build_statement ((char *)name);
01042         CB_TREE (current_statement)->source_file = (unsigned char *)cb_source_file;
01043         CB_TREE (current_statement)->source_line = cb_source_line;
01044         emit_statement (CB_TREE (current_statement));
01045         if (term) {
01046                 term_array[term]++;
01047         }
01048         main_statement = current_statement;
01049 }
01050 
01051 static void
01052 BEGIN_IMPLICIT_STATEMENT (void)
01053 {
01054         current_statement = cb_build_statement (NULL);
01055         main_statement->body = cb_list_add (main_statement->body,
01056                                             CB_TREE (current_statement));
01057 }
01058 
01059 static void
01060 emit_entry (const char *name, const int encode, cb_tree using_list)
01061 {
01062         cb_tree         l;
01063         cb_tree         label;
01064         cb_tree         x;
01065         struct cb_field *f;
01066         int             parmnum;
01067         char            buff[256];
01068 
01069         sprintf (buff, "E$%s", name);
01070         label = cb_build_label (cb_build_reference (buff), NULL);
01071         if (encode) {
01072                 CB_LABEL (label)->name = (unsigned char *)(cb_encode_program_id (name));
01073                 CB_LABEL (label)->orig_name = (unsigned char *)name;
01074         } else {
01075                 CB_LABEL (label)->name = (unsigned char *)name;
01076                 CB_LABEL (label)->orig_name = (unsigned char *)current_program->orig_source_name;
01077         }
01078         CB_LABEL (label)->need_begin = 1;
01079         CB_LABEL (label)->is_entry = 1;
01080         emit_statement (label);
01081 
01082         parmnum = 1;
01083         for (l = using_list; l; l = CB_CHAIN (l)) {
01084                 x = CB_VALUE (l);
01085                 if (x != cb_error_node && cb_ref (x) != cb_error_node) {
01086                         f = CB_FIELD (cb_ref (x));
01087                         if (f->level != 01 && f->level != 77) {
01088                                 cb_error_x (x, _("'%s' not level 01 or 77"), cb_name (x));
01089                         }
01090                         if (!current_program->flag_chained) {
01091                                 if (f->storage != CB_STORAGE_LINKAGE) {
01092                                         cb_error_x (x, _("'%s' is not in LINKAGE SECTION"), cb_name (x));
01093                                 }
01094                                 if (f->flag_item_based || f->flag_external) {
01095                                         cb_error_x (x, _("'%s' can not be BASED/EXTERNAL"), cb_name (x));
01096                                 }
01097                                 f->flag_is_pdiv_parm = 1;
01098                         } else {
01099                                 if (f->storage != CB_STORAGE_WORKING) {
01100                                         cb_error_x (x, _("'%s' is not in WORKING-STORAGE SECTION"), cb_name (x));
01101                                 }
01102                                 f->flag_chained = 1;
01103                                 f->param_num = parmnum;
01104                                 parmnum++;
01105                         }
01106                         if (f->redefines) {
01107                                 cb_error_x (x, _("'%s' REDEFINES field not allowed here"), cb_name (x));
01108                         }
01109                 }
01110         }
01111 
01112         /* Check dangling LINKAGE items */
01113         if (cb_warn_linkage) {
01114                 for (f = current_program->linkage_storage; f; f = f->sister) {
01115                         for (l = using_list; l; l = CB_CHAIN (l)) {
01116                                 x = CB_VALUE (l);
01117                                 if (x != cb_error_node && cb_ref (x) != cb_error_node) {
01118                                         if (f == CB_FIELD (cb_ref (x))) {
01119                                                 break;
01120                                         }
01121                                 }
01122                         }
01123                         if (!l && !f->redefines) {
01124                                 cb_warning (_("LINKAGE item '%s' is not a PROCEDURE USING parameter"), f->name);
01125                         }
01126                 }
01127         }
01128 
01129         for (l = current_program->entry_list; l; l = CB_CHAIN (l)) {
01130                 if (strcmp ((const char *)name, (const char *)(CB_LABEL(CB_PURPOSE(l))->name)) == 0) {
01131                         cb_error_x (CB_TREE (current_statement), _("ENTRY '%s' duplicated"), name);
01132                 }
01133         }
01134 
01135         current_program->entry_list = cb_list_append (current_program->entry_list,
01136                                                         cb_build_pair (label, using_list));
01137 }
01138 
01139 static void
01140 terminator_warning (const size_t termid)
01141 {
01142         check_unreached = 0;
01143         if (cb_warn_terminator && term_array[termid]) {
01144                 cb_warning_x (CB_TREE (current_statement),
01145                         _("%s statement not terminated by END-%s"),
01146                         current_statement->name, current_statement->name);
01147         }
01148         if (term_array[termid]) {
01149                 term_array[termid]--;
01150         }
01151 }
01152 
01153 static void
01154 terminator_error (void)
01155 {
01156         check_unreached = 0;
01157         cb_error_x (CB_TREE (current_statement),
01158                         _("%s statement not terminated by END-%s"),
01159                         current_statement->name, current_statement->name);
01160 }
01161 
01162 static void
01163 terminator_clear (const size_t termid)
01164 {
01165         check_unreached = 0;
01166         if (term_array[termid]) {
01167                 term_array[termid]--;
01168         }
01169 }
01170 
01171 static int
01172 literal_value (cb_tree x)
01173 {
01174         if (x == cb_space) {
01175                 return ' ';
01176         } else if (x == cb_zero) {
01177                 return '0';
01178         } else if (x == cb_quote) {
01179                 return '"';
01180         } else if (x == cb_null) {
01181                 return 0;
01182         } else if (CB_TREE_CLASS (x) == CB_CLASS_NUMERIC) {
01183                 return cb_get_int (x);
01184         } else {
01185                 return CB_LITERAL (x)->data[0];
01186         }
01187 }
01188 
01189 static void
01190 setup_use_file (struct cb_file *fileptr)
01191 {
01192         struct cb_file  *newptr;
01193 
01194         if (fileptr->organization == COB_ORG_SORT) {
01195                 cb_error (_("USE statement invalid for SORT file"));
01196         }
01197         if (fileptr->global) {
01198                 newptr = cobc_malloc (sizeof(struct cb_file));
01199                 *newptr = *fileptr;
01200                 newptr->handler = current_section;
01201                 newptr->handler_prog = current_program;
01202                 if (!use_global_ind) {
01203                         current_program->local_file_list =
01204                                 cb_list_add (current_program->local_file_list,
01205                                              CB_TREE (newptr));
01206                 } else {
01207                         current_program->global_file_list =
01208                                 cb_list_add (current_program->global_file_list,
01209                                              CB_TREE (newptr));
01210                 }
01211         } else {
01212                 fileptr->handler = current_section;
01213         }
01214 }
01215 
01216 
01217 
01218 /* Enabling traces.  */
01219 #ifndef YYDEBUG
01220 # define YYDEBUG 0
01221 #endif
01222 
01223 /* Enabling verbose error messages.  */
01224 #ifdef YYERROR_VERBOSE
01225 # undef YYERROR_VERBOSE
01226 # define YYERROR_VERBOSE 1
01227 #else
01228 # define YYERROR_VERBOSE 0
01229 #endif
01230 
01231 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
01232 typedef int YYSTYPE;
01233 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
01234 # define YYSTYPE_IS_DECLARED 1
01235 # define YYSTYPE_IS_TRIVIAL 1
01236 #endif
01237 
01238 
01239 
01240 /* Copy the second part of user declarations.  */
01241 
01242 
01243 /* Line 214 of yacc.c.  */
01244 #line 1244 "parser.c"
01245 
01246 #if ! defined (yyoverflow) || YYERROR_VERBOSE
01247 
01248 /* The parser invokes alloca or malloc; define the necessary symbols.  */
01249 
01250 # if YYSTACK_USE_ALLOCA
01251 #  define YYSTACK_ALLOC alloca
01252 # else
01253 #  ifndef YYSTACK_USE_ALLOCA
01254 #   if defined (alloca) || defined (_ALLOCA_H)
01255 #    define YYSTACK_ALLOC alloca
01256 #   else
01257 #    ifdef __GNUC__
01258 #     define YYSTACK_ALLOC __builtin_alloca
01259 #    endif
01260 #   endif
01261 #  endif
01262 # endif
01263 
01264 # ifdef YYSTACK_ALLOC
01265    /* Pacify GCC's `empty if-body' warning. */
01266 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
01267 # else
01268 #  if defined (__STDC__) || defined (__cplusplus)
01269 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
01270 #   define YYSIZE_T size_t
01271 #  endif
01272 #  define YYSTACK_ALLOC malloc
01273 #  define YYSTACK_FREE free
01274 # endif
01275 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
01276 
01277 
01278 #if (! defined (yyoverflow) \
01279      && (! defined (__cplusplus) \
01280          || (YYSTYPE_IS_TRIVIAL)))
01281 
01282 /* A type that is properly aligned for any stack member.  */
01283 union yyalloc
01284 {
01285   short yyss;
01286   YYSTYPE yyvs;
01287   };
01288 
01289 /* The size of the maximum gap between one aligned stack and the next.  */
01290 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
01291 
01292 /* The size of an array large to enough to hold all stacks, each with
01293    N elements.  */
01294 # define YYSTACK_BYTES(N) \
01295      ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
01296       + YYSTACK_GAP_MAXIMUM)
01297 
01298 /* Copy COUNT objects from FROM to TO.  The source and destination do
01299    not overlap.  */
01300 # ifndef YYCOPY
01301 #  if 1 < __GNUC__
01302 #   define YYCOPY(To, From, Count) \
01303       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01304 #  else
01305 #   define YYCOPY(To, From, Count)              \
01306       do                                        \
01307         {                                       \
01308           register YYSIZE_T yyi;                \
01309           for (yyi = 0; yyi < (Count); yyi++)   \
01310             (To)[yyi] = (From)[yyi];            \
01311         }                                       \
01312       while (0)
01313 #  endif
01314 # endif
01315 
01316 /* Relocate STACK from its old location to the new one.  The
01317    local variables YYSIZE and YYSTACKSIZE give the old and new number of
01318    elements in the stack, and YYPTR gives the new location of the
01319    stack.  Advance YYPTR to a properly aligned location for the next
01320    stack.  */
01321 # define YYSTACK_RELOCATE(Stack)                                        \
01322     do                                                                  \
01323       {                                                                 \
01324         YYSIZE_T yynewbytes;                                            \
01325         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
01326         Stack = &yyptr->Stack;                                          \
01327         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
01328         yyptr += yynewbytes / sizeof (*yyptr);                          \
01329       }                                                                 \
01330     while (0)
01331 
01332 #endif
01333 
01334 #if defined (__STDC__) || defined (__cplusplus)
01335    typedef signed char yysigned_char;
01336 #else
01337    typedef short yysigned_char;
01338 #endif
01339 
01340 /* YYFINAL -- State number of the termination state. */
01341 #define YYFINAL  3
01342 /* YYLAST -- Last index in YYTABLE.  */
01343 #define YYLAST   5462
01344 
01345 /* YYNTOKENS -- Number of terminals. */
01346 #define YYNTOKENS  451
01347 /* YYNNTS -- Number of nonterminals. */
01348 #define YYNNTS  690
01349 /* YYNRULES -- Number of rules. */
01350 #define YYNRULES  1518
01351 /* YYNRULES -- Number of states. */
01352 #define YYNSTATES  2240
01353 
01354 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
01355 #define YYUNDEFTOK  2
01356 #define YYMAXUTOK   692
01357 
01358 #define YYTRANSLATE(YYX)                                                \
01359   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
01360 
01361 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
01362 static const unsigned short yytranslate[] =
01363 {
01364        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01365        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01366        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01367        2,     2,     2,     2,     2,     2,     2,     2,   450,     2,
01368      445,   446,   439,   437,     2,   438,   443,   440,     2,     2,
01369        2,     2,     2,     2,     2,     2,     2,     2,   449,     2,
01370      448,   444,   447,     2,     2,     2,     2,     2,     2,     2,
01371        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01372        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01373        2,     2,     2,     2,   442,     2,     2,     2,     2,     2,
01374        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01375        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01376        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01377        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01378        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01379        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01380        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01381        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01382        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01383        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01384        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01385        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01386        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01387        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01388        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01389        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
01390        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
01391       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01392       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
01393       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01394       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
01395       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
01396       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01397       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01398       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
01399       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
01400      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
01401      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
01402      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
01403      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
01404      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
01405      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
01406      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
01407      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
01408      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
01409      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01410      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
01411      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
01412      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
01413      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
01414      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
01415      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
01416      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
01417      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
01418      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
01419      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
01420      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
01421      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
01422      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
01423      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
01424      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
01425      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
01426      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
01427      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
01428      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
01429      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
01430      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
01431      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
01432      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
01433      435,   436,   441
01434 };
01435 
01436 #if YYDEBUG
01437 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
01438    YYRHS.  */
01439 static const unsigned short yyprhs[] =
01440 {
01441        0,     0,     3,     4,     7,     9,    12,    14,    16,    17,
01442       18,    27,    28,    29,    38,    39,    40,    48,    49,    51,
01443       54,    55,    59,    63,    67,    68,    76,    82,    84,    86,
01444       87,    90,    91,    95,    97,   100,   102,   104,   106,   107,
01445      113,   114,   119,   120,   123,   125,   127,   129,   131,   135,
01446      136,   139,   143,   146,   150,   152,   156,   157,   160,   164,
01447      167,   169,   172,   174,   176,   178,   184,   186,   188,   193,
01448      197,   201,   202,   205,   207,   210,   214,   218,   220,   223,
01449      227,   228,   231,   233,   236,   238,   240,   242,   244,   246,
01450      248,   250,   252,   254,   256,   258,   262,   263,   269,   270,
01451      276,   278,   280,   281,   287,   289,   291,   293,   295,   297,
01452      299,   302,   304,   308,   309,   314,   316,   320,   322,   324,
01453      326,   328,   330,   332,   334,   336,   338,   340,   342,   344,
01454      348,   352,   354,   357,   359,   362,   367,   369,   372,   374,
01455      378,   383,   388,   392,   396,   401,   405,   409,   410,   416,
01456      417,   422,   423,   428,   429,   433,   434,   437,   438,   445,
01457      446,   449,   451,   453,   455,   457,   459,   461,   463,   465,
01458      467,   469,   471,   473,   475,   481,   486,   487,   489,   491,
01459      492,   494,   496,   498,   500,   502,   507,   509,   511,   513,
01460      520,   524,   530,   531,   533,   535,   540,   543,   546,   548,
01461      549,   554,   560,   563,   565,   567,   571,   573,   575,   579,
01462      581,   584,   589,   594,   599,   601,   605,   610,   615,   619,
01463      623,   626,   629,   632,   633,   637,   638,   641,   643,   646,
01464      648,   650,   656,   657,   659,   661,   663,   669,   671,   674,
01465      677,   678,   681,   682,   692,   693,   694,   700,   701,   705,
01466      706,   709,   713,   716,   719,   721,   723,   724,   729,   730,
01467      733,   736,   739,   741,   743,   745,   747,   749,   751,   753,
01468      755,   757,   763,   764,   766,   768,   773,   780,   790,   791,
01469      795,   796,   799,   800,   803,   807,   809,   811,   817,   823,
01470      825,   827,   831,   837,   838,   841,   843,   845,   847,   853,
01471      858,   862,   867,   871,   875,   879,   880,   881,   887,   888,
01472      890,   891,   894,   898,   903,   906,   908,   909,   914,   916,
01473      917,   919,   921,   923,   924,   927,   929,   933,   937,   944,
01474      945,   948,   950,   952,   954,   956,   958,   960,   962,   964,
01475      966,   968,   970,   972,   974,   976,   979,   983,   984,   987,
01476      990,   992,   994,   998,  1000,  1002,  1004,  1006,  1008,  1010,
01477     1012,  1014,  1016,  1018,  1020,  1022,  1024,  1026,  1028,  1030,
01478     1032,  1034,  1036,  1039,  1042,  1044,  1047,  1050,  1052,  1055,
01479     1058,  1060,  1063,  1066,  1068,  1071,  1074,  1076,  1078,  1082,
01480     1086,  1094,  1095,  1098,  1099,  1103,  1105,  1106,  1112,  1114,
01481     1116,  1117,  1121,  1123,  1126,  1128,  1131,  1134,  1135,  1137,
01482     1139,  1143,  1145,  1146,  1155,  1157,  1160,  1162,  1166,  1167,
01483     1171,  1174,  1179,  1182,  1183,  1184,  1190,  1191,  1192,  1198,
01484     1199,  1200,  1206,  1207,  1209,  1211,  1214,  1220,  1221,  1224,
01485     1227,  1231,  1233,  1235,  1238,  1241,  1244,  1245,  1247,  1249,
01486     1252,  1261,  1262,  1266,  1267,  1272,  1273,  1278,  1279,  1283,
01487     1284,  1288,  1290,  1295,  1298,  1300,  1302,  1303,  1306,  1311,
01488     1312,  1315,  1317,  1319,  1321,  1323,  1325,  1327,  1329,  1331,
01489     1333,  1335,  1337,  1339,  1341,  1343,  1345,  1347,  1351,  1353,
01490     1355,  1357,  1359,  1361,  1363,  1365,  1370,  1375,  1378,  1380,
01491     1382,  1385,  1389,  1391,  1395,  1402,  1405,  1409,  1412,  1414,
01492     1417,  1420,  1422,  1425,  1426,  1428,  1430,  1435,  1438,  1439,
01493     1441,  1443,  1444,  1445,  1446,  1453,  1454,  1456,  1458,  1461,
01494     1463,  1464,  1470,  1471,  1474,  1476,  1478,  1480,  1482,  1485,
01495     1488,  1490,  1492,  1494,  1496,  1498,  1500,  1502,  1504,  1506,
01496     1508,  1514,  1520,  1524,  1528,  1530,  1532,  1534,  1536,  1538,
01497     1540,  1542,  1545,  1548,  1551,  1552,  1554,  1556,  1558,  1560,
01498     1561,  1563,  1565,  1567,  1569,  1573,  1574,  1575,  1576,  1586,
01499     1587,  1588,  1592,  1593,  1597,  1599,  1602,  1607,  1608,  1611,
01500     1614,  1615,  1619,  1623,  1628,  1632,  1633,  1635,  1636,  1639,
01501     1640,  1641,  1649,  1650,  1653,  1655,  1657,  1659,  1662,  1665,
01502     1667,  1672,  1675,  1677,  1679,  1680,  1682,  1683,  1684,  1688,
01503     1689,  1692,  1695,  1697,  1699,  1701,  1703,  1705,  1707,  1709,
01504     1711,  1713,  1715,  1717,  1719,  1721,  1723,  1725,  1727,  1729,
01505     1731,  1733,  1735,  1737,  1739,  1741,  1743,  1745,  1747,  1749,
01506     1751,  1753,  1755,  1757,  1759,  1761,  1763,  1765,  1767,  1769,
01507     1771,  1773,  1775,  1777,  1779,  1781,  1783,  1785,  1787,  1789,
01508     1791,  1793,  1794,  1799,  1804,  1809,  1813,  1817,  1821,  1826,
01509     1830,  1835,  1839,  1843,  1847,  1852,  1858,  1862,  1867,  1871,
01510     1875,  1876,  1880,  1884,  1887,  1890,  1893,  1897,  1901,  1905,
01511     1906,  1909,  1911,  1914,  1916,  1918,  1920,  1922,  1924,  1926,
01512     1928,  1932,  1936,  1940,  1944,  1946,  1948,  1950,  1952,  1954,
01513     1956,  1957,  1959,  1960,  1965,  1970,  1976,  1983,  1984,  1987,
01514     1988,  1990,  1991,  1995,  1999,  2005,  2006,  2009,  2012,  2013,
01515     2019,  2020,  2023,  2024,  2033,  2034,  2035,  2039,  2041,  2044,
01516     2047,  2051,  2052,  2055,  2058,  2061,  2062,  2065,  2068,  2069,
01517     2070,  2074,  2075,  2076,  2080,  2081,  2083,  2084,  2088,  2089,
01518     2092,  2093,  2097,  2098,  2102,  2103,  2105,  2109,  2113,  2116,
01519     2118,  2120,  2121,  2126,  2131,  2132,  2134,  2136,  2138,  2140,
01520     2142,  2143,  2150,  2151,  2153,  2154,  2159,  2163,  2167,  2171,
01521     2175,  2181,  2182,  2185,  2188,  2191,  2194,  2195,  2198,  2201,
01522     2203,  2206,  2208,  2210,  2213,  2216,  2218,  2220,  2222,  2224,
01523     2226,  2230,  2234,  2238,  2242,  2244,  2246,  2247,  2249,  2250,
01524     2255,  2260,  2267,  2274,  2283,  2292,  2293,  2295,  2296,  2301,
01525     2302,  2308,  2310,  2314,  2316,  2318,  2320,  2323,  2325,  2328,
01526     2329,  2333,  2334,  2335,  2340,  2343,  2347,  2349,  2353,  2356,
01527     2358,  2360,  2362,  2363,  2366,  2367,  2369,  2370,  2374,  2375,
01528     2377,  2379,  2382,  2384,  2386,  2387,  2391,  2392,  2396,  2397,
01529     2403,  2404,  2408,  2409,  2412,  2413,  2414,  2423,  2427,  2428,
01530     2429,  2433,  2434,  2436,  2437,  2445,  2446,  2449,  2450,  2454,
01531     2458,  2459,  2462,  2464,  2467,  2472,  2474,  2476,  2478,  2480,
01532     2482,  2484,  2486,  2487,  2489,  2490,  2494,  2495,  2500,  2502,
01533     2504,  2506,  2508,  2511,  2513,  2515,  2517,  2518,  2522,  2524,
01534     2527,  2530,  2533,  2535,  2537,  2539,  2542,  2545,  2547,  2550,
01535     2555,  2558,  2559,  2561,  2563,  2565,  2567,  2572,  2578,  2579,
01536     2584,  2585,  2587,  2588,  2592,  2593,  2597,  2601,  2606,  2607,
01537     2612,  2617,  2624,  2625,  2627,  2628,  2632,  2633,  2639,  2641,
01538     2643,  2645,  2647,  2648,  2652,  2653,  2657,  2660,  2661,  2665,
01539     2668,  2669,  2674,  2677,  2678,  2680,  2682,  2686,  2687,  2689,
01540     2692,  2696,  2700,  2701,  2705,  2707,  2711,  2719,  2720,  2731,
01541     2732,  2735,  2736,  2739,  2742,  2746,  2750,  2753,  2754,  2758,
01542     2759,  2761,  2763,  2764,  2766,  2767,  2772,  2773,  2781,  2782,
01543     2784,  2785,  2793,  2794,  2797,  2801,  2802,  2804,  2806,  2807,
01544     2812,  2817,  2818,  2826,  2827,  2830,  2831,  2832,  2837,  2839,
01545     2842,  2843,  2848,  2849,  2851,  2852,  2856,  2858,  2860,  2862,
01546     2864,  2866,  2871,  2876,  2880,  2885,  2887,  2889,  2891,  2894,
01547     2898,  2900,  2903,  2907,  2911,  2912,  2916,  2917,  2925,  2926,
01548     2932,  2933,  2936,  2937,  2940,  2941,  2945,  2946,  2949,  2954,
01549     2955,  2958,  2963,  2964,  2965,  2973,  2974,  2979,  2982,  2985,
01550     2988,  2991,  2994,  2995,  2997,  2998,  3003,  3006,  3007,  3010,
01551     3013,  3014,  3023,  3025,  3028,  3030,  3034,  3038,  3039,  3043,
01552     3044,  3046,  3047,  3052,  3057,  3064,  3071,  3072,  3074,  3077,
01553     3078,  3080,  3081,  3085,  3086,  3094,  3095,  3100,  3101,  3103,
01554     3105,  3106,  3116,  3117,  3121,  3123,  3127,  3130,  3133,  3136,
01555     3140,  3141,  3145,  3146,  3150,  3151,  3155,  3156,  3158,  3160,
01556     3162,  3164,  3173,  3174,  3176,  3178,  3180,  3182,  3184,  3186,
01557     3187,  3189,  3190,  3192,  3194,  3196,  3198,  3200,  3202,  3204,
01558     3205,  3207,  3213,  3215,  3218,  3224,  3225,  3234,  3235,  3238,
01559     3239,  3244,  3248,  3252,  3254,  3256,  3257,  3259,  3261,  3262,
01560     3264,  3267,  3270,  3271,  3272,  3276,  3277,  3278,  3282,  3285,
01561     3286,  3287,  3291,  3292,  3293,  3297,  3300,  3301,  3302,  3306,
01562     3307,  3308,  3312,  3314,  3316,  3319,  3320,  3324,  3325,  3329,
01563     3331,  3333,  3336,  3337,  3341,  3342,  3346,  3347,  3349,  3351,
01564     3353,  3356,  3357,  3361,  3362,  3366,  3367,  3371,  3373,  3375,
01565     3376,  3379,  3381,  3384,  3387,  3389,  3391,  3393,  3395,  3397,
01566     3399,  3401,  3403,  3405,  3407,  3409,  3411,  3413,  3415,  3417,
01567     3419,  3421,  3423,  3425,  3427,  3429,  3431,  3433,  3435,  3437,
01568     3440,  3442,  3444,  3447,  3449,  3452,  3454,  3460,  3462,  3468,
01569     3470,  3474,  3475,  3477,  3479,  3481,  3485,  3489,  3493,  3497,
01570     3500,  3503,  3507,  3511,  3513,  3517,  3519,  3522,  3525,  3527,
01571     3529,  3531,  3534,  3536,  3538,  3541,  3543,  3544,  3547,  3549,
01572     3551,  3553,  3557,  3559,  3561,  3564,  3566,  3567,  3569,  3571,
01573     3573,  3575,  3577,  3580,  3582,  3586,  3588,  3591,  3593,  3597,
01574     3601,  3605,  3610,  3614,  3616,  3618,  3620,  3622,  3626,  3630,
01575     3634,  3636,  3638,  3640,  3642,  3644,  3646,  3648,  3650,  3652,
01576     3654,  3656,  3658,  3660,  3662,  3664,  3666,  3668,  3670,  3672,
01577     3674,  3676,  3679,  3682,  3686,  3688,  3692,  3696,  3701,  3707,
01578     3709,  3711,  3714,  3716,  3720,  3722,  3724,  3726,  3728,  3730,
01579     3732,  3734,  3737,  3740,  3746,  3752,  3758,  3764,  3770,  3776,
01580     3782,  3787,  3793,  3796,  3797,  3802,  3808,  3809,  3813,  3814,
01581     3816,  3818,  3822,  3826,  3828,  3832,  3834,  3838,  3839,  3840,
01582     3842,  3843,  3845,  3846,  3848,  3849,  3851,  3853,  3854,  3856,
01583     3857,  3859,  3860,  3862,  3863,  3866,  3868,  3870,  3873,  3876,
01584     3879,  3881,  3884,  3886,  3887,  3889,  3890,  3892,  3893,  3895,
01585     3896,  3898,  3899,  3901,  3902,  3904,  3905,  3907,  3908,  3910,
01586     3911,  3913,  3914,  3916,  3917,  3919,  3920,  3922,  3923,  3925,
01587     3926,  3928,  3929,  3931,  3932,  3934,  3935,  3937,  3939,  3940,
01588     3942,  3943,  3945,  3947,  3948,  3950,  3951,  3953,  3954,  3956,
01589     3957,  3959,  3960,  3962,  3963,  3965,  3968,  3969,  3971,  3972,
01590     3974,  3975,  3977,  3978,  3980,  3981,  3983,  3984,  3986,  3987,
01591     3989,  3992,  3993,  3995,  3996,  3998,  3999,  4001,  4002,  4004,
01592     4005,  4007,  4008,  4010,  4011,  4013,  4014,  4016,  4017
01593 };
01594 
01595 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
01596 static const short yyrhs[] =
01597 {
01598      452,     0,    -1,    -1,   453,   454,    -1,   455,    -1,   454,
01599      455,    -1,   456,    -1,   462,    -1,    -1,    -1,   469,   477,
01600      457,   572,   458,   706,   465,   466,    -1,    -1,    -1,   469,
01601      477,   460,   572,   461,   706,   465,   467,    -1,    -1,    -1,
01602      471,   477,   463,   572,   464,   706,   468,    -1,    -1,   459,
01603       -1,   465,   459,    -1,    -1,   133,   472,   443,    -1,   133,
01604      472,   443,    -1,   129,   472,   443,    -1,    -1,   301,   443,
01605      472,   473,   470,   474,   443,    -1,   176,   443,   472,   473,
01606      443,    -1,   302,    -1,   227,    -1,    -1,    26,   227,    -1,
01607       -1,  1115,   475,  1126,    -1,    69,    -1,    69,   476,    -1,
01608      476,    -1,   396,    -1,   312,    -1,    -1,   144,   114,   443,
01609      478,   529,    -1,    -1,    79,   346,   443,   479,    -1,    -1,
01610      479,   480,    -1,   481,    -1,   485,    -1,   498,    -1,   493,
01611       -1,   367,   443,   482,    -1,    -1,   484,   443,    -1,   484,
01612      483,   443,    -1,   483,   443,    -1,  1140,   101,   240,    -1,
01613      430,    -1,   265,   443,   486,    -1,    -1,   484,   443,    -1,
01614      484,   487,   443,    -1,   487,   443,    -1,   488,    -1,   487,
01615      488,    -1,   489,    -1,   491,    -1,   492,    -1,   236,   362,
01616     1115,  1076,   490,    -1,    55,    -1,   431,    -1,  1126,  1099,
01617     1115,  1055,    -1,   348,  1115,  1076,    -1,   327,   443,   494,
01618       -1,    -1,   495,   443,    -1,   496,    -1,   495,   496,    -1,
01619      175,   497,   204,    -1,   175,     9,   204,    -1,   227,    -1,
01620      497,   227,    -1,   369,   443,   499,    -1,    -1,   500,   443,
01621       -1,   501,    -1,   500,   501,    -1,   502,    -1,   506,    -1,
01622      515,    -1,   522,    -1,   519,    -1,   523,    -1,   524,    -1,
01623      525,    -1,   526,    -1,   527,    -1,   528,    -1,   430,  1115,
01624       91,    -1,    -1,   430,  1115,  1058,   503,   504,    -1,    -1,
01625      504,   505,  1133,  1115,  1058,    -1,   270,    -1,   268,    -1,
01626       -1,    11,  1058,   507,  1115,   508,    -1,   246,    -1,   371,
01627       -1,   372,    -1,   118,    -1,   509,    -1,   510,    -1,   509,
01628      510,    -1,   513,    -1,   513,   390,   513,    -1,    -1,   513,
01629       17,   511,   512,    -1,   514,    -1,   512,    17,   514,    -1,
01630      227,    -1,   368,    -1,   436,    -1,   305,    -1,   188,    -1,
01631      234,    -1,   227,    -1,   368,    -1,   436,    -1,   305,    -1,
01632      188,    -1,   234,    -1,   382,  1108,   516,    -1,   517,  1116,
01633      518,    -1,  1058,    -1,   517,  1058,    -1,  1076,    -1,   518,
01634     1076,    -1,    56,  1058,  1115,   520,    -1,   521,    -1,   520,
01635      521,    -1,  1079,    -1,  1079,   390,  1079,    -1,   228,  1058,
01636     1115,  1055,    -1,    92,  1130,  1115,   227,    -1,   102,  1115,
01637       65,    -1,    94,  1115,  1055,    -1,    91,   374,  1115,  1055,
01638       -1,   342,  1115,  1055,    -1,   156,  1115,  1055,    -1,    -1,
01639      201,   346,   443,   532,   562,    -1,    -1,   163,   443,   530,
01640      533,    -1,    -1,   209,   443,   531,   563,    -1,    -1,   163,
01641      443,   533,    -1,    -1,   533,   534,    -1,    -1,   349,  1093,
01642     1058,   535,   536,   443,    -1,    -1,   536,   537,    -1,   538,
01643       -1,   542,    -1,   544,    -1,   545,    -1,   546,    -1,   548,
01644       -1,   552,    -1,   554,    -1,   555,    -1,   556,    -1,   558,
01645       -1,   559,    -1,   560,    -1,    28,  1138,   540,   539,   541,
01646       -1,    28,  1138,   540,   111,    -1,    -1,   111,    -1,   295,
01647       -1,    -1,   161,    -1,   117,    -1,   227,    -1,   112,    -1,
01648     1073,    -1,     4,  1120,  1115,   543,    -1,   354,    -1,   117,
01649       -1,   306,    -1,    19,   309,  1117,  1115,   557,  1089,    -1,
01650     1099,  1115,   430,    -1,   547,   374,  1115,  1055,  1056,    -1,
01651       -1,   395,    -1,   364,    -1,   231,  1120,  1115,   549,    -1,
01652      235,   550,    -1,    31,   550,    -1,   158,    -1,    -1,   429,
01653      231,   270,   551,    -1,   429,   231,   270,   242,   551,    -1,
01654      429,   337,    -1,   309,    -1,   311,    -1,   276,  1115,   553,
01655       -1,   553,    -1,   195,    -1,  1127,  1105,   354,    -1,   316,
01656       -1,   224,   354,    -1,   282,  1107,  1115,  1057,    -1,   309,
01657      107,  1115,   371,    -1,   309,  1117,  1115,   557,    -1,  1055,
01658       -1,  1055,   444,  1054,    -1,  1055,   366,  1115,  1054,    -1,
01659      316,  1117,  1115,  1055,    -1,   329,  1076,  1102,    -1,   356,
01660     1140,   561,    -1,     9,  1125,    -1,   251,  1125,    -1,   308,
01661      271,    -1,    -1,   209,   443,   563,    -1,    -1,   564,   443,
01662       -1,   565,    -1,   564,   565,    -1,   566,    -1,   568,    -1,
01663      340,   567,  1102,  1112,  1046,    -1,    -1,   309,    -1,   364,
01664       -1,   365,    -1,   242,  1111,  1134,  1109,   569,    -1,   570,
01665       -1,   569,   570,    -1,  1047,   571,    -1,    -1,   291,  1076,
01666       -1,    -1,    96,   114,   443,   573,   604,   649,   651,   653,
01667      694,    -1,    -1,    -1,   395,   346,   443,   574,   576,    -1,
01668       -1,   579,   575,   578,    -1,    -1,   576,   577,    -1,   579,
01669      580,   606,    -1,   580,   606,    -1,   578,   577,    -1,   162,
01670       -1,   344,    -1,    -1,  1047,   581,   582,   443,    -1,    -1,
01671      582,   583,    -1,  1115,   161,    -1,  1115,   181,    -1,   584,
01672       -1,   586,    -1,   590,    -1,   592,    -1,   594,    -1,   595,
01673       -1,   601,    -1,   602,    -1,   603,    -1,    46,  1109,  1076,
01674      589,   585,    -1,    -1,   311,    -1,    55,    -1,   309,  1109,
01675     1076,  1108,    -1,   309,  1109,  1076,   393,  1076,  1108,    -1,
01676      309,  1115,   425,  1114,  1132,   588,   589,  1108,   587,    -1,
01677       -1,   108,  1123,  1055,    -1,    -1,  1113,  1076,    -1,    -1,
01678      393,  1076,    -1,   212,  1097,   591,    -1,   370,    -1,   269,
01679       -1,   424,   267,   430,  1115,   593,    -1,   424,   267,   164,
01680     1115,   593,    -1,   227,    -1,  1073,    -1,    96,  1097,  1054,
01681       -1,   222,  1115,  1057,  1119,   596,    -1,    -1,   596,   597,
01682       -1,   598,    -1,   599,    -1,   600,    -1,  1140,   168,  1104,
01683     1057,  1119,    -1,  1104,   399,  1057,  1119,    -1,  1104,    47,
01684     1057,    -1,   310,  1120,  1115,   430,    -1,    59,  1115,   430,
01685       -1,   322,  1115,   693,    -1,   324,  1101,   693,    -1,    -1,
01686       -1,   432,   346,   443,   605,   606,    -1,    -1,   607,    -1,
01687       -1,   608,   609,    -1,  1087,   610,   443,    -1,   609,  1087,
01688      610,   443,    -1,   609,   443,    -1,   617,    -1,    -1,   612,
01689      613,   611,   618,    -1,   430,    -1,    -1,   165,    -1,   430,
01690       -1,   430,    -1,    -1,  1115,   181,    -1,  1077,    -1,   218,
01691     1122,  1072,    -1,    49,  1122,  1072,    -1,   612,   614,    80,
01692      615,  1103,   616,    -1,    -1,   618,   619,    -1,   620,    -1,
01693      621,    -1,   623,    -1,   624,    -1,   625,    -1,   627,    -1,
01694      628,    -1,   637,    -1,   638,    -1,   640,    -1,   641,    -1,
01695      642,    -1,   647,    -1,   648,    -1,   313,  1072,    -1,  1115,
01696      161,   622,    -1,    -1,    26,   227,    -1,  1115,   181,    -1,
01697      288,    -1,   626,    -1,   421,  1115,   626,    -1,    36,    -1,
01698       70,    -1,    72,    -1,    73,    -1,    74,    -1,    75,    -1,
01699       76,    -1,    77,    -1,   112,    -1,   194,    -1,   281,    -1,
01700      290,    -1,   303,    -1,   361,    -1,   359,    -1,   360,    -1,
01701      410,    -1,   408,    -1,   409,    -1,    38,   358,    -1,    38,
01702      407,    -1,    38,    -1,    41,   358,    -1,    41,   407,    -1,
01703       41,    -1,    40,   358,    -1,    40,   407,    -1,    40,    -1,
01704       39,   358,    -1,    39,   407,    -1,    39,    -1,    37,   358,
01705       -1,    37,   407,    -1,    37,    -1,   244,    -1,  1131,   216,
01706     1095,    -1,  1131,   400,  1095,    -1,   266,  1076,   629,  1137,
01707      630,   631,   634,    -1,    -1,   393,  1076,    -1,    -1,   108,
01708     1123,  1055,    -1,   632,    -1,    -1,   632,   633,  1117,  1115,
01709     1054,    -1,    27,    -1,   109,    -1,    -1,   195,  1106,   635,
01710       -1,   636,    -1,   635,   636,    -1,   430,    -1,   210,  1128,
01711       -1,   383,   639,    -1,    -1,   217,    -1,   336,    -1,    42,
01712     1139,   436,    -1,    33,    -1,    -1,   424,  1116,   644,   643,
01713     1139,  1129,  1138,   646,    -1,   645,    -1,   644,   645,    -1,
01714     1077,    -1,  1077,   390,  1077,    -1,    -1,   394,  1115,  1077,
01715       -1,   320,  1073,    -1,   320,  1073,   390,  1073,    -1,    21,
01716      218,    -1,    -1,    -1,   230,   346,   443,   650,   606,    -1,
01717       -1,    -1,   226,   346,   443,   652,   606,    -1,    -1,    -1,
01718      322,   346,   443,   654,   655,    -1,    -1,   656,    -1,   657,
01719       -1,   656,   657,    -1,   307,   693,   658,   443,   672,    -1,
01720       -1,   658,   659,    -1,  1115,   181,    -1,    58,  1115,  1068,
01721       -1,   660,    -1,   664,    -1,    84,   661,    -1,    85,   661,
01722       -1,   662,   663,    -1,    -1,   166,    -1,  1071,    -1,   663,
01723     1071,    -1,   283,  1116,   670,   665,   666,   667,   668,   669,
01724       -1,    -1,   186,  1115,  1076,    -1,    -1,   167,   110,  1115,
01725     1076,    -1,    -1,   213,    87,  1115,  1076,    -1,    -1,   214,
01726     1115,  1076,    -1,    -1,   168,  1115,  1076,    -1,  1076,    -1,
01727     1076,   671,  1076,    64,    -1,  1076,   671,    -1,   224,    -1,
01728      225,    -1,    -1,   672,   673,    -1,   612,   613,   674,   443,
01729       -1,    -1,   674,   675,    -1,   676,    -1,   678,    -1,   685,
01730       -1,   624,    -1,   625,    -1,   627,    -1,   637,    -1,   679,
01731       -1,   640,    -1,   690,    -1,   680,    -1,   642,    -1,   683,
01732       -1,   691,    -1,   628,    -1,   684,    -1,   403,  1115,   677,
01733       -1,   326,    -1,   285,    -1,    87,    -1,   110,    -1,    86,
01734       -1,   284,    -1,   325,    -1,   249,   185,  1115,  1076,    -1,
01735       63,  1121,  1115,  1076,    -1,    63,   261,    -1,    64,    -1,
01736      681,    -1,   680,   681,    -1,   380,  1122,   682,    -1,  1055,
01737       -1,   293,   427,  1027,    -1,   425,  1071,   173,  1062,    48,
01738     1062,    -1,   686,   687,    -1,   224,   689,  1116,    -1,   225,
01739     1101,    -1,   688,    -1,   687,   688,    -1,   289,  1076,    -1,
01740     1076,    -1,   249,   283,    -1,    -1,   260,    -1,   261,    -1,
01741      366,  1115,  1071,  1094,    -1,   185,   692,    -1,    -1,   196,
01742       -1,   430,    -1,    -1,    -1,    -1,   341,   346,   443,   695,
01743      696,   697,    -1,    -1,   698,    -1,   699,    -1,   698,   699,
01744       -1,   617,    -1,    -1,   612,   613,   700,   701,   443,    -1,
01745       -1,   701,   702,    -1,    43,    -1,    44,    -1,    35,    -1,
01746       45,    -1,   152,   147,    -1,   152,   149,    -1,   187,    -1,
01747      233,    -1,   333,    -1,   404,    -1,   280,    -1,    30,    -1,
01748      347,    -1,   328,    -1,   174,    -1,   304,    -1,   224,  1121,
01749     1115,   703,  1070,    -1,    63,  1121,  1115,   704,  1070,    -1,
01750      170,  1115,  1070,    -1,    32,  1115,  1070,    -1,   625,    -1,
01751      640,    -1,   637,    -1,   627,    -1,   642,    -1,   624,    -1,
01752      705,    -1,   423,  1071,    -1,   173,  1069,    -1,   393,  1071,
01753       -1,    -1,   289,    -1,   437,    -1,   238,    -1,   438,    -1,
01754       -1,   289,    -1,   437,    -1,   238,    -1,   438,    -1,   266,
01755     1076,  1137,    -1,    -1,    -1,    -1,   297,   114,   709,   717,
01756      443,   707,   718,   708,   720,    -1,    -1,    -1,   423,   710,
01757      712,    -1,    -1,    53,   711,   712,    -1,   713,    -1,   712,
01758      713,    -1,   714,   715,   716,   430,    -1,    -1,  1106,   315,
01759       -1,  1106,   424,    -1,    -1,   362,  1115,    30,    -1,   362,
01760     1115,   104,    -1,   407,   362,  1115,  1076,    -1,   362,  1115,
01761     1076,    -1,    -1,   273,    -1,    -1,   331,   430,    -1,    -1,
01762       -1,   103,   443,   719,   720,   120,   103,   443,    -1,    -1,
01763      720,   721,    -1,   722,    -1,   723,    -1,   724,    -1,   730,
01764      443,    -1,     1,   443,    -1,   443,    -1,   725,   346,   726,
01765      443,    -1,   430,   443,    -1,   725,    -1,   430,    -1,    -1,
01766      227,    -1,    -1,    -1,   728,   729,   730,    -1,    -1,   731,
01767      732,    -1,   730,   732,    -1,   733,    -1,   743,    -1,   748,
01768       -1,   752,    -1,   755,    -1,   768,    -1,   771,    -1,   781,
01769       -1,   776,    -1,   782,    -1,   783,    -1,   786,    -1,   794,
01770       -1,   798,    -1,   800,    -1,   815,    -1,   818,    -1,   820,
01771       -1,   822,    -1,   825,    -1,   827,    -1,   833,    -1,   842,
01772       -1,   844,    -1,   861,    -1,   863,    -1,   866,    -1,   870,
01773       -1,   876,    -1,   886,    -1,   893,    -1,   895,    -1,   898,
01774       -1,   902,    -1,   903,    -1,   914,    -1,   925,    -1,   935,
01775       -1,   941,    -1,   944,    -1,   950,    -1,   954,    -1,   956,
01776       -1,   958,    -1,   960,    -1,   963,    -1,   974,    -1,   987,
01777       -1,   250,    -1,    -1,     3,   734,   735,   742,    -1,  1071,
01778      736,   739,   994,    -1,  1071,   173,   154,   211,    -1,  1071,
01779      173,   225,    -1,  1071,   173,    64,    -1,  1071,   173,    97,
01780       -1,  1071,   173,    97,   435,    -1,  1071,   173,    98,    -1,
01781     1071,   173,    98,   434,    -1,  1071,   173,    99,    -1,  1071,
01782      173,   391,    -1,  1071,   173,    66,    -1,  1071,   173,   146,
01783      994,    -1,  1071,   173,   144,  1066,   994,    -1,  1071,   173,
01784       24,    -1,  1071,   173,    25,   994,    -1,  1071,   173,  1049,
01785       -1,  1071,   173,   430,    -1,    -1,  1104,   737,   738,    -1,
01786     1104,   738,   737,    -1,  1104,   737,    -1,  1104,   738,    -1,
01787       29,  1066,    -1,   224,  1121,  1068,    -1,    63,  1121,  1068,
01788       -1,   291,  1121,  1068,    -1,    -1,   429,   740,    -1,   741,
01789       -1,   740,   741,    -1,    35,    -1,    45,    -1,   187,    -1,
01790      233,    -1,   333,    -1,   404,    -1,   280,    -1,   170,  1115,
01791     1070,    -1,    32,  1115,  1070,    -1,   343,   413,  1026,    -1,
01792      343,   115,  1026,    -1,    30,    -1,   174,    -1,   328,    -1,
01793      347,    -1,   414,    -1,   304,    -1,    -1,   121,    -1,    -1,
01794        5,   744,   745,   747,    -1,  1061,   393,  1042,  1000,    -1,
01795     1061,   746,   180,  1042,  1000,    -1,    89,  1071,   393,  1071,
01796     1094,  1000,    -1,    -1,   393,  1062,    -1,    -1,   122,    -1,
01797       -1,    10,   749,   750,    -1,   430,  1090,   751,    -1,  1028,
01798       55,  1090,   331,  1060,    -1,    -1,   331,  1060,    -1,    18,
01799      753,    -1,    -1,   753,  1051,   393,   754,  1051,    -1,    -1,
01800      299,   393,    -1,    -1,    50,   756,  1069,   757,   762,   763,
01801      765,   767,    -1,    -1,    -1,   423,   758,   759,    -1,   760,
01802       -1,   759,   760,    -1,   761,   269,    -1,   761,   715,  1062,
01803       -1,    -1,  1106,   315,    -1,  1106,    82,    -1,  1106,   424,
01804       -1,    -1,   331,  1071,    -1,   180,  1071,    -1,    -1,    -1,
01805      981,   764,   727,    -1,    -1,    -1,   982,   766,   727,    -1,
01806       -1,   123,    -1,    -1,    51,   769,   770,    -1,    -1,   770,
01807     1068,    -1,    -1,    57,   772,   773,    -1,    -1,   773,  1047,
01808      774,    -1,    -1,   775,    -1,   775,  1112,   319,    -1,  1140,
01809      251,   334,    -1,  1140,   231,    -1,   314,    -1,   405,    -1,
01810       -1,    71,   777,   778,   779,    -1,  1042,   780,  1028,  1000,
01811       -1,    -1,   124,    -1,   444,    -1,   150,    -1,    68,    -1,
01812       83,    -1,    -1,   105,   784,  1047,  1127,  1020,   785,    -1,
01813       -1,   125,    -1,    -1,   112,   787,   788,   793,    -1,  1068,
01814      418,   995,    -1,  1068,   419,   995,    -1,  1068,   416,   995,
01815       -1,  1068,   417,   995,    -1,  1061,   736,   789,   790,   995,
01816       -1,    -1,   415,  1049,    -1,   415,   430,    -1,   415,   295,
01817       -1,   415,    91,    -1,    -1,  1140,   259,    -1,   429,   791,
01818       -1,   792,    -1,   791,   792,    -1,    35,    -1,    45,    -1,
01819      152,   147,    -1,   152,   149,    -1,   187,    -1,   233,    -1,
01820      333,    -1,   404,    -1,   280,    -1,   170,  1115,  1070,    -1,
01821       32,  1115,  1070,    -1,   343,   413,  1026,    -1,   343,   115,
01822     1026,    -1,    43,    -1,    44,    -1,    -1,   126,    -1,    -1,
01823      113,   795,   796,   797,    -1,  1062,   203,  1042,  1000,    -1,
01824     1062,   203,  1062,   180,  1042,  1000,    -1,  1062,    48,  1062,
01825      180,  1042,  1000,    -1,  1062,   203,  1062,   180,  1043,   318,
01826     1043,  1000,    -1,  1062,    48,  1062,   180,  1043,   318,  1043,
01827     1000,    -1,    -1,   127,    -1,    -1,   143,   799,   227,   757,
01828       -1,    -1,   155,   801,   802,   804,   814,    -1,   803,    -1,
01829      802,    17,   803,    -1,  1028,    -1,   398,    -1,   394,    -1,
01830      805,   808,    -1,   806,    -1,   805,   806,    -1,    -1,   810,
01831      807,   727,    -1,    -1,    -1,   427,   277,   809,   727,    -1,
01832      427,   811,    -1,   810,   427,   811,    -1,   812,    -1,   811,
01833       17,   812,    -1,  1029,   813,    -1,    21,    -1,   398,    -1,
01834      394,    -1,    -1,   390,  1028,    -1,    -1,   128,    -1,    -1,
01835      159,   816,   817,    -1,    -1,   300,    -1,   287,    -1,   287,
01836       95,    -1,   346,    -1,   286,    -1,    -1,   172,   819,  1059,
01837       -1,    -1,   179,   821,  1071,    -1,    -1,   182,  1138,   823,
01838     1050,   824,    -1,    -1,   108,  1123,  1071,    -1,    -1,   183,
01839      826,    -1,    -1,    -1,   190,   828,  1027,  1136,   829,   727,
01840      830,   832,    -1,   190,     1,   130,    -1,    -1,    -1,   119,
01841      831,   727,    -1,    -1,   130,    -1,    -1,   197,   834,  1059,
01842      835,   836,   837,   841,    -1,    -1,  1140,   165,    -1,    -1,
01843        9,  1138,   424,    -1,   840,  1138,   424,    -1,    -1,   321,
01844      838,    -1,   839,    -1,   838,   839,    -1,   840,  1110,    48,
01845     1062,    -1,    12,    -1,    15,    -1,   262,    -1,    16,    -1,
01846      263,    -1,   244,    -1,   245,    -1,    -1,   104,    -1,    -1,
01847      199,   843,   663,    -1,    -1,   202,   845,   846,   847,    -1,
01848     1071,    -1,  1077,    -1,  1080,    -1,   848,    -1,   847,   848,
01849       -1,   849,    -1,   853,    -1,   858,    -1,    -1,   384,   850,
01850      851,    -1,   852,    -1,   851,   852,    -1,  1066,   169,    -1,
01851       55,   859,    -1,     9,    -1,   216,    -1,   400,    -1,  1066,
01852      859,    -1,   321,   854,    -1,   855,    -1,   854,   855,    -1,
01853       55,    48,  1066,   859,    -1,   856,   857,    -1,    -1,     9,
01854       -1,   216,    -1,   167,    -1,   400,    -1,  1066,    48,  1067,
01855      859,    -1,    88,  1066,   393,  1067,   859,    -1,    -1,   859,
01856      991,   860,  1062,    -1,    -1,   396,    -1,    -1,   237,   862,
01857      927,    -1,    -1,   241,   864,   865,    -1,  1062,   393,  1059,
01858       -1,    89,  1062,   393,  1059,    -1,    -1,   243,   867,   868,
01859      869,    -1,  1062,    48,  1042,  1000,    -1,  1062,    48,  1062,
01860      180,  1042,  1000,    -1,    -1,   131,    -1,    -1,   272,   871,
01861      872,    -1,    -1,   872,   873,   874,  1046,   875,    -1,   200,
01862       -1,   278,    -1,   208,    -1,   160,    -1,    -1,   356,  1140,
01863      561,    -1,    -1,  1140,   251,   334,    -1,  1140,   231,    -1,
01864       -1,   287,   877,   878,    -1,   881,   882,    -1,    -1,   882,
01865      879,   727,   880,    -1,   882,   132,    -1,    -1,   132,    -1,
01866     1051,    -1,  1051,   390,  1051,    -1,    -1,   171,    -1,  1069,
01867      392,    -1,   883,   412,  1027,    -1,   883,   425,   884,    -1,
01868       -1,  1140,   387,   991,    -1,   885,    -1,   884,     8,   885,
01869       -1,  1071,   173,  1062,    48,  1062,   412,  1027,    -1,    -1,
01870      308,   887,  1047,  1091,  1127,   888,   889,   890,   891,   892,
01871       -1,    -1,   203,  1071,    -1,    -1,   192,   231,    -1,  1140,
01872      231,    -1,  1140,   251,   231,    -1,  1140,   191,   231,    -1,
01873     1140,   426,    -1,    -1,   211,  1115,  1071,    -1,    -1,  1010,
01874       -1,  1021,    -1,    -1,   134,    -1,    -1,   317,   894,  1044,
01875      989,    -1,    -1,   330,   896,  1047,  1127,   888,  1010,   897,
01876       -1,    -1,   135,    -1,    -1,   335,   899,  1044,   989,   900,
01877     1020,   901,    -1,    -1,  1140,   231,    -1,  1140,   251,   231,
01878       -1,    -1,   136,    -1,   337,    -1,    -1,   345,   904,   905,
01879      913,    -1,  1045,   907,   908,   910,    -1,    -1,     9,  1045,
01880      908,   427,  1028,   906,   727,    -1,    -1,   425,  1071,    -1,
01881       -1,    -1,  1104,   120,   909,   727,    -1,   911,    -1,   911,
01882      910,    -1,    -1,   427,  1027,   912,   727,    -1,    -1,   137,
01883       -1,    -1,   355,   915,   916,    -1,   917,    -1,   918,    -1,
01884      919,    -1,   921,    -1,   923,    -1,   144,  1066,   393,  1066,
01885       -1,  1059,   393,   143,  1065,    -1,  1059,   393,  1062,    -1,
01886     1059,   920,    48,  1062,    -1,   413,    -1,   115,    -1,   922,
01887       -1,   921,   922,    -1,  1048,   393,   505,    -1,   924,    -1,
01888      923,   924,    -1,  1059,   393,   398,    -1,  1059,   393,   394,
01889       -1,    -1,   364,   926,   927,    -1,    -1,  1073,   929,   931,
01890      932,   928,   933,   934,    -1,    -1,   929,  1123,   633,  1117,
01891      930,    -1,    -1,   930,  1073,    -1,    -1,  1098,  1124,    -1,
01892       -1,  1099,  1115,  1055,    -1,    -1,   423,  1046,    -1,   200,
01893      297,  1115,   881,    -1,    -1,   180,  1046,    -1,   278,   297,
01894     1115,   881,    -1,    -1,    -1,   373,   936,  1047,   937,   938,
01895     1020,   940,    -1,    -1,   211,  1115,   939,  1062,    -1,  1092,
01896     1033,    -1,  1092,  1034,    -1,  1092,  1035,    -1,  1092,  1036,
01897       -1,  1092,  1037,    -1,    -1,   138,    -1,    -1,   375,   339,
01898      942,   943,    -1,   375,   227,    -1,    -1,   331,  1062,    -1,
01899      180,  1062,    -1,    -1,   376,   945,   946,   203,  1071,   948,
01900     1005,   949,    -1,   947,    -1,   946,   947,    -1,  1062,    -1,
01901      106,  1106,   362,    -1,   106,  1106,  1062,    -1,    -1,  1140,
01902      290,  1071,    -1,    -1,   139,    -1,    -1,   379,   951,   952,
01903      953,    -1,  1061,   173,  1042,  1000,    -1,  1061,   173,  1062,
01904      180,  1042,  1000,    -1,    89,  1071,   173,  1071,  1094,  1000,
01905       -1,    -1,   140,    -1,   381,   955,    -1,    -1,   296,    -1,
01906       -1,   386,   957,   663,    -1,    -1,   401,   959,  1071,   173,
01907     1066,   393,  1067,    -1,    -1,   406,   961,  1047,   962,    -1,
01908       -1,   309,    -1,   311,    -1,    -1,   411,   964,  1071,   965,
01909      968,   948,   972,  1005,   973,    -1,    -1,   106,  1106,   966,
01910       -1,   967,    -1,   966,   274,   967,    -1,  1088,  1066,    -1,
01911      203,   969,    -1,   968,   969,    -1,  1071,   970,   971,    -1,
01912       -1,   107,  1114,  1071,    -1,    -1,    90,  1114,  1071,    -1,
01913       -1,   384,  1114,  1071,    -1,    -1,   141,    -1,   975,    -1,
01914      984,    -1,   986,    -1,   422,   976,   978,   979,   980,   983,
01915     1123,   977,    -1,    -1,   181,    -1,  1046,    -1,   200,    -1,
01916      278,    -1,   208,    -1,   160,    -1,    -1,     8,    -1,    -1,
01917      370,    -1,   157,    -1,   153,    -1,   157,    -1,   279,    -1,
01918      255,    -1,   257,    -1,    -1,   297,    -1,   422,  1112,   101,
01919     1123,   985,    -1,  1051,    -1,     9,   298,    -1,   422,   976,
01920       34,   323,  1071,    -1,    -1,   433,   988,  1044,   989,   900,
01921      990,   992,   993,    -1,    -1,   173,  1068,    -1,    -1,   991,
01922     1100,  1070,  1118,    -1,   991,  1100,  1049,    -1,   991,  1100,
01923      283,    -1,    34,    -1,     8,    -1,    -1,  1015,    -1,  1021,
01924       -1,    -1,   142,    -1,   996,   998,    -1,   996,   998,    -1,
01925       -1,    -1,   157,   997,   727,    -1,    -1,    -1,   255,   999,
01926      727,    -1,  1001,  1003,    -1,    -1,    -1,   363,  1002,   727,
01927       -1,    -1,    -1,   258,  1004,   727,    -1,  1006,  1008,    -1,
01928       -1,    -1,   279,  1007,   727,    -1,    -1,    -1,   257,  1009,
01929      727,    -1,  1011,    -1,  1013,    -1,  1011,  1013,    -1,    -1,
01930      120,  1012,   727,    -1,    -1,   253,  1014,   727,    -1,  1016,
01931       -1,  1018,    -1,  1016,  1018,    -1,    -1,   148,  1017,   727,
01932       -1,    -1,   254,  1019,   727,    -1,    -1,  1021,    -1,  1022,
01933       -1,  1024,    -1,  1022,  1024,    -1,    -1,   206,  1023,   727,
01934       -1,    -1,   256,  1025,   727,    -1,    -1,  1106,  1070,  1118,
01935       -1,  1028,    -1,  1029,    -1,    -1,  1030,  1031,    -1,  1032,
01936       -1,  1031,   207,    -1,  1031,  1032,    -1,  1062,    -1,   445,
01937       -1,   446,    -1,   437,    -1,   438,    -1,   439,    -1,   440,
01938       -1,   442,    -1,  1033,    -1,  1034,    -1,  1035,    -1,   178,
01939       -1,   215,    -1,   247,    -1,   252,    -1,    20,    -1,   274,
01940       -1,   269,    -1,   262,    -1,    12,    -1,    13,    -1,    14,
01941       -1,   292,    -1,   248,    -1,   444,    -1,   150,  1138,    -1,
01942      151,    -1,   447,    -1,   184,  1135,    -1,   448,    -1,   219,
01943     1135,    -1,   178,    -1,   184,  1135,   274,   150,  1138,    -1,
01944      215,    -1,   219,  1135,   274,   150,  1138,    -1,  1040,    -1,
01945     1038,  1039,  1040,    -1,    -1,    67,    -1,   350,    -1,  1063,
01946       -1,  1040,   437,  1040,    -1,  1040,   438,  1040,    -1,  1040,
01947      439,  1040,    -1,  1040,   440,  1040,    -1,   437,  1040,    -1,
01948      438,  1040,    -1,  1040,   442,  1040,    -1,   445,  1040,   446,
01949       -1,   223,    -1,   223,  1096,   430,    -1,  1043,    -1,  1042,
01950     1043,    -1,  1062,  1094,    -1,  1073,    -1,  1073,    -1,  1047,
01951       -1,  1046,  1047,    -1,   430,    -1,  1049,    -1,  1048,  1049,
01952       -1,   239,    -1,    -1,  1050,  1051,    -1,  1052,    -1,  1073,
01953       -1,  1053,    -1,  1053,  1096,  1053,    -1,   227,    -1,  1055,
01954       -1,  1054,  1055,    -1,  1073,    -1,    -1,  1055,    -1,  1055,
01955       -1,   227,    -1,   430,    -1,  1060,    -1,  1059,  1060,    -1,
01956     1071,    -1,     6,  1122,  1072,    -1,  1062,    -1,  1061,  1062,
01957       -1,  1071,    -1,   218,  1122,  1072,    -1,   218,  1122,  1078,
01958       -1,   218,  1122,  1080,    -1,     6,  1122,  1064,  1065,    -1,
01959        6,  1122,  1072,    -1,  1077,    -1,  1080,    -1,  1041,    -1,
01960     1071,    -1,   218,  1122,  1072,    -1,   218,  1122,  1078,    -1,
01961      218,  1122,  1080,    -1,  1078,    -1,  1080,    -1,  1041,    -1,
01962      300,    -1,   143,    -1,  1072,    -1,   227,    -1,  1071,    -1,
01963     1078,    -1,  1071,    -1,  1077,    -1,  1071,    -1,   227,    -1,
01964     1071,    -1,   227,    -1,  1080,    -1,  1071,    -1,  1076,    -1,
01965      436,    -1,  1072,    -1,  1073,    -1,  1073,  1074,    -1,  1073,
01966     1075,    -1,  1073,  1074,  1075,    -1,   430,    -1,   430,  1096,
01967     1073,    -1,   445,  1038,   446,    -1,   445,  1040,   449,   446,
01968       -1,   445,  1040,   449,  1040,   446,    -1,   227,    -1,  1078,
01969       -1,     9,  1079,    -1,  1079,    -1,  1078,   450,  1079,    -1,
01970      227,    -1,   368,    -1,   436,    -1,   305,    -1,   188,    -1,
01971      234,    -1,   397,    -1,    93,  1081,    -1,   428,  1081,    -1,
01972      420,   445,  1040,   446,  1081,    -1,   232,   445,  1040,   446,
01973     1081,    -1,   332,   445,  1040,   446,  1081,    -1,    78,   445,
01974     1038,   446,  1081,    -1,   377,   445,  1038,   446,  1081,    -1,
01975      378,   445,  1038,   446,  1081,    -1,   402,   445,  1084,   446,
01976     1081,    -1,   264,   445,  1085,   446,    -1,   229,   445,  1086,
01977      446,  1081,    -1,   177,  1082,    -1,    -1,   445,  1040,   449,
01978      446,    -1,   445,  1040,   449,  1040,   446,    -1,    -1,   445,
01979     1083,   446,    -1,    -1,  1038,    -1,  1040,    -1,  1040,  1039,
01980      216,    -1,  1040,  1039,   400,    -1,  1040,    -1,  1040,  1039,
01981     1040,    -1,  1040,    -1,  1040,  1039,  1055,    -1,    -1,    -1,
01982        9,    -1,    -1,  1098,    -1,    -1,   198,    -1,    -1,   249,
01983       -1,   294,    -1,    -1,   252,    -1,    -1,   273,    -1,    -1,
01984      338,    -1,    -1,   352,  1107,    -1,   193,    -1,   267,    -1,
01985      309,  1115,    -1,   311,  1101,    -1,   429,   116,    -1,   116,
01986       -1,    60,   353,    -1,   353,    -1,    -1,     7,    -1,    -1,
01987       22,    -1,    -1,    23,    -1,    -1,    26,    -1,    -1,    29,
01988       -1,    -1,    36,    -1,    -1,    48,    -1,    -1,    54,    -1,
01989       -1,    55,    -1,    -1,    81,    -1,    -1,    96,    -1,    -1,
01990      395,    -1,    -1,   169,    -1,    -1,   173,    -1,    -1,   193,
01991       -1,    -1,   207,    -1,    -1,   207,    -1,    22,    -1,    -1,
01992      211,    -1,    -1,   224,    -1,   225,    -1,    -1,   225,    -1,
01993       -1,   240,    -1,    -1,   260,    -1,    -1,   267,    -1,    -1,
01994      270,    -1,    -1,   275,    -1,   193,   275,    -1,    -1,   277,
01995       -1,    -1,   300,    -1,    -1,   309,    -1,    -1,   336,    -1,
01996       -1,   355,    -1,    -1,   357,    -1,    -1,   357,    -1,   357,
01997      207,    -1,    -1,   362,    -1,    -1,   374,    -1,    -1,   385,
01998       -1,    -1,   388,    -1,    -1,   389,    -1,    -1,   392,    -1,
01999       -1,   393,    -1,    -1,   427,    -1,    -1,   429,    -1
02000 };
02001 
02002 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
02003 static const unsigned short yyrline[] =
02004 {
02005        0,   757,   757,   757,   799,   800,   804,   805,   810,   811,
02006      809,   819,   820,   818,   828,   829,   827,   834,   835,   836,
02007      839,   840,   864,   888,   918,   917,   958,  1002,  1003,  1007,
02008     1008,  1011,  1012,  1016,  1023,  1030,  1034,  1038,  1050,  1051,
02009     1061,  1062,  1071,  1072,  1076,  1077,  1078,  1079,  1088,  1091,
02010     1092,  1093,  1094,  1098,  1105,  1114,  1117,  1118,  1119,  1120,
02011     1124,  1125,  1129,  1130,  1131,  1135,  1142,  1143,  1147,  1154,
02012     1166,  1169,  1170,  1174,  1175,  1179,  1183,  1190,  1191,  1201,
02013     1204,  1205,  1209,  1210,  1214,  1215,  1216,  1217,  1218,  1219,
02014     1220,  1221,  1222,  1223,  1224,  1231,  1242,  1241,  1254,  1255,
02015     1263,  1264,  1272,  1271,  1283,  1284,  1285,  1286,  1287,  1295,
02016     1296,  1301,  1302,  1304,  1303,  1315,  1316,  1320,  1321,  1322,
02017     1323,  1324,  1325,  1329,  1330,  1331,  1332,  1333,  1334,  1341,
02018     1352,  1364,  1365,  1369,  1370,  1377,  1386,  1387,  1391,  1392,
02019     1406,  1421,  1488,  1499,  1506,  1513,  1519,  1526,  1527,  1531,
02020     1530,  1540,  1539,  1555,  1556,  1559,  1560,  1565,  1564,  1585,
02021     1586,  1590,  1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,
02022     1599,  1600,  1601,  1602,  1609,  1613,  1619,  1620,  1621,  1624,
02023     1625,  1629,  1633,  1634,  1641,  1648,  1652,  1653,  1654,  1661,
02024     1686,  1696,  1705,  1707,  1708,  1714,  1718,  1719,  1720,  1723,
02025     1724,  1725,  1729,  1733,  1734,  1740,  1741,  1745,  1754,  1763,
02026     1772,  1787,  1797,  1804,  1811,  1812,  1813,  1819,  1826,  1833,
02027     1837,  1838,  1839,  1847,  1848,  1851,  1852,  1856,  1857,  1861,
02028     1862,  1868,  1893,  1894,  1895,  1896,  1902,  1909,  1910,  1914,
02029     1917,  1918,  1926,  1927,  1941,  1942,  1942,  1945,  1944,  1957,
02030     1958,  1962,  1974,  1983,  1987,  1988,  1998,  1997,  2015,  2016,
02031     2020,  2027,  2034,  2035,  2036,  2037,  2038,  2039,  2040,  2041,
02032     2042,  2049,  2053,  2053,  2053,  2059,  2071,  2096,  2120,  2121,
02033     2128,  2129,  2133,  2134,  2141,  2148,  2149,  2156,  2160,  2169,
02034     2170,  2176,  2186,  2204,  2205,  2209,  2210,  2211,  2215,  2222,
02035     2229,  2239,  2246,  2264,  2268,  2279,  2280,  2280,  2291,  2292,
02036     2296,  2296,  2313,  2314,  2316,  2320,  2322,  2321,  2353,  2358,
02037     2363,  2369,  2378,  2386,  2387,  2395,  2396,  2397,  2401,  2421,
02038     2425,  2434,  2435,  2436,  2437,  2438,  2439,  2440,  2441,  2442,
02039     2443,  2444,  2445,  2446,  2447,  2454,  2476,  2498,  2499,  2511,
02040     2531,  2538,  2539,  2543,  2544,  2545,  2546,  2547,  2548,  2549,
02041     2550,  2551,  2552,  2553,  2554,  2559,  2564,  2565,  2566,  2567,
02042     2568,  2569,  2570,  2571,  2572,  2573,  2574,  2575,  2576,  2577,
02043     2578,  2579,  2580,  2581,  2582,  2590,  2598,  2606,  2613,  2618,
02044     2629,  2646,  2647,  2650,  2651,  2658,  2682,  2683,  2700,  2701,
02045     2704,  2705,  2712,  2713,  2718,  2728,  2735,  2738,  2739,  2740,
02046     2747,  2754,  2779,  2779,  2784,  2785,  2789,  2790,  2793,  2794,
02047     2807,  2819,  2839,  2853,  2855,  2854,  2874,  2875,  2875,  2888,
02048     2890,  2889,  2901,  2902,  2906,  2907,  2916,  2923,  2926,  2930,
02049     2934,  2935,  2936,  2943,  2944,  2948,  2951,  2951,  2954,  2955,
02050     2961,  2966,  2967,  2970,  2971,  2974,  2975,  2978,  2979,  2982,
02051     2983,  2987,  2988,  2989,  2993,  2994,  2997,  2998,  3002,  3006,
02052     3007,  3011,  3012,  3013,  3014,  3015,  3016,  3017,  3018,  3019,
02053     3020,  3021,  3022,  3023,  3024,  3025,  3026,  3030,  3034,  3035,
02054     3036,  3037,  3038,  3039,  3040,  3044,  3048,  3049,  3050,  3054,
02055     3055,  3059,  3063,  3068,  3072,  3076,  3080,  3081,  3085,  3086,
02056     3090,  3091,  3092,  3095,  3095,  3095,  3098,  3102,  3105,  3105,
02057     3108,  3115,  3116,  3117,  3116,  3134,  3135,  3139,  3140,  3145,
02058     3147,  3146,  3182,  3183,  3187,  3188,  3189,  3190,  3191,  3192,
02059     3193,  3194,  3195,  3196,  3197,  3198,  3199,  3200,  3201,  3202,
02060     3203,  3207,  3211,  3215,  3219,  3220,  3221,  3222,  3223,  3224,
02061     3225,  3226,  3233,  3237,  3247,  3250,  3254,  3258,  3262,  3270,
02062     3273,  3277,  3281,  3285,  3293,  3306,  3308,  3318,  3307,  3345,
02063     3347,  3346,  3353,  3352,  3361,  3362,  3367,  3374,  3376,  3380,
02064     3390,  3392,  3400,  3408,  3437,  3468,  3470,  3480,  3485,  3496,
02065     3497,  3497,  3524,  3525,  3529,  3530,  3531,  3532,  3548,  3552,
02066     3564,  3595,  3632,  3644,  3647,  3648,  3657,  3661,  3657,  3674,
02067     3674,  3692,  3696,  3697,  3698,  3699,  3700,  3701,  3702,  3703,
02068     3704,  3705,  3706,  3707,  3708,  3709,  3710,  3711,  3712,  3713,
02069     3714,  3715,  3716,  3717,  3718,  3719,  3720,  3721,  3722,  3723,
02070     3724,  3725,  3726,  3727,  3728,  3729,  3730,  3731,  3732,  3733,
02071     3734,  3735,  3736,  3737,  3738,  3739,  3740,  3741,  3742,  3743,
02072     3744,  3767,  3766,  3779,  3783,  3787,  3791,  3795,  3799,  3803,
02073     3807,  3811,  3815,  3819,  3823,  3827,  3831,  3835,  3839,  3843,
02074     3850,  3851,  3852,  3853,  3854,  3855,  3859,  3863,  3864,  3867,
02075     3868,  3872,  3873,  3877,  3878,  3879,  3880,  3881,  3882,  3883,
02076     3884,  3888,  3892,  3896,  3901,  3902,  3903,  3904,  3905,  3906,
02077     3910,  3911,  3920,  3920,  3926,  3930,  3934,  3940,  3941,  3945,
02078     3946,  3955,  3955,  3960,  3964,  3971,  3972,  3981,  3987,  3988,
02079     3992,  3992,  4000,  4000,  4010,  4012,  4011,  4020,  4021,  4026,
02080     4033,  4040,  4042,  4046,  4054,  4065,  4066,  4067,  4072,  4076,
02081     4075,  4087,  4091,  4090,  4101,  4102,  4111,  4111,  4115,  4116,
02082     4128,  4128,  4132,  4133,  4144,  4145,  4146,  4147,  4148,  4151,
02083     4151,  4159,  4159,  4165,  4172,  4173,  4176,  4176,  4183,  4196,
02084     4209,  4209,  4220,  4221,  4231,  4230,  4243,  4247,  4251,  4255,
02085     4259,  4266,  4267,  4268,  4269,  4270,  4274,  4275,  4276,  4280,
02086     4281,  4286,  4287,  4288,  4289,  4290,  4291,  4292,  4293,  4294,
02087     4295,  4299,  4303,  4307,  4312,  4313,  4317,  4318,  4327,  4327,
02088     4333,  4337,  4341,  4345,  4349,  4356,  4357,  4366,  4366,  4388,
02089     4387,  4406,  4407,  4412,  4421,  4426,  4434,  4444,  4445,  4451,
02090     4450,  4463,  4467,  4466,  4478,  4479,  4484,  4485,  4490,  4519,
02091     4520,  4521,  4524,  4525,  4529,  4530,  4539,  4539,  4544,  4545,
02092     4553,  4570,  4587,  4605,  4630,  4630,  4643,  4643,  4656,  4656,
02093     4665,  4669,  4682,  4682,  4695,  4697,  4695,  4705,  4710,  4714,
02094     4713,  4724,  4725,  4734,  4734,  4742,  4743,  4747,  4748,  4749,
02095     4753,  4754,  4759,  4760,  4765,  4769,  4770,  4771,  4772,  4773,
02096     4774,  4775,  4779,  4780,  4789,  4789,  4802,  4801,  4811,  4812,
02097     4813,  4817,  4818,  4822,  4823,  4824,  4830,  4830,  4835,  4836,
02098     4840,  4841,  4842,  4843,  4844,  4845,  4851,  4855,  4856,  4860,
02099     4865,  4869,  4870,  4871,  4872,  4873,  4877,  4903,  4912,  4913,
02100     4917,  4917,  4925,  4925,  4935,  4935,  4940,  4944,  4956,  4956,
02101     4962,  4966,  4973,  4974,  4983,  4983,  4987,  4988,  5002,  5003,
02102     5004,  5005,  5009,  5010,  5014,  5015,  5016,  5028,  5028,  5033,
02103     5038,  5037,  5047,  5054,  5055,  5059,  5064,  5073,  5076,  5080,
02104     5085,  5092,  5099,  5100,  5104,  5105,  5110,  5122,  5122,  5145,
02105     5146,  5150,  5151,  5155,  5159,  5163,  5167,  5174,  5175,  5178,
02106     5179,  5180,  5184,  5185,  5194,  5194,  5209,  5209,  5220,  5221,
02107     5230,  5230,  5241,  5242,  5246,  5253,  5254,  5263,  5276,  5276,
02108     5282,  5287,  5286,  5297,  5298,  5302,  5304,  5303,  5314,  5315,
02109     5320,  5319,  5330,  5331,  5340,  5340,  5345,  5346,  5347,  5348,
02110     5349,  5355,  5364,  5368,  5377,  5384,  5385,  5391,  5392,  5396,
02111     5405,  5406,  5410,  5414,  5426,  5426,  5432,  5431,  5448,  5451,
02112     5467,  5468,  5471,  5472,  5476,  5477,  5482,  5487,  5495,  5507,
02113     5512,  5520,  5536,  5537,  5536,  5557,  5558,  5562,  5563,  5564,
02114     5565,  5566,  5570,  5571,  5580,  5580,  5585,  5592,  5593,  5594,
02115     5603,  5603,  5612,  5613,  5617,  5618,  5619,  5623,  5624,  5628,
02116     5629,  5638,  5638,  5644,  5648,  5652,  5659,  5660,  5669,  5676,
02117     5677,  5685,  5685,  5698,  5698,  5714,  5714,  5723,  5725,  5726,
02118     5735,  5735,  5745,  5746,  5751,  5752,  5757,  5764,  5765,  5770,
02119     5777,  5778,  5782,  5783,  5787,  5788,  5792,  5793,  5802,  5803,
02120     5804,  5808,  5832,  5835,  5843,  5853,  5858,  5863,  5868,  5875,
02121     5876,  5879,  5880,  5884,  5884,  5888,  5888,  5892,  5892,  5895,
02122     5896,  5900,  5907,  5908,  5912,  5924,  5924,  5935,  5936,  5941,
02123     5944,  5948,  5952,  5959,  5960,  5963,  5964,  5965,  5969,  5970,
02124     5983,  5991,  5998,  6000,  5999,  6009,  6011,  6010,  6025,  6032,
02125     6034,  6033,  6043,  6045,  6044,  6060,  6066,  6068,  6067,  6077,
02126     6079,  6078,  6094,  6099,  6104,  6114,  6113,  6125,  6124,  6140,
02127     6145,  6150,  6160,  6159,  6171,  6170,  6185,  6186,  6190,  6195,
02128     6200,  6210,  6209,  6221,  6220,  6237,  6240,  6252,  6259,  6266,
02129     6266,  6276,  6277,  6278,  6282,  6284,  6285,  6287,  6288,  6289,
02130     6290,  6291,  6293,  6294,  6295,  6296,  6297,  6298,  6300,  6301,
02131     6302,  6304,  6305,  6306,  6307,  6308,  6311,  6312,  6315,  6315,
02132     6315,  6316,  6316,  6317,  6317,  6318,  6318,  6319,  6319,  6324,
02133     6325,  6328,  6329,  6330,  6334,  6335,  6336,  6337,  6338,  6339,
02134     6340,  6341,  6342,  6353,  6365,  6380,  6381,  6386,  6392,  6398,
02135     6418,  6422,  6438,  6452,  6453,  6458,  6464,  6465,  6470,  6479,
02136     6480,  6481,  6485,  6496,  6497,  6501,  6509,  6510,  6514,  6515,
02137     6521,  6541,  6542,  6546,  6547,  6551,  6552,  6556,  6557,  6558,
02138     6559,  6560,  6561,  6562,  6563,  6564,  6568,  6569,  6570,  6571,
02139     6572,  6573,  6574,  6578,  6579,  6583,  6584,  6588,  6589,  6593,
02140     6594,  6605,  6606,  6610,  6611,  6612,  6616,  6617,  6618,  6626,
02141     6630,  6631,  6632,  6633,  6637,  6638,  6642,  6650,  6654,  6666,
02142     6678,  6679,  6689,  6690,  6694,  6695,  6696,  6697,  6698,  6699,
02143     6700,  6708,  6712,  6716,  6720,  6724,  6728,  6732,  6736,  6740,
02144     6744,  6748,  6752,  6759,  6760,  6761,  6765,  6766,  6770,  6771,
02145     6776,  6783,  6790,  6800,  6807,  6817,  6824,  6838,  6848,  6849,
02146     6853,  6854,  6858,  6859,  6863,  6864,  6865,  6869,  6870,  6874,
02147     6875,  6879,  6880,  6884,  6885,  6892,  6892,  6893,  6893,  6894,
02148     6894,  6895,  6895,  6897,  6897,  6898,  6898,  6899,  6899,  6900,
02149     6900,  6901,  6901,  6902,  6902,  6903,  6903,  6904,  6904,  6905,
02150     6905,  6906,  6906,  6907,  6907,  6908,  6908,  6909,  6909,  6910,
02151     6910,  6911,  6911,  6912,  6912,  6913,  6913,  6913,  6914,  6914,
02152     6915,  6915,  6915,  6916,  6916,  6917,  6917,  6918,  6918,  6919,
02153     6919,  6920,  6920,  6921,  6921,  6921,  6922,  6922,  6923,  6923,
02154     6924,  6924,  6925,  6925,  6926,  6926,  6927,  6927,  6928,  6928,
02155     6928,  6929,  6929,  6930,  6930,  6931,  6931,  6932,  6932,  6933,
02156     6933,  6934,  6934,  6935,  6935,  6937,  6937,  6938,  6938
02157 };
02158 #endif
02159 
02160 #if YYDEBUG || YYERROR_VERBOSE
02161 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
02162    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
02163 static const char *const yytname[] =
02164 {
02165   "\"end of file\"", "error", "$undefined", "ACCEPT", "ACCESS", "ADD", 
02166   "ADDRESS", "ADVANCING", "AFTER", "ALL", "ALLOCATE", "ALPHABET", 
02167   "ALPHABETIC", "\"ALPHABETIC-LOWER\"", "\"ALPHABETIC-UPPER\"", 
02168   "ALPHANUMERIC", "\"ALPHANUMERIC-EDITED\"", "ALSO", "ALTER", "ALTERNATE", 
02169   "AND", "ANY", "ARE", "AREA", "\"ARGUMENT-NUMBER\"", 
02170   "\"ARGUMENT-VALUE\"", "AS", "ASCENDING", "ASSIGN", "AT", "AUTO", 
02171   "AUTOMATIC", "\"BACKGROUND-COLOR\"", "BASED", "BEFORE", "BELL", 
02172   "BINARY", "\"BINARY-C-LONG\"", "\"BINARY-CHAR\"", "\"BINARY-DOUBLE\"", 
02173   "\"BINARY-LONG\"", "\"BINARY-SHORT\"", "BLANK", "\"BLANK-LINE\"", 
02174   "\"BLANK-SCREEN\"", "BLINK", "BLOCK", "BOTTOM", "BY", "\"BYTE-LENGTH\"", 
02175   "CALL", "CANCEL", "CH", "CHAINING", "CHARACTER", "CHARACTERS", "CLASS", 
02176   "CLOSE", "CODE", "\"CODE-SET\"", "COLLATING", "COL", "COLS", "COLUMN", 
02177   "COLUMNS", "COMMA", "\"COMMAND-LINE\"", "\"comma delimiter\"", "COMMIT", 
02178   "COMMON", "COMP", "COMPUTE", "\"COMP-1\"", "\"COMP-2\"", "\"COMP-3\"", 
02179   "\"COMP-4\"", "\"COMP-5\"", "\"COMP-X\"", "\"FUNCTION CONCATENATE\"", 
02180   "CONFIGURATION", "CONSTANT", "CONTAINS", "CONTENT", "CONTINUE", 
02181   "CONTROL", "CONTROLS", "\"CONTROL FOOTING\"", "\"CONTROL HEADING\"", 
02182   "CONVERTING", "CORRESPONDING", "COUNT", "CRT", "CURRENCY", 
02183   "\"FUNCTION CURRENT-DATE\"", "CURSOR", "CYCLE", "DATA", "DATE", "DAY", 
02184   "\"DAY-OF-WEEK\"", "DE", "DEBUGGING", "\"DECIMAL-POINT\"", 
02185   "DECLARATIVES", "DEFAULT", "DELETE", "DELIMITED", "DELIMITER", 
02186   "DEPENDING", "DESCENDING", "DETAIL", "DISK", "DISPLAY", "DIVIDE", 
02187   "DIVISION", "DOWN", "DUPLICATES", "DYNAMIC", "EBCDIC", "ELSE", "END", 
02188   "\"END-ACCEPT\"", "\"END-ADD\"", "\"END-CALL\"", "\"END-COMPUTE\"", 
02189   "\"END-DELETE\"", "\"END-DISPLAY\"", "\"END-DIVIDE\"", 
02190   "\"END-EVALUATE\"", "\"END FUNCTION\"", "\"END-IF\"", 
02191   "\"END-MULTIPLY\"", "\"END-PERFORM\"", "\"END PROGRAM\"", 
02192   "\"END-READ\"", "\"END-RETURN\"", "\"END-REWRITE\"", "\"END-SEARCH\"", 
02193   "\"END-START\"", "\"END-STRING\"", "\"END-SUBTRACT\"", 
02194   "\"END-UNSTRING\"", "\"END-WRITE\"", "ENTRY", "ENVIRONMENT", 
02195   "\"ENVIRONMENT-NAME\"", "\"ENVIRONMENT-VALUE\"", "EOL", "EOP", "EOS", 
02196   "EQUAL", "EQUALS", "ERASE", "ERROR", "ESCAPE", "EVALUATE", 
02197   "\"EVENT-STATUS\"", "EXCEPTION", "EXCLUSIVE", "EXIT", "EXTEND", 
02198   "EXTERNAL", "FD", "\"FILE-CONTROL\"", "\"FILE-ID\"", "FILLER", "FINAL", 
02199   "FIRST", "FOOTING", "FOR", "\"FOREGROUND-COLOR\"", "FOREVER", "FREE", 
02200   "FROM", "FULL", "FUNCTION", "\"FUNCTION-ID\"", "\"FUNCTION\"", "GE", 
02201   "GENERATE", "GIVING", "GLOBAL", "GO", "GOBACK", "GREATER", "GROUP", 
02202   "HEADING", "HIGHLIGHT", "\"HIGH-VALUE\"", "IDENTIFICATION", "IF", 
02203   "IGNORE", "IGNORING", "IN", "INDEX", "INDEXED", "INDICATE", 
02204   "INITIALIZE", "INITIALIZED", "INITIATE", "INPUT", "\"INPUT-OUTPUT\"", 
02205   "INSPECT", "INTO", "INTRINSIC", "INVALID", "\"INVALID KEY\"", "IS", 
02206   "\"I-O\"", "\"I-O-CONTROL\"", "JUSTIFIED", "KEY", "LABEL", "LAST", 
02207   "\"LAST DETAIL\"", "LE", "LEADING", "LEFT", "LENGTH", "LESS", "LIMIT", 
02208   "LIMITS", "LINAGE", "\"LINAGE-COUNTER\"", "LINE", "LINES", "LINKAGE", 
02209   "\"Literal\"", "LOCALE", "\"FUNCTION LOCALE\"", "\"LOCAL-STORAGE\"", 
02210   "LOCK", "\"FUNCTION LOWER-CASE\"", "LOWLIGHT", "\"LOW-VALUE\"", 
02211   "MANUAL", "MEMORY", "MERGE", "MINUS", "\"MNEMONIC NAME\"", "MODE", 
02212   "MOVE", "MULTIPLE", "MULTIPLY", "NATIONAL", "\"NATIONAL-EDITED\"", 
02213   "NATIVE", "NE", "NEGATIVE", "NEXT", "\"NEXT SENTENCE\"", "NO", "NOT", 
02214   "\"NOT END\"", "\"NOT EOP\"", "\"NOT EXCEPTION\"", 
02215   "\"NOT INVALID KEY\"", "\"NOT OVERFLOW\"", "\"NOT SIZE ERROR\"", 
02216   "\"NO ADVANCING\"", "NUMBER", "NUMBERS", "NUMERIC", 
02217   "\"NUMERIC-EDITED\"", "\"FUNCTION NUMVALC\"", "\"OBJECT-COMPUTER\"", 
02218   "OCCURS", "OF", "OFF", "OMITTED", "ON", "ONLY", "OPEN", "OPTIONAL", 
02219   "OR", "ORDER", "ORGANIZATION", "OTHER", "OUTPUT", "OVERFLOW", 
02220   "OVERLINE", "\"PACKED-DECIMAL\"", "PADDING", "PAGE", "\"PAGE FOOTING\"", 
02221   "\"PAGE HEADING\"", "PARAGRAPH", "PERFORM", "PICTURE", "PLUS", 
02222   "POINTER", "POSITION", "POSITIVE", "PRESENT", "PREVIOUS", "PRINTER", 
02223   "PRINTING", "PROCEDURE", "PROCEDURES", "PROCEED", "PROGRAM", 
02224   "\"PROGRAM-ID\"", "\"Program name\"", "\"PROGRAM-POINTER\"", "PROMPT", 
02225   "QUOTE", "RANDOM", "RD", "READ", "RECORD", "RECORDING", "RECORDS", 
02226   "RECURSIVE", "REDEFINES", "REEL", "REFERENCE", "RELATIVE", "RELEASE", 
02227   "REMAINDER", "REMOVAL", "RENAMES", "REPLACING", "REPORT", "REPORTING", 
02228   "REPORTS", "\"REPORT FOOTING\"", "\"REPORT HEADING\"", "REPOSITORY", 
02229   "REQUIRED", "RESERVE", "RETURN", "RETURNING", "\"FUNCTION REVERSE\"", 
02230   "\"REVERSE-VIDEO\"", "REWIND", "REWRITE", "RIGHT", "ROLLBACK", 
02231   "ROUNDED", "RUN", "SAME", "SCREEN", "\"SCREEN-CONTROL\"", "SCROLL", 
02232   "SD", "SEARCH", "SECTION", "SECURE", "\"SEGMENT-LIMIT\"", "SELECT", 
02233   "\"semi-colon\"", "SENTENCE", "SEPARATE", "SEQUENCE", "SEQUENTIAL", 
02234   "SET", "SHARING", "SIGN", "SIGNED", "\"SIGNED-INT\"", "\"SIGNED-LONG\"", 
02235   "\"SIGNED-SHORT\"", "SIZE", "\"SIZE ERROR\"", "SORT", "\"SORT-MERGE\"", 
02236   "SOURCE", "\"SOURCE-COMPUTER\"", "SPACE", "\"SPECIAL-NAMES\"", 
02237   "STANDARD", "\"STANDARD-1\"", "\"STANDARD-2\"", "START", "STATUS", 
02238   "STOP", "STRING", "\"FUNCTION SUBSTITUTE\"", 
02239   "\"FUNCTION SUBSTITUTE-CASE\"", "SUBTRACT", "SUM", "SUPPRESS", 
02240   "SYMBOLIC", "SYNCHRONIZED", "TALLYING", "TAPE", "TERMINATE", "TEST", 
02241   "THAN", "THEN", "THRU", "TIME", "TIMES", "TO", "\"FALSE\"", "\"FILE\"", 
02242   "\"INITIAL\"", "\"NULL\"", "\"TRUE\"", "TOP", "TRAILING", "TRANSFORM", 
02243   "\"FUNCTION TRIM\"", "TYPE", "UNDERLINE", "UNIT", "UNLOCK", "UNSIGNED", 
02244   "\"UNSIGNED-INT\"", "\"UNSIGNED-LONG\"", "\"UNSIGNED-SHORT\"", 
02245   "UNSTRING", "UNTIL", "UP", "UPDATE", "UPON", "\"UPON ARGUMENT-NUMBER\"", 
02246   "\"UPON COMMAND-LINE\"", "\"UPON ENVIRONMENT-NAME\"", 
02247   "\"UPON ENVIRONMENT-VALUE\"", "\"FUNCTION UPPER-CASE\"", "USAGE", "USE", 
02248   "USING", "VALUE", "VARYING", "WAIT", "WHEN", 
02249   "\"FUNCTION WHEN-COMPILED\"", "WITH", "\"Identifier\"", "WORDS", 
02250   "\"WORKING-STORAGE\"", "WRITE", "YYYYDDD", "YYYYMMDD", "ZERO", "'+'", 
02251   "'-'", "'*'", "'/'", "UNARY_SIGN", "'^'", "'.'", "'='", "'('", "')'", 
02252   "'>'", "'<'", "':'", "'&'", "$accept", "start", "@1", "nested_list", 
02253   "source_element", "program_definition", "@2", "@3", "program_mandatory", 
02254   "@4", "@5", "function_definition", "@6", "@7", "nested_prog", 
02255   "end_program", "end_mandatory", "end_function", 
02256   "identification_division", "@8", "function_division", "program_name", 
02257   "as_literal", "program_type", "program_type_clause", "_init_or_recurs", 
02258   "environment_division", "configuration_section", "configuration_list", 
02259   "configuration_paragraph", "source_computer_paragraph", 
02260   "source_computer_entry", "with_debugging_mode", "computer_name", 
02261   "object_computer_paragraph", "object_computer_entry", 
02262   "object_clauses_list", "object_clauses", "object_computer_memory", 
02263   "object_char_or_word", "object_computer_sequence", 
02264   "object_computer_segment", "repository_paragraph", "opt_repository", 
02265   "repository_list", "repository_name", "repository_literal_list", 
02266   "special_names_paragraph", "opt_special_names", "special_name_list", 
02267   "special_name", "mnemonic_name_clause", "@9", 
02268   "special_name_mnemonic_on_off", "on_or_off", "alphabet_name_clause", 
02269   "@10", "alphabet_definition", "alphabet_literal_list", 
02270   "alphabet_literal", "@11", "alphabet_also_sequence", "alphabet_lits", 
02271   "alphabet_also_literal", "symbolic_characters_clause", 
02272   "symbolic_characters_list", "char_list", "integer_list", 
02273   "class_name_clause", "class_item_list", "class_item", "locale_clause", 
02274   "currency_sign_clause", "decimal_point_clause", "cursor_clause", 
02275   "crt_status_clause", "screen_control", "event_status", 
02276   "input_output_section", "@12", "@13", "file_control_paragraph", 
02277   "file_control_sequence", "file_control_entry", "@14", 
02278   "select_clause_sequence", "select_clause", "assign_clause", "_device", 
02279   "_ext_clause", "assignment_name", "access_mode_clause", "access_mode", 
02280   "alternative_record_key_clause", "collating_sequence_clause", 
02281   "file_status_clause", "file_or_sort", "lock_mode_clause", "lock_mode", 
02282   "lock_with", "lock_records", "organization_clause", "organization", 
02283   "padding_character_clause", "record_delimiter_clause", 
02284   "record_key_clause", "opt_splitk", "relative_key_clause", 
02285   "reserve_clause", "sharing_clause", "sharing_option", 
02286   "i_o_control_paragraph", "opt_i_o_control", "i_o_control_list", 
02287   "i_o_control_clause", "same_clause", "same_option", 
02288   "multiple_file_tape_clause", "multiple_file_list", "multiple_file", 
02289   "multiple_file_position", "data_division", "file_section", "@15", "@16", 
02290   "file_description_sequence", "file_description", 
02291   "file_description_sequence_without_type", "file_type", 
02292   "file_description_entry", "@17", "file_description_clause_sequence", 
02293   "file_description_clause", "block_contains_clause", 
02294   "_records_or_characters", "record_clause", "record_depending", 
02295   "opt_from_integer", "opt_to_integer", "label_records_clause", 
02296   "label_option", "value_of_clause", "valueof_name", 
02297   "data_records_clause", "linage_clause", "linage_sequence", 
02298   "linage_lines", "linage_footing", "linage_top", "linage_bottom", 
02299   "recording_mode_clause", "code_set_clause", "report_clause", 
02300   "working_storage_section", "@18", "record_description_list", 
02301   "record_description_list_1", "@19", "record_description_list_2", 
02302   "data_description", "@20", "level_number", "entry_name", "const_name", 
02303   "const_global", "lit_or_length", "constant_entry", 
02304   "data_description_clause_sequence", "data_description_clause", 
02305   "redefines_clause", "external_clause", "as_extname", "global_clause", 
02306   "picture_clause", "usage_clause", "usage", "sign_clause", 
02307   "occurs_clause", "occurs_to_integer", "occurs_depending", "occurs_keys", 
02308   "occurs_key_list", "ascending_or_descending", "occurs_indexed", 
02309   "occurs_index_list", "occurs_index", "justified_clause", 
02310   "synchronized_clause", "left_or_right", "blank_clause", "based_clause", 
02311   "value_clause", "@21", "value_item_list", "value_item", "false_is", 
02312   "renames_clause", "any_length_clause", "local_storage_section", "@22", 
02313   "linkage_section", "@23", "report_section", "@24", 
02314   "opt_report_description_list", "report_description_list", 
02315   "report_description_entry", "report_description_options", 
02316   "report_description_option", "control_clause", "control_field_list", 
02317   "_final", "identifier_list", "page_limit_clause", "heading_clause", 
02318   "first_detail", "last_heading", "last_detail", "footing_clause", 
02319   "page_line_column", "line_or_lines", "report_group_description_list", 
02320   "report_group_description_entry", "report_group_options", 
02321   "report_group_option", "type_clause", "type_option", 
02322   "next_group_clause", "column_clause", "sum_clause_list", "sum_clause", 
02323   "ref_id_exp", "present_when_condition", "varying_clause", "line_clause", 
02324   "line_keyword_clause", "report_line_integer_list", "line_or_plus", 
02325   "_numbers", "source_clause", "group_indicate_clause", "_indicate", 
02326   "report_name", "screen_section", "@25", "@26", 
02327   "opt_screen_description_list", "screen_description_list", 
02328   "screen_description", "@27", "screen_options", "screen_option", 
02329   "screen_line_plus_minus", "screen_col_plus_minus", 
02330   "screen_occurs_clause", "procedure_division", "@28", "@29", 
02331   "procedure_using_chaining", "@30", "@31", "procedure_param_list", 
02332   "procedure_param", "procedure_type", "size_optional", 
02333   "procedure_optional", "procedure_returning", "procedure_declaratives", 
02334   "@32", "procedure_list", "procedure", "section_header", 
02335   "paragraph_header", "invalid_statement", "section_name", "opt_segment", 
02336   "statement_list", "@33", "@34", "statements", "@35", "statement", 
02337   "accept_statement", "@36", "accept_body", "opt_at_line_column", 
02338   "line_number", "column_number", "opt_accp_attr", "accp_attrs", 
02339   "accp_attr", "end_accept", "add_statement", "@37", "add_body", "add_to", 
02340   "end_add", "allocate_statement", "@38", "allocate_body", 
02341   "allocate_returning", "alter_statement", "alter_options", "_proceed_to", 
02342   "call_statement", "@39", "call_using", "@40", "call_param_list", 
02343   "call_param", "call_type", "call_returning", "call_on_exception", "@41", 
02344   "call_not_on_exception", "@42", "end_call", "cancel_statement", "@43", 
02345   "cancel_list", "close_statement", "@44", "close_list", "close_option", 
02346   "reel_or_unit", "compute_statement", "@45", "compute_body", 
02347   "end_compute", "comp_equal", "commit_statement", "continue_statement", 
02348   "delete_statement", "@46", "end_delete", "display_statement", "@47", 
02349   "display_body", "display_upon", "with_clause", "disp_attrs", 
02350   "disp_attr", "end_display", "divide_statement", "@48", "divide_body", 
02351   "end_divide", "entry_statement", "@49", "evaluate_statement", "@50", 
02352   "evaluate_subject_list", "evaluate_subject", "evaluate_condition_list", 
02353   "evaluate_case_list", "evaluate_case", "@51", "evaluate_other", "@52", 
02354   "evaluate_when_list", "evaluate_object_list", "evaluate_object", 
02355   "opt_evaluate_thru_expr", "end_evaluate", "exit_statement", "@53", 
02356   "exit_body", "free_statement", "@54", "generate_statement", "@55", 
02357   "goto_statement", "@56", "goto_depending", "goback_statement", "@57", 
02358   "if_statement", "@58", "@59", "if_else_sentence", "@60", "end_if", 
02359   "initialize_statement", "@61", "initialize_filler", "initialize_value", 
02360   "initialize_replacing", "initialize_replacing_list", 
02361   "initialize_replacing_item", "initialize_category", 
02362   "initialize_default", "initiate_statement", "@62", "inspect_statement", 
02363   "@63", "send_identifier", "inspect_list", "inspect_item", 
02364   "inspect_tallying", "@64", "tallying_list", "tallying_item", 
02365   "inspect_replacing", "replacing_list", "replacing_item", "rep_keyword", 
02366   "replacing_region", "inspect_converting", "inspect_region", "_initial", 
02367   "merge_statement", "@65", "move_statement", "@66", "move_body", 
02368   "multiply_statement", "@67", "multiply_body", "end_multiply", 
02369   "open_statement", "@68", "open_list", "open_mode", "open_sharing", 
02370   "open_option", "perform_statement", "@69", "perform_body", "@70", 
02371   "end_perform", "perform_procedure", "perform_option", "perform_test", 
02372   "perform_varying_list", "perform_varying", "read_statement", "@71", 
02373   "read_into", "with_lock", "read_key", "read_handler", "end_read", 
02374   "release_statement", "@72", "return_statement", "@73", "end_return", 
02375   "rewrite_statement", "@74", "write_lock", "end_rewrite", 
02376   "rollback_statement", "search_statement", "@75", "search_body", "@76", 
02377   "search_varying", "search_at_end", "@77", "search_whens", "search_when", 
02378   "@78", "end_search", "set_statement", "@79", "set_body", 
02379   "set_environment", "set_to", "set_up_down", "up_or_down", 
02380   "set_to_on_off_sequence", "set_to_on_off", "set_to_true_false_sequence", 
02381   "set_to_true_false", "sort_statement", "@80", "sort_body", "@81", 
02382   "sort_key_list", "opt_key_list", "sort_duplicates", "sort_collating", 
02383   "sort_input", "sort_output", "start_statement", "@82", "@83", 
02384   "start_key", "start_op", "end_start", "stop_statement", "@84", 
02385   "stop_returning", "string_statement", "@85", "string_item_list", 
02386   "string_item", "opt_with_pointer", "end_string", "subtract_statement", 
02387   "@86", "subtract_body", "end_subtract", "suppress_statement", 
02388   "_printing", "terminate_statement", "@87", "transform_statement", "@88", 
02389   "unlock_statement", "@89", "opt_record", "unstring_statement", "@90", 
02390   "unstring_delimited", "unstring_delimited_list", 
02391   "unstring_delimited_item", "unstring_into", "unstring_into_item", 
02392   "unstring_into_delimiter", "unstring_into_count", "unstring_tallying", 
02393   "end_unstring", "use_statement", "use_exception", "use_global", 
02394   "use_exception_target", "_after", "_standard", "exception_or_error", 
02395   "exception_or_overflow", "not_exception_or_overflow", "_procedure", 
02396   "use_debugging", "use_debugging_target", "use_reporting", 
02397   "write_statement", "@91", "write_from", "write_option", 
02398   "before_or_after", "write_handler", "end_write", "on_accp_exception", 
02399   "on_disp_exception", "opt_on_exception", "@92", "opt_not_on_exception", 
02400   "@93", "on_size_error", "opt_on_size_error", "@94", 
02401   "opt_not_on_size_error", "@95", "on_overflow", "opt_on_overflow", "@96", 
02402   "opt_not_on_overflow", "@97", "at_end", "at_end_sentence", "@98", 
02403   "not_at_end_sentence", "@99", "at_eop", "at_eop_sentence", "@100", 
02404   "not_at_eop_sentence", "@101", "opt_invalid_key", "invalid_key", 
02405   "invalid_key_sentence", "@102", "not_invalid_key_sentence", "@103", 
02406   "_opt_scroll_lines", "condition", "expr", "partial_expr", "@104", 
02407   "expr_tokens", "expr_token", "eq", "gt", "lt", "ge", "le", "exp_list", 
02408   "e_sep", "exp", "linage_counter", "arithmetic_x_list", "arithmetic_x", 
02409   "record_name", "table_name", "file_name_list", "file_name", 
02410   "mnemonic_name_list", "mnemonic_name", "procedure_name_list", 
02411   "procedure_name", "label", "integer_label", "reference_list", 
02412   "reference", "opt_reference", "reference_or_literal", "undefined_word", 
02413   "target_x_list", "target_x", "x_list", "x", "arith_x", "prog_or_entry", 
02414   "alnum_or_id", "simple_value", "simple_all_value", "id_or_lit", 
02415   "id_or_lit_or_func", "num_id_or_lit", "identifier", "identifier_1", 
02416   "qualified_word", "subref", "refmod", "integer", "literal", 
02417   "basic_literal", "basic_value", "function", "func_refmod", "func_args", 
02418   "list_func_args", "trim_args", "numvalc_args", "locale_dt_args", 
02419   "not_const_word", "flag_all", "flag_duplicates", "flag_initialized", 
02420   "flag_next", "flag_not", "flag_optional", "flag_rounded", 
02421   "flag_separate", "in_of", "records", "with_dups", "coll_sequence", 
02422   "_advancing", "_are", "_area", "_as", "_at", "_binary", "_by", 
02423   "_character", "_characters", "_contains", "_data", "_file", "_for", 
02424   "_from", "_in", "_is", "_is_are", "_key", "_line_or_lines", "_lines", 
02425   "_mode", "_number", "_of", "_on", "_in_order", "_other", "_program", 
02426   "_record", "_right", "_set", "_sign", "_sign_is", "_size", "_status", 
02427   "_tape", "_than", "_then", "_times", "_to", "_when", "_with", 0
02428 };
02429 #endif
02430 
02431 # ifdef YYPRINT
02432 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
02433    token YYLEX-NUM.  */
02434 static const unsigned short yytoknum[] =
02435 {
02436        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
02437      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
02438      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
02439      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
02440      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
02441      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
02442      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
02443      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
02444      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
02445      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
02446      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
02447      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
02448      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
02449      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
02450      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
02451      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
02452      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
02453      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
02454      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
02455      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
02456      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
02457      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
02458      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
02459      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
02460      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
02461      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
02462      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
02463      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
02464      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
02465      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
02466      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
02467      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
02468      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
02469      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
02470      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
02471      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
02472      615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
02473      625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
02474      635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
02475      645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
02476      655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
02477      665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
02478      675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
02479      685,   686,   687,   688,   689,   690,   691,    43,    45,    42,
02480       47,   692,    94,    46,    61,    40,    41,    62,    60,    58,
02481       38
02482 };
02483 # endif
02484 
02485 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
02486 static const unsigned short yyr1[] =
02487 {
02488        0,   451,   453,   452,   454,   454,   455,   455,   457,   458,
02489      456,   460,   461,   459,   463,   464,   462,   465,   465,   465,
02490      466,   466,   467,   468,   470,   469,   471,   472,   472,   473,
02491      473,   474,   474,   475,   475,   475,   476,   476,   477,   477,
02492      478,   478,   479,   479,   480,   480,   480,   480,   481,   482,
02493      482,   482,   482,   483,   484,   485,   486,   486,   486,   486,
02494      487,   487,   488,   488,   488,   489,   490,   490,   491,   492,
02495      493,   494,   494,   495,   495,   496,   496,   497,   497,   498,
02496      499,   499,   500,   500,   501,   501,   501,   501,   501,   501,
02497      501,   501,   501,   501,   501,   502,   503,   502,   504,   504,
02498      505,   505,   507,   506,   508,   508,   508,   508,   508,   509,
02499      509,   510,   510,   511,   510,   512,   512,   513,   513,   513,
02500      513,   513,   513,   514,   514,   514,   514,   514,   514,   515,
02501      516,   517,   517,   518,   518,   519,   520,   520,   521,   521,
02502      522,   523,   524,   525,   526,   527,   528,   529,   529,   530,
02503      529,   531,   529,   532,   532,   533,   533,   535,   534,   536,
02504      536,   537,   537,   537,   537,   537,   537,   537,   537,   537,
02505      537,   537,   537,   537,   538,   538,   539,   539,   539,   540,
02506      540,   540,   541,   541,   541,   542,   543,   543,   543,   544,
02507      545,   546,   547,   547,   547,   548,   549,   549,   549,   550,
02508      550,   550,   550,   551,   551,   552,   552,   553,   553,   553,
02509      553,   554,   555,   556,   557,   557,   557,   558,   559,   560,
02510      561,   561,   561,   562,   562,   563,   563,   564,   564,   565,
02511      565,   566,   567,   567,   567,   567,   568,   569,   569,   570,
02512      571,   571,   572,   572,   573,   574,   573,   575,   573,   576,
02513      576,   577,   578,   578,   579,   579,   581,   580,   582,   582,
02514      583,   583,   583,   583,   583,   583,   583,   583,   583,   583,
02515      583,   584,   585,   585,   585,   586,   586,   586,   587,   587,
02516      588,   588,   589,   589,   590,   591,   591,   592,   592,   593,
02517      593,   594,   595,   596,   596,   597,   597,   597,   598,   599,
02518      600,   601,   602,   603,   603,   604,   605,   604,   606,   606,
02519      608,   607,   609,   609,   609,   610,   611,   610,   612,   613,
02520      613,   613,   614,   615,   615,   616,   616,   616,   617,   618,
02521      618,   619,   619,   619,   619,   619,   619,   619,   619,   619,
02522      619,   619,   619,   619,   619,   620,   621,   622,   622,   623,
02523      624,   625,   625,   626,   626,   626,   626,   626,   626,   626,
02524      626,   626,   626,   626,   626,   626,   626,   626,   626,   626,
02525      626,   626,   626,   626,   626,   626,   626,   626,   626,   626,
02526      626,   626,   626,   626,   626,   626,   626,   626,   627,   627,
02527      628,   629,   629,   630,   630,   631,   632,   632,   633,   633,
02528      634,   634,   635,   635,   636,   637,   638,   639,   639,   639,
02529      640,   641,   643,   642,   644,   644,   645,   645,   646,   646,
02530      647,   647,   648,   649,   650,   649,   651,   652,   651,   653,
02531      654,   653,   655,   655,   656,   656,   657,   658,   658,   659,
02532      659,   659,   659,   660,   660,   661,   662,   662,   663,   663,
02533      664,   665,   665,   666,   666,   667,   667,   668,   668,   669,
02534      669,   670,   670,   670,   671,   671,   672,   672,   673,   674,
02535      674,   675,   675,   675,   675,   675,   675,   675,   675,   675,
02536      675,   675,   675,   675,   675,   675,   675,   676,   677,   677,
02537      677,   677,   677,   677,   677,   678,   679,   679,   679,   680,
02538      680,   681,   682,   683,   684,   685,   686,   686,   687,   687,
02539      688,   688,   688,   689,   689,   689,   690,   691,   692,   692,
02540      693,   694,   695,   696,   694,   697,   697,   698,   698,   699,
02541      700,   699,   701,   701,   702,   702,   702,   702,   702,   702,
02542      702,   702,   702,   702,   702,   702,   702,   702,   702,   702,
02543      702,   702,   702,   702,   702,   702,   702,   702,   702,   702,
02544      702,   702,   702,   702,   703,   703,   703,   703,   703,   704,
02545      704,   704,   704,   704,   705,   706,   707,   708,   706,   709,
02546      710,   709,   711,   709,   712,   712,   713,   714,   714,   714,
02547      715,   715,   715,   715,   715,   716,   716,   717,   717,   718,
02548      719,   718,   720,   720,   721,   721,   721,   721,   721,   721,
02549      722,   723,   724,   725,   726,   726,   728,   729,   727,   731,
02550      730,   730,   732,   732,   732,   732,   732,   732,   732,   732,
02551      732,   732,   732,   732,   732,   732,   732,   732,   732,   732,
02552      732,   732,   732,   732,   732,   732,   732,   732,   732,   732,
02553      732,   732,   732,   732,   732,   732,   732,   732,   732,   732,
02554      732,   732,   732,   732,   732,   732,   732,   732,   732,   732,
02555      732,   734,   733,   735,   735,   735,   735,   735,   735,   735,
02556      735,   735,   735,   735,   735,   735,   735,   735,   735,   735,
02557      736,   736,   736,   736,   736,   736,   737,   738,   738,   739,
02558      739,   740,   740,   741,   741,   741,   741,   741,   741,   741,
02559      741,   741,   741,   741,   741,   741,   741,   741,   741,   741,
02560      742,   742,   744,   743,   745,   745,   745,   746,   746,   747,
02561      747,   749,   748,   750,   750,   751,   751,   752,   753,   753,
02562      754,   754,   756,   755,   757,   758,   757,   759,   759,   760,
02563      760,   761,   761,   761,   761,   762,   762,   762,   763,   764,
02564      763,   765,   766,   765,   767,   767,   769,   768,   770,   770,
02565      772,   771,   773,   773,   774,   774,   774,   774,   774,   775,
02566      775,   777,   776,   778,   779,   779,   780,   780,   781,   782,
02567      784,   783,   785,   785,   787,   786,   788,   788,   788,   788,
02568      788,   789,   789,   789,   789,   789,   790,   790,   790,   791,
02569      791,   792,   792,   792,   792,   792,   792,   792,   792,   792,
02570      792,   792,   792,   792,   792,   792,   793,   793,   795,   794,
02571      796,   796,   796,   796,   796,   797,   797,   799,   798,   801,
02572      800,   802,   802,   803,   803,   803,   804,   805,   805,   807,
02573      806,   808,   809,   808,   810,   810,   811,   811,   812,   812,
02574      812,   812,   813,   813,   814,   814,   816,   815,   817,   817,
02575      817,   817,   817,   817,   819,   818,   821,   820,   823,   822,
02576      824,   824,   826,   825,   828,   829,   827,   827,   830,   831,
02577      830,   832,   832,   834,   833,   835,   835,   836,   836,   836,
02578      837,   837,   838,   838,   839,   840,   840,   840,   840,   840,
02579      840,   840,   841,   841,   843,   842,   845,   844,   846,   846,
02580      846,   847,   847,   848,   848,   848,   850,   849,   851,   851,
02581      852,   852,   852,   852,   852,   852,   853,   854,   854,   855,
02582      855,   856,   856,   856,   856,   856,   857,   858,   859,   859,
02583      860,   860,   862,   861,   864,   863,   865,   865,   867,   866,
02584      868,   868,   869,   869,   871,   870,   872,   872,   873,   873,
02585      873,   873,   874,   874,   875,   875,   875,   877,   876,   878,
02586      879,   878,   878,   880,   880,   881,   881,   882,   882,   882,
02587      882,   882,   883,   883,   884,   884,   885,   887,   886,   888,
02588      888,   889,   889,   889,   889,   889,   889,   890,   890,   891,
02589      891,   891,   892,   892,   894,   893,   896,   895,   897,   897,
02590      899,   898,   900,   900,   900,   901,   901,   902,   904,   903,
02591      905,   906,   905,   907,   907,   908,   909,   908,   910,   910,
02592      912,   911,   913,   913,   915,   914,   916,   916,   916,   916,
02593      916,   917,   918,   918,   919,   920,   920,   921,   921,   922,
02594      923,   923,   924,   924,   926,   925,   928,   927,   929,   929,
02595      930,   930,   931,   931,   932,   932,   933,   933,   933,   934,
02596      934,   934,   936,   937,   935,   938,   938,   939,   939,   939,
02597      939,   939,   940,   940,   942,   941,   941,   943,   943,   943,
02598      945,   944,   946,   946,   947,   947,   947,   948,   948,   949,
02599      949,   951,   950,   952,   952,   952,   953,   953,   954,   955,
02600      955,   957,   956,   959,   958,   961,   960,   962,   962,   962,
02601      964,   963,   965,   965,   966,   966,   967,   968,   968,   969,
02602      970,   970,   971,   971,   972,   972,   973,   973,   974,   974,
02603      974,   975,   976,   976,   977,   977,   977,   977,   977,   978,
02604      978,   979,   979,   980,   980,   981,   981,   982,   982,   983,
02605      983,   984,   985,   985,   986,   988,   987,   989,   989,   990,
02606      990,   990,   990,   991,   991,   992,   992,   992,   993,   993,
02607      994,   995,   996,   997,   996,   998,   999,   998,  1000,  1001,
02608     1002,  1001,  1003,  1004,  1003,  1005,  1006,  1007,  1006,  1008,
02609     1009,  1008,  1010,  1010,  1010,  1012,  1011,  1014,  1013,  1015,
02610     1015,  1015,  1017,  1016,  1019,  1018,  1020,  1020,  1021,  1021,
02611     1021,  1023,  1022,  1025,  1024,  1026,  1026,  1027,  1028,  1030,
02612     1029,  1031,  1031,  1031,  1032,  1032,  1032,  1032,  1032,  1032,
02613     1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,
02614     1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1033,  1033,
02615     1033,  1034,  1034,  1035,  1035,  1036,  1036,  1037,  1037,  1038,
02616     1038,  1039,  1039,  1039,  1040,  1040,  1040,  1040,  1040,  1040,
02617     1040,  1040,  1040,  1041,  1041,  1042,  1042,  1043,  1044,  1045,
02618     1046,  1046,  1047,  1048,  1048,  1049,  1050,  1050,  1051,  1052,
02619     1052,  1052,  1053,  1054,  1054,  1055,  1056,  1056,  1057,  1057,
02620     1058,  1059,  1059,  1060,  1060,  1061,  1061,  1062,  1062,  1062,
02621     1062,  1062,  1062,  1062,  1062,  1062,  1063,  1063,  1063,  1063,
02622     1063,  1063,  1063,  1064,  1064,  1065,  1065,  1066,  1066,  1067,
02623     1067,  1068,  1068,  1069,  1069,  1069,  1070,  1070,  1070,  1071,
02624     1072,  1072,  1072,  1072,  1073,  1073,  1074,  1075,  1075,  1076,
02625     1077,  1077,  1078,  1078,  1079,  1079,  1079,  1079,  1079,  1079,
02626     1079,  1080,  1080,  1080,  1080,  1080,  1080,  1080,  1080,  1080,
02627     1080,  1080,  1080,  1081,  1081,  1081,  1082,  1082,  1083,  1083,
02628     1084,  1084,  1084,  1085,  1085,  1086,  1086,  1087,  1088,  1088,
02629     1089,  1089,  1090,  1090,  1091,  1091,  1091,  1092,  1092,  1093,
02630     1093,  1094,  1094,  1095,  1095,  1096,  1096,  1097,  1097,  1098,
02631     1098,  1099,  1099,  1100,  1100,  1101,  1101,  1102,  1102,  1103,
02632     1103,  1104,  1104,  1105,  1105,  1106,  1106,  1107,  1107,  1108,
02633     1108,  1109,  1109,  1110,  1110,  1111,  1111,  1112,  1112,  1113,
02634     1113,  1114,  1114,  1115,  1115,  1116,  1116,  1116,  1117,  1117,
02635     1118,  1118,  1118,  1119,  1119,  1120,  1120,  1121,  1121,  1122,
02636     1122,  1123,  1123,  1124,  1124,  1124,  1125,  1125,  1126,  1126,
02637     1127,  1127,  1128,  1128,  1129,  1129,  1130,  1130,  1131,  1131,
02638     1131,  1132,  1132,  1133,  1133,  1134,  1134,  1135,  1135,  1136,
02639     1136,  1137,  1137,  1138,  1138,  1139,  1139,  1140,  1140
02640 };
02641 
02642 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
02643 static const unsigned char yyr2[] =
02644 {
02645        0,     2,     0,     2,     1,     2,     1,     1,     0,     0,
02646        8,     0,     0,     8,     0,     0,     7,     0,     1,     2,
02647        0,     3,     3,     3,     0,     7,     5,     1,     1,     0,
02648        2,     0,     3,     1,     2,     1,     1,     1,     0,     5,
02649        0,     4,     0,     2,     1,     1,     1,     1,     3,     0,
02650        2,     3,     2,     3,     1,     3,     0,     2,     3,     2,
02651        1,     2,     1,     1,     1,     5,     1,     1,     4,     3,
02652        3,     0,     2,     1,     2,     3,     3,     1,     2,     3,
02653        0,     2,     1,     2,     1,     1,     1,     1,     1,     1,
02654        1,     1,     1,     1,     1,     3,     0,     5,     0,     5,
02655        1,     1,     0,     5,     1,     1,     1,     1,     1,     1,
02656        2,     1,     3,     0,     4,     1,     3,     1,     1,     1,
02657        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
02658        3,     1,     2,     1,     2,     4,     1,     2,     1,     3,
02659        4,     4,     3,     3,     4,     3,     3,     0,     5,     0,
02660        4,     0,     4,     0,     3,     0,     2,     0,     6,     0,
02661        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02662        1,     1,     1,     1,     5,     4,     0,     1,     1,     0,
02663        1,     1,     1,     1,     1,     4,     1,     1,     1,     6,
02664        3,     5,     0,     1,     1,     4,     2,     2,     1,     0,
02665        4,     5,     2,     1,     1,     3,     1,     1,     3,     1,
02666        2,     4,     4,     4,     1,     3,     4,     4,     3,     3,
02667        2,     2,     2,     0,     3,     0,     2,     1,     2,     1,
02668        1,     5,     0,     1,     1,     1,     5,     1,     2,     2,
02669        0,     2,     0,     9,     0,     0,     5,     0,     3,     0,
02670        2,     3,     2,     2,     1,     1,     0,     4,     0,     2,
02671        2,     2,     1,     1,     1,     1,     1,     1,     1,     1,
02672        1,     5,     0,     1,     1,     4,     6,     9,     0,     3,
02673        0,     2,     0,     2,     3,     1,     1,     5,     5,     1,
02674        1,     3,     5,     0,     2,     1,     1,     1,     5,     4,
02675        3,     4,     3,     3,     3,     0,     0,     5,     0,     1,
02676        0,     2,     3,     4,     2,     1,     0,     4,     1,     0,
02677        1,     1,     1,     0,     2,     1,     3,     3,     6,     0,
02678        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02679        1,     1,     1,     1,     1,     2,     3,     0,     2,     2,
02680        1,     1,     3,     1,     1,     1,     1,     1,     1,     1,
02681        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02682        1,     1,     2,     2,     1,     2,     2,     1,     2,     2,
02683        1,     2,     2,     1,     2,     2,     1,     1,     3,     3,
02684        7,     0,     2,     0,     3,     1,     0,     5,     1,     1,
02685        0,     3,     1,     2,     1,     2,     2,     0,     1,     1,
02686        3,     1,     0,     8,     1,     2,     1,     3,     0,     3,
02687        2,     4,     2,     0,     0,     5,     0,     0,     5,     0,
02688        0,     5,     0,     1,     1,     2,     5,     0,     2,     2,
02689        3,     1,     1,     2,     2,     2,     0,     1,     1,     2,
02690        8,     0,     3,     0,     4,     0,     4,     0,     3,     0,
02691        3,     1,     4,     2,     1,     1,     0,     2,     4,     0,
02692        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02693        1,     1,     1,     1,     1,     1,     1,     3,     1,     1,
02694        1,     1,     1,     1,     1,     4,     4,     2,     1,     1,
02695        2,     3,     1,     3,     6,     2,     3,     2,     1,     2,
02696        2,     1,     2,     0,     1,     1,     4,     2,     0,     1,
02697        1,     0,     0,     0,     6,     0,     1,     1,     2,     1,
02698        0,     5,     0,     2,     1,     1,     1,     1,     2,     2,
02699        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02700        5,     5,     3,     3,     1,     1,     1,     1,     1,     1,
02701        1,     2,     2,     2,     0,     1,     1,     1,     1,     0,
02702        1,     1,     1,     1,     3,     0,     0,     0,     9,     0,
02703        0,     3,     0,     3,     1,     2,     4,     0,     2,     2,
02704        0,     3,     3,     4,     3,     0,     1,     0,     2,     0,
02705        0,     7,     0,     2,     1,     1,     1,     2,     2,     1,
02706        4,     2,     1,     1,     0,     1,     0,     0,     3,     0,
02707        2,     2,     1,     1,     1,     1,     1,     1,     1,     1,
02708        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02709        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02710        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02711        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02712        1,     0,     4,     4,     4,     3,     3,     3,     4,     3,
02713        4,     3,     3,     3,     4,     5,     3,     4,     3,     3,
02714        0,     3,     3,     2,     2,     2,     3,     3,     3,     0,
02715        2,     1,     2,     1,     1,     1,     1,     1,     1,     1,
02716        3,     3,     3,     3,     1,     1,     1,     1,     1,     1,
02717        0,     1,     0,     4,     4,     5,     6,     0,     2,     0,
02718        1,     0,     3,     3,     5,     0,     2,     2,     0,     5,
02719        0,     2,     0,     8,     0,     0,     3,     1,     2,     2,
02720        3,     0,     2,     2,     2,     0,     2,     2,     0,     0,
02721        3,     0,     0,     3,     0,     1,     0,     3,     0,     2,
02722        0,     3,     0,     3,     0,     1,     3,     3,     2,     1,
02723        1,     0,     4,     4,     0,     1,     1,     1,     1,     1,
02724        0,     6,     0,     1,     0,     4,     3,     3,     3,     3,
02725        5,     0,     2,     2,     2,     2,     0,     2,     2,     1,
02726        2,     1,     1,     2,     2,     1,     1,     1,     1,     1,
02727        3,     3,     3,     3,     1,     1,     0,     1,     0,     4,
02728        4,     6,     6,     8,     8,     0,     1,     0,     4,     0,
02729        5,     1,     3,     1,     1,     1,     2,     1,     2,     0,
02730        3,     0,     0,     4,     2,     3,     1,     3,     2,     1,
02731        1,     1,     0,     2,     0,     1,     0,     3,     0,     1,
02732        1,     2,     1,     1,     0,     3,     0,     3,     0,     5,
02733        0,     3,     0,     2,     0,     0,     8,     3,     0,     0,
02734        3,     0,     1,     0,     7,     0,     2,     0,     3,     3,
02735        0,     2,     1,     2,     4,     1,     1,     1,     1,     1,
02736        1,     1,     0,     1,     0,     3,     0,     4,     1,     1,
02737        1,     1,     2,     1,     1,     1,     0,     3,     1,     2,
02738        2,     2,     1,     1,     1,     2,     2,     1,     2,     4,
02739        2,     0,     1,     1,     1,     1,     4,     5,     0,     4,
02740        0,     1,     0,     3,     0,     3,     3,     4,     0,     4,
02741        4,     6,     0,     1,     0,     3,     0,     5,     1,     1,
02742        1,     1,     0,     3,     0,     3,     2,     0,     3,     2,
02743        0,     4,     2,     0,     1,     1,     3,     0,     1,     2,
02744        3,     3,     0,     3,     1,     3,     7,     0,    10,     0,
02745        2,     0,     2,     2,     3,     3,     2,     0,     3,     0,
02746        1,     1,     0,     1,     0,     4,     0,     7,     0,     1,
02747        0,     7,     0,     2,     3,     0,     1,     1,     0,     4,
02748        4,     0,     7,     0,     2,     0,     0,     4,     1,     2,
02749        0,     4,     0,     1,     0,     3,     1,     1,     1,     1,
02750        1,     4,     4,     3,     4,     1,     1,     1,     2,     3,
02751        1,     2,     3,     3,     0,     3,     0,     7,     0,     5,
02752        0,     2,     0,     2,     0,     3,     0,     2,     4,     0,
02753        2,     4,     0,     0,     7,     0,     4,     2,     2,     2,
02754        2,     2,     0,     1,     0,     4,     2,     0,     2,     2,
02755        0,     8,     1,     2,     1,     3,     3,     0,     3,     0,
02756        1,     0,     4,     4,     6,     6,     0,     1,     2,     0,
02757        1,     0,     3,     0,     7,     0,     4,     0,     1,     1,
02758        0,     9,     0,     3,     1,     3,     2,     2,     2,     3,
02759        0,     3,     0,     3,     0,     3,     0,     1,     1,     1,
02760        1,     8,     0,     1,     1,     1,     1,     1,     1,     0,
02761        1,     0,     1,     1,     1,     1,     1,     1,     1,     0,
02762        1,     5,     1,     2,     5,     0,     8,     0,     2,     0,
02763        4,     3,     3,     1,     1,     0,     1,     1,     0,     1,
02764        2,     2,     0,     0,     3,     0,     0,     3,     2,     0,
02765        0,     3,     0,     0,     3,     2,     0,     0,     3,     0,
02766        0,     3,     1,     1,     2,     0,     3,     0,     3,     1,
02767        1,     2,     0,     3,     0,     3,     0,     1,     1,     1,
02768        2,     0,     3,     0,     3,     0,     3,     1,     1,     0,
02769        2,     1,     2,     2,     1,     1,     1,     1,     1,     1,
02770        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02771        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
02772        1,     1,     2,     1,     2,     1,     5,     1,     5,     1,
02773        3,     0,     1,     1,     1,     3,     3,     3,     3,     2,
02774        2,     3,     3,     1,     3,     1,     2,     2,     1,     1,
02775        1,     2,     1,     1,     2,     1,     0,     2,     1,     1,
02776        1,     3,     1,     1,     2,     1,     0,     1,     1,     1,
02777        1,     1,     2,     1,     3,     1,     2,     1,     3,     3,
02778        3,     4,     3,     1,     1,     1,     1,     3,     3,     3,
02779        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02780        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02781        1,     2,     2,     3,     1,     3,     3,     4,     5,     1,
02782        1,     2,     1,     3,     1,     1,     1,     1,     1,     1,
02783        1,     2,     2,     5,     5,     5,     5,     5,     5,     5,
02784        4,     5,     2,     0,     4,     5,     0,     3,     0,     1,
02785        1,     3,     3,     1,     3,     1,     3,     0,     0,     1,
02786        0,     1,     0,     1,     0,     1,     1,     0,     1,     0,
02787        1,     0,     1,     0,     2,     1,     1,     2,     2,     2,
02788        1,     2,     1,     0,     1,     0,     1,     0,     1,     0,
02789        1,     0,     1,     0,     1,     0,     1,     0,     1,     0,
02790        1,     0,     1,     0,     1,     0,     1,     0,     1,     0,
02791        1,     0,     1,     0,     1,     0,     1,     1,     0,     1,
02792        0,     1,     1,     0,     1,     0,     1,     0,     1,     0,
02793        1,     0,     1,     0,     1,     2,     0,     1,     0,     1,
02794        0,     1,     0,     1,     0,     1,     0,     1,     0,     1,
02795        2,     0,     1,     0,     1,     0,     1,     0,     1,     0,
02796        1,     0,     1,     0,     1,     0,     1,     0,     1
02797 };
02798 
02799 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
02800    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
02801    means the default is an error.  */
02802 static const unsigned short yydefact[] =
02803 {
02804        2,     0,     0,     1,     0,     0,     3,     4,     6,     7,
02805       38,    38,     0,     0,     5,     0,     8,    14,    28,    27,
02806       29,    29,     0,   242,   242,     0,     0,    24,    40,     0,
02807        9,    15,    30,    26,  1463,     0,   147,     0,   575,   575,
02808     1464,     0,     0,     0,     0,     0,     0,    39,   244,     0,
02809       17,     0,    25,    33,    37,    36,  1488,    35,    42,   149,
02810        0,   151,   254,   255,     0,   305,   247,   579,    18,    20,
02811       38,     0,    16,    34,  1489,    32,    41,   155,   153,   225,
02812        0,     0,   423,     0,   582,   580,   597,     0,    19,    10,
02813       11,     0,     0,     0,     0,     0,    43,    44,    45,    47,
02814       46,   150,     0,   223,  1455,   232,   152,     0,   227,   229,
02815      230,   245,     0,     0,   426,  1302,   248,   308,   256,   587,
02816      587,     0,     0,     0,   242,    23,    56,    71,    49,    80,
02817     1419,   156,   155,     0,   148,  1456,  1505,   233,   234,   235,
02818     1437,   226,   228,   249,   306,     0,     0,   429,   253,     0,
02819      252,   309,  1407,   258,  1446,   587,   584,   590,     0,   587,
02820      598,   576,    21,    12,     0,  1463,    54,  1488,    55,  1488,
02821       60,    62,    63,    64,     0,     0,    70,     0,    73,  1518,
02822       48,     0,  1517,     0,     0,     0,     0,  1496,  1463,  1463,
02823     1463,     0,  1463,  1449,  1463,    79,     0,    82,    84,    85,
02824       86,    88,    87,    89,    90,    91,    92,    93,    94,  1420,
02825        0,   154,   225,  1506,  1451,  1438,  1457,   246,   308,   424,
02826        0,     0,   521,   308,   311,     0,  1463,   585,  1463,     0,
02827      595,   588,   589,   599,   575,  1463,     0,    57,  1488,    59,
02828       61,     0,  1432,  1463,     0,    77,     0,    72,    74,    52,
02829       50,     0,     0,  1320,   102,  1463,  1463,  1497,  1463,     0,
02830        0,     0,  1463,     0,  1450,     0,     0,    81,    83,   157,
02831      224,  1452,     0,  1458,     0,   250,   307,   308,   427,     0,
02832        0,   243,   251,   314,     0,   318,     0,   319,   315,  1451,
02833     1463,     0,     0,  1463,  1451,  1475,  1463,  1435,     0,   257,
02834      259,   262,   263,   264,   265,   266,   267,   268,   269,   270,
02835        0,     0,  1463,   596,     0,     0,   577,    17,     0,  1369,
02836       69,    58,  1431,     0,    76,    75,    78,    51,    53,  1463,
02837        0,     0,     0,  1364,   143,  1315,   142,   146,     0,   145,
02838      129,  1465,   131,    95,    96,   159,   236,   237,   240,   231,
02839     1300,   425,   308,   430,     0,     0,   312,   320,   321,   316,
02840        0,     0,     0,  1463,  1435,     0,     0,     0,     0,     0,
02841     1476,  1463,     0,  1436,     0,     0,   260,   261,   591,   592,
02842      594,     0,   586,   600,   602,     0,     0,    68,     0,  1378,
02843     1374,  1379,  1377,  1375,  1380,  1376,   135,   136,   138,   144,
02844      141,  1425,  1426,     0,   140,  1467,  1466,   132,     0,    98,
02845     1490,   238,     0,   239,  1301,   428,   432,   522,   313,   329,
02846      323,   282,   302,  1427,  1428,   291,  1313,   286,   285,   284,
02847     1319,  1318,  1473,  1449,  1461,     0,   520,   303,   304,  1463,
02848     1463,   593,   602,     0,     0,    13,    66,    67,    65,   107,
02849      121,   117,   122,   104,   120,   118,   105,   106,   119,   103,
02850      108,   109,   111,   137,     0,  1365,   130,   133,    97,  1475,
02851        0,  1513,   207,     0,  1475,  1463,  1447,  1468,   209,     0,
02852     1517,   194,   193,   158,   160,   161,   162,   163,   164,   165,
02853        0,   166,   167,   206,   168,   169,   170,   171,   172,   173,
02854     1463,  1443,   241,     0,   431,   433,   434,   523,  1463,  1439,
02855        0,     0,   272,  1314,  1474,   293,     0,   275,  1462,  1501,
02856      301,     0,     0,     0,     0,   613,   609,   603,   604,   605,
02857      606,   612,     0,     0,     0,   110,   113,     0,   139,   134,
02858      101,   100,  1503,  1463,  1468,  1514,   179,   210,  1463,  1490,
02859     1448,  1463,  1463,  1469,  1463,  1463,  1437,     0,  1463,     0,
02860     1444,     0,   437,   435,   525,     0,   411,   353,   386,   374,
02861      383,   380,   377,  1515,   354,   355,   356,   357,   358,   359,
02862      360,   361,   362,  1492,   387,     0,   363,   350,   364,   365,
02863        0,     0,  1499,   367,   368,   366,   407,   370,   371,   369,
02864     1463,  1465,   330,   331,   332,   333,   334,   335,   351,   336,
02865      337,   338,   339,   340,   341,   342,   343,   344,     0,     0,
02866     1440,     0,   324,   283,   274,   273,   271,   292,  1449,  1502,
02867      280,   289,   288,   290,   287,     0,   608,   611,   614,   671,
02868      722,   731,   738,   742,   766,   770,   788,   781,   789,   790,
02869      794,   828,   837,   839,   866,   874,   876,  1513,   882,     0,
02870      893,   914,   916,   952,   954,   958,   670,   964,   977,   997,
02871     1014,  1016,  1020,  1027,  1028,  1044,  1064,  1082,     0,  1100,
02872     1111,  1119,  1121,  1123,  1125,  1130,  1152,  1175,   607,   621,
02873      622,   623,   624,   625,   626,   627,   628,   630,   629,   631,
02874      632,   633,   634,   635,   636,   637,   638,   639,   640,   641,
02875      642,   643,   644,   645,   646,   647,   648,   649,   650,   651,
02876      652,   653,   654,   655,   656,   657,   658,   659,   660,   661,
02877      662,   663,   664,   665,   666,   667,   668,  1148,  1149,  1150,
02878      669,   620,    22,     0,   112,  1504,  1463,     0,  1463,   181,
02879      180,   176,     0,  1491,   209,   205,     0,     0,     0,     0,
02880      218,  1486,  1486,     0,   219,     0,   190,   208,  1463,   319,
02881      529,   524,   526,   527,   422,   384,   385,   372,   373,   381,
02882      382,   378,   379,   375,   376,  1516,     0,  1493,   405,   391,
02883      345,  1360,   420,  1500,   408,   409,   406,     0,     0,   347,
02884      349,  1423,  1423,     0,  1479,  1479,   328,   325,  1370,  1372,
02885     1442,   294,   295,   296,   297,     0,     0,   276,  1460,   282,
02886        0,     0,   615,     0,     0,     0,  1239,   737,     0,   768,
02887      772,     0,     0,     0,     0,     0,  1239,   868,     0,     0,
02888      878,   883,     0,  1239,     0,     0,     0,     0,     0,     0,
02889      966,   987,     0,     0,     0,     0,     0,     0,     0,     0,
02890     1096,  1094,     0,     0,  1120,  1118,     0,     0,     0,     0,
02891     1153,  1159,     0,     0,   127,   123,   128,   126,   124,   125,
02892      114,   115,     0,   187,   188,   186,   185,     0,   175,   178,
02893        0,   199,   198,   199,   195,   211,   212,   213,   214,   217,
02894     1487,   220,   221,   222,  1316,  1463,   446,   446,  1465,   466,
02895      438,   441,   442,     0,   530,   528,   410,     0,  1511,     0,
02896     1361,  1362,     0,   352,   412,   414,   416,     0,   346,  1447,
02897      388,   389,  1371,  1480,     0,     0,     0,     0,     0,  1441,
02898     1449,   281,   601,   610,   720,   690,  1359,  1479,     0,     0,
02899     1393,  1396,  1479,  1293,     0,     0,     0,     0,     0,     0,
02900        0,     0,  1393,   729,  1335,   727,  1325,  1327,  1333,  1334,
02901     1412,   732,     0,  1238,     0,  1312,     0,  1308,  1310,  1309,
02902     1354,   744,  1353,  1355,   767,   771,   784,     0,  1295,  1421,
02903     1490,  1374,   826,   690,     0,  1327,   835,     0,   744,   845,
02904      844,     0,   841,   843,   873,   870,   869,   872,   867,  1479,
02905      875,  1321,  1323,   877,  1306,   887,  1509,  1237,   895,   915,
02906      448,     0,   918,   919,   920,   953,  1068,     0,   955,     0,
02907      962,     0,   965,   988,  1312,   978,   987,   980,     0,   985,
02908        0,  1309,     0,  1414,  1177,  1298,  1490,  1177,     0,  1042,
02909     1033,  1299,     0,  1305,  1045,  1046,  1047,  1048,  1049,  1057,
02910     1050,  1060,     0,  1303,     0,  1065,  1083,  1097,  1445,     0,
02911     1102,  1104,     0,  1116,     0,  1122,     0,  1127,  1132,  1160,
02912        0,  1161,  1481,  1177,     0,    99,  1410,   183,   182,   174,
02913      184,     0,   197,   196,  1463,     0,  1317,   191,     0,   447,
02914      443,     0,   444,     0,   436,   439,   532,   392,  1512,   393,
02915     1479,     0,     0,     0,  1281,  1279,  1342,  1284,  1336,  1340,
02916     1341,     0,  1363,   421,  1515,   415,     0,   348,  1424,   327,
02917      326,  1373,   300,  1473,     0,   278,   721,   672,  1442,     0,
02918      699,     0,     0,     0,     0,     0,  1381,  1398,  1392,     0,
02919        0,     0,     0,     0,     0,     0,     0,     0,     0,  1382,
02920      730,   723,     0,     0,  1326,  1413,   735,  1412,  1263,  1264,
02921     1265,  1259,  1513,  1270,  1255,  1507,  1256,  1507,  1257,  1267,
02922     1258,  1262,  1261,  1260,  1266,  1247,  1248,  1249,  1250,  1251,
02923     1268,  1245,  1246,  1271,  1273,  1240,  1241,  1252,  1253,  1254,
02924     1244,   740,     0,   745,   755,  1352,   769,  1351,   774,   785,
02925      782,   787,   786,  1239,  1296,  1422,  1297,  1226,   827,   795,
02926      801,  1192,  1192,  1192,  1192,   836,   829,     0,     0,   838,
02927     1239,  1239,   864,   851,   847,   849,   871,     0,  1322,   880,
02928     1510,   885,   897,     0,   449,     0,   941,   926,   917,   921,
02929      923,   924,   925,  1072,     0,     0,   963,   959,     0,   971,
02930      968,   970,   969,   972,   979,   982,   616,  1239,     0,     0,
02931      989,     0,  1415,  1416,  1490,     0,  1015,   999,  1022,  1035,
02932     1043,  1029,     0,  1035,     0,  1347,  1348,  1058,  1061,     0,
02933        0,  1304,  1056,     0,  1055,     0,  1085,     0,     0,  1095,
02934        0,     0,  1103,     0,  1117,  1112,     0,     0,  1128,  1129,
02935     1126,  1445,     0,     0,  1162,     0,  1482,     0,  1022,   116,
02936     1430,     0,   189,  1411,     0,   202,     0,   215,   440,   445,
02937      451,   461,   319,   467,  1498,  1481,   396,     0,  1289,  1290,
02938        0,  1282,  1283,  1366,     0,     0,     0,     0,     0,     0,
02939        0,     0,  1494,   417,   299,  1473,  1481,   277,   695,   686,
02940     1192,   676,   683,   677,   679,   681,     0,  1192,     0,   675,
02941      682,   689,   688,     0,  1192,  1477,  1477,  1477,   693,   694,
02942     1344,  1343,     0,  1332,  1281,  1279,     0,     0,  1281,     0,
02943     1328,  1329,  1330,  1294,  1281,     0,     0,  1281,     0,     0,
02944     1281,  1281,  1281,     0,     0,  1199,  1421,     0,     0,   733,
02945        0,  1269,  1508,  1272,  1274,  1242,  1243,     0,     0,  1311,
02946      751,     0,     0,   758,   779,   780,   773,   775,     0,  1199,
02947     1231,  1233,   792,  1227,  1228,  1229,     0,   806,  1193,   798,
02948     1195,   799,   796,   797,     0,  1199,  1421,   842,   859,   861,
02949      860,   854,   856,   862,   865,   840,  1239,   848,   846,  1239,
02950      616,  1324,  1481,   879,  1307,   616,  1513,   905,   906,   908,
02951      910,   911,   907,   909,   900,  1513,   896,     0,   942,     0,
02952      944,   943,   945,   936,   937,     0,     0,   922,  1074,  1483,
02953        0,     0,   956,  1199,  1421,  1517,     0,   983,   617,   990,
02954      991,   994,     0,   986,  1184,  1183,   993,   999,  1178,     0,
02955        0,  1226,     0,     0,     0,  1034,     0,     0,     0,  1059,
02956        0,  1063,  1062,  1053,     0,  1463,  1226,  1099,  1098,  1105,
02957     1106,  1107,     0,  1199,  1421,     0,  1408,     0,  1107,  1174,
02958     1164,  1163,  1169,     0,  1171,  1172,  1179,  1429,     0,   216,
02959     1463,   453,   464,   465,   463,   321,   469,   545,  1463,   536,
02960      534,   535,   537,  1477,     0,  1463,     0,   548,   540,  1477,
02961      541,     0,   544,   549,   547,   542,   546,     0,   543,     0,
02962      531,   559,   554,   557,   556,   555,   558,   533,   560,     0,
02963      400,   395,  1337,  1338,  1339,  1292,  1280,  1285,  1286,  1287,
02964     1288,  1291,  1367,     0,  1495,  1513,   298,     0,   687,  1195,
02965      678,   680,  1192,   684,   674,   714,  1463,   703,   704,  1463,
02966      715,   705,   706,   709,   719,   716,   707,     0,   717,   708,
02967      718,   700,   701,   673,  1478,     0,     0,     0,   691,   692,
02968     1346,  1331,  1345,  1393,  1421,     0,  1397,     0,  1393,  1393,
02969        0,  1390,  1393,  1393,  1393,     0,  1393,  1393,  1200,   724,
02970     1202,  1199,   736,     0,   741,   739,   746,   747,   590,     0,
02971      757,   756,  1165,  1166,   761,   759,     0,   778,     0,   783,
02972      616,   616,   793,   791,  1230,   805,   804,   803,   802,  1518,
02973     1192,     0,   616,  1196,  1191,     0,   830,     0,  1239,  1239,
02974      858,   852,   855,   850,     0,   888,     0,     0,   912,     0,
02975        0,     0,   938,   940,     0,   932,   948,   933,   934,   927,
02976      928,   948,  1066,  1463,     0,  1484,  1073,   398,   399,  1468,
02977      957,   960,     0,     0,   974,   984,   981,   619,     0,     0,
02978     1001,  1000,  1215,  1217,  1018,  1212,  1213,  1025,  1023,     0,
02979     1239,  1036,  1239,  1030,  1038,  1051,  1052,  1054,  1417,  1092,
02980     1206,     0,  1421,  1113,     0,     0,  1409,  1133,  1134,     0,
02981     1137,  1140,  1144,  1138,  1170,  1481,  1173,  1185,  1433,     0,
02982      203,   204,   200,     0,     0,   455,     0,  1498,     0,  1463,
02983      538,   539,     0,   562,  1463,  1511,   563,   561,   394,  1445,
02984      390,  1468,  1368,   418,   279,  1190,   685,     0,     0,  1235,
02985     1235,   702,   697,   696,   698,  1386,  1199,  1394,     0,  1406,
02986     1391,  1384,  1404,  1385,  1387,  1388,  1401,  1402,  1389,  1383,
02987      616,  1203,  1198,   725,   734,   748,   749,     0,   753,   752,
02988      754,  1167,  1168,   764,   762,   616,   776,   777,  1232,  1234,
02989     1463,   811,   824,   825,   812,     0,  1463,   815,   816,   819,
02990      817,     0,   818,   808,   809,   800,   807,  1194,   616,  1199,
02991     1295,  1199,  1295,   857,   863,   616,   881,   889,   891,   898,
02992      901,   902,  1453,   913,   894,   899,   948,  1349,  1350,   948,
02993        0,   931,   929,   930,   935,  1076,     0,  1485,  1070,  1199,
02994      973,   967,     0,   618,   995,     0,     0,  1007,     0,   616,
02995      616,  1019,  1017,  1214,  1026,  1021,  1024,  1031,   616,  1040,
02996     1039,  1418,     0,     0,  1093,  1084,  1207,  1109,  1209,     0,
02997     1199,  1199,  1124,  1408,  1136,  1461,  1142,  1461,  1206,     0,
02998     1222,  1224,  1188,  1186,  1219,  1220,  1187,  1434,     0,   201,
02999      452,  1463,     0,   457,   462,  1477,   498,   518,   513,  1435,
03000        0,     0,  1463,  1479,  1463,     0,   468,   474,   475,   476,
03001      485,   477,   479,   482,   470,   471,   472,   478,   481,   499,
03002      483,   486,   473,     0,   480,   484,  1358,   553,  1356,  1357,
03003      569,   552,   564,   574,     0,  1463,  1463,   413,   711,   710,
03004      713,     0,   712,   726,  1395,  1201,   616,   750,   765,   743,
03005      616,   760,     0,   813,   814,     0,  1235,  1235,   810,  1197,
03006      832,     0,   831,     0,   853,   616,   892,   886,   903,  1454,
03007        0,   947,   939,   948,   950,     0,     0,  1079,  1075,  1069,
03008      961,   976,     0,     0,  1002,  1463,  1009,     0,  1003,     0,
03009     1006,  1216,  1218,   616,  1037,   616,  1086,  1275,  1507,  1277,
03010     1507,  1087,  1088,  1089,  1090,  1091,   616,  1110,  1101,  1210,
03011     1205,  1108,  1115,  1114,  1135,     0,  1461,  1139,     0,  1146,
03012     1158,  1155,  1157,  1156,  1151,  1154,   616,   616,  1189,  1176,
03013     1221,  1182,  1181,  1470,     0,  1463,  1463,   459,   497,  1463,
03014      519,   517,   514,   515,  1465,   507,  1463,  1239,     0,     0,
03015        0,     0,   500,     0,     0,   505,   508,   511,   572,   570,
03016      571,   573,     0,   567,   565,   566,   568,     0,   404,   401,
03017      402,     0,     0,  1470,  1204,   763,   821,   820,   823,   822,
03018     1199,  1199,   890,     0,   946,   951,     0,  1463,  1077,     0,
03019        0,  1067,  1071,   975,     0,     0,  1012,  1010,  1011,  1005,
03020     1004,  1032,  1041,  1272,  1274,  1208,   616,  1141,     0,  1145,
03021     1147,  1131,  1223,  1225,  1471,  1472,  1180,   454,     0,     0,
03022     1463,   450,     0,   506,     0,   503,  1421,   501,   502,   492,
03023      490,   491,   493,   489,   494,   488,   487,     0,   512,   510,
03024      509,   551,   550,   403,   397,   419,  1236,   834,   833,   904,
03025      949,     0,  1080,  1463,  1239,  1008,  1013,   998,     0,     0,
03026     1211,  1143,   456,   458,     0,   496,   495,   516,     0,  1078,
03027        0,   996,  1513,  1513,   460,     0,  1081,  1276,  1278,   504
03028 };
03029 
03030 /* YYDEFGOTO[NTERM-NUM]. */
03031 static const short yydefgoto[] =
03032 {
03033       -1,     1,     2,     6,     7,     8,    23,    38,    68,   124,
03034      234,     9,    24,    39,    69,    89,   445,    72,    70,    34,
03035       11,    20,    26,    41,    56,    57,    16,    36,    76,    96,
03036       97,   180,   181,   167,    98,   168,   169,   170,   171,   448,
03037      172,   173,    99,   176,   177,   178,   246,   100,   195,   196,
03038      197,   198,   409,   468,   542,   199,   329,   459,   460,   461,
03039      743,   880,   462,   881,   200,   340,   341,   466,   201,   396,
03040      397,   202,   203,   204,   205,   206,   207,   208,    47,    77,
03041       79,   103,   101,   131,   345,   410,   484,   485,   890,   751,
03042     1089,   486,   886,   487,   488,   489,   490,   491,   894,  1092,
03043     1782,   492,   493,   494,   495,   496,   897,   497,   498,   499,
03044      764,   134,   106,   107,   108,   109,   140,   110,   346,   347,
03045      413,    30,    65,   143,    83,   217,   148,   116,   149,   117,
03046      153,   226,   300,   301,   626,   302,  1357,   819,   512,   303,
03047      429,   304,   632,   305,   306,   627,   811,   812,   813,   814,
03048      307,   308,   309,    82,   218,   150,   151,   152,   224,   286,
03049      419,   287,   359,   360,   509,   806,   288,   508,   602,   603,
03050      604,   928,   605,   606,   607,   608,   609,   610,   918,  1336,
03051     1590,  1591,  1729,  1800,  2129,  2130,   611,   612,   796,   613,
03052      614,   615,  1124,   924,   925,  1997,   616,   617,   114,   277,
03053      147,   352,   222,   416,   504,   505,   506,   768,   910,   911,
03054     1100,  1101,  1019,   912,  1551,  1785,  1953,  2097,  2181,  1330,
03055     1554,  1104,  1333,  1787,  1974,  1975,  2196,  1976,  1977,  1978,
03056     1979,  2187,  1980,  1981,  1982,  1983,  2115,  2116,  2104,  1984,
03057     1985,  2101,   437,   281,   507,   564,   771,   772,   773,  1106,
03058     1334,  1587,  2127,  2122,  1588,    50,   233,   384,    86,   120,
03059      119,   155,   156,   157,   230,   314,   122,   316,   442,   443,
03060      527,   528,   529,   530,   531,   823,  1497,  1498,  1737,   532,
03061      533,   689,   690,   824,   944,  1140,  1378,  1379,  1374,  1631,
03062     1632,  1137,   691,   825,   963,  1163,  1161,   692,   826,   971,
03063     1409,   693,   827,  1418,   694,   828,  1204,  1420,  1666,  1667,
03064     1668,  1423,  1674,  1845,  1843,  2010,  2009,   695,   829,   984,
03065      696,   830,   985,  1426,  1427,   697,   831,   986,  1210,  1213,
03066      698,   699,   700,   832,  1683,   701,   833,   992,  1437,  1690,
03067     1863,  1864,  1219,   702,   834,   996,  1226,   703,   835,   704,
03068      836,  1001,  1002,  1232,  1233,  1234,  1460,  1458,  1875,  1235,
03069     1451,  1452,  1700,  1455,   705,   837,  1008,   706,   838,   707,
03070      839,   708,  1014,  1463,   709,   841,   710,   843,  1465,  1878,
03071     2025,  2027,   711,   844,  1242,  1474,  1708,  1880,  1881,  1882,
03072     1884,   712,   845,   713,   846,  1021,  1248,  1249,  1250,  1486,
03073     1719,  1720,  1251,  1483,  1484,  1485,  1713,  1252,  1891,  2146,
03074      714,   847,   715,   848,  1028,   716,   849,  1030,  1257,   717,
03075      850,  1032,  1263,  1496,  1901,   718,   851,  1035,  1266,  1736,
03076     1036,  1037,  1038,  1500,  1501,   719,   852,  1510,  1907,  2046,
03077     2156,  2217,   720,   853,   721,   854,  1912,   722,   855,  1511,
03078     1915,   723,   724,   856,  1049,  2053,  1283,  1513,  1918,  1753,
03079     1754,  2055,  1281,   725,   857,  1054,  1055,  1056,  1057,  1295,
03080     1058,  1059,  1060,  1061,   726,   858,  1025,  1895,  1253,  2039,
03081     1488,  1722,  2037,  2151,   727,   859,  1296,  1526,  1922,  1925,
03082      728,  1067,  1299,   729,   862,  1069,  1070,  1760,  2068,   730,
03083      863,  1073,  1305,   731,   865,   732,   866,   733,   867,   734,
03084      868,  1310,   735,   869,  1312,  1767,  1768,  1538,  1770,  1936,
03085     2077,  1938,  2171,   736,   737,   871,  2084,  1081,  1315,  1542,
03086     1675,  1844,  1775,   738,  1544,   739,   740,   873,  1276,  1777,
03087     2034,  1942,  2089,  1608,  1439,  1440,  1692,  1694,  1868,  1659,
03088     1660,  1830,  1832,  2006,  1927,  1928,  2066,  2070,  2166,  1744,
03089     1745,  1909,  1746,  1910,  1943,  1944,  2086,  1945,  2087,  1432,
03090     1433,  1434,  1680,  1435,  1681,  2000,  1016,  1017,   973,   974,
03091     1195,  1196,  1197,  1198,  1199,  2064,  2065,  1114,  1344,  1385,
03092      964,   987,  1214,  1044,  1050,   349,   350,  1062,  1063,  1239,
03093     1039,   977,   978,   425,   431,  1097,   432,   254,  1010,  1011,
03094      965,   989,  1117,  1382,  1641,  1721,  1886,   994,  1040,  1987,
03095      967,   946,   791,   920,   921,  1989,   968,   808,   809,   969,
03096     1146,  1148,  1389,  1403,  1398,  1395,   225,  1769,  1322,  1166,
03097     1274,  1923,   210,  1216,   930,   403,   365,  1323,   243,  1948,
03098      374,   216,   621,  1141,   561,   158,   551,   265,   272,  2030,
03099      136,   274,   820,   519,    42,   408,   554,  2176,   515,   371,
03100     1635,   934,  1317,  1726,   901,   174,   501,   788,  1605,   258,
03101      619,   630,   746,   214,  1413,  1241,  1109,   546,   786,   183
03102 };
03103 
03104 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
03105    STATE-NUM.  */
03106 #define YYPACT_NINF -1922
03107 static const short yypact[] =
03108 {
03109    -1922,   285,   446, -1922,   196,   229,   446, -1922, -1922, -1922,
03110      559,   559,   397,   397, -1922,   577, -1922, -1922, -1922, -1922,
03111      687,   687,   281,   836,   836,   560,   518, -1922,   921,   928,
03112    -1922, -1922, -1922, -1922,   -54,   686,   882,   605,   768,   768,
03113    -1922,   641,    53,   671,   678,   778,   692, -1922,    13,  1016,
03114      845,  1025, -1922,   -28, -1922, -1922,   861, -1922, -1922, -1922,
03115      724, -1922, -1922, -1922,   839,   769, -1922,    43, -1922,   473,
03116      559,   397, -1922, -1922, -1922, -1922,   704, -1922,  1049,   427,
03117      736,   870,  1004,   821, -1922, -1922,   911,   397, -1922, -1922,
03118    -1922,   817,   819,   820,   824,   825, -1922, -1922, -1922, -1922,
03119    -1922,   920,   828,  1065,   880,   -48, -1922,   402, -1922, -1922,
03120    -1922, -1922,   834,   932,  1055, -1922,   418,   850, -1922,    86,
03121       86,   853,   842,   847,   836, -1922,   569,  1118,   169,   747,
03122     1021, -1922, -1922,   852, -1922, -1922,   913, -1922, -1922, -1922,
03123     1274, -1922, -1922, -1922, -1922,   859,   957,   985, -1922,   821,
03124    -1922, -1922, -1922, -1922, -1922,   495, -1922,   -34,   -90,   515,
03125    -1922, -1922, -1922, -1922,   943,  1103, -1922,   468, -1922,   547,
03126    -1922, -1922, -1922, -1922,    67,   168, -1922,   -38, -1922, -1922,
03127    -1922,   879,   673,  1212,   891,   891,   951,   976,  1103,  1103,
03128     1103,   891,  1103,  1284,  1103, -1922,   112, -1922, -1922, -1922,
03129    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03130      891,   920,   427, -1922,  1261, -1922,  1175,   418,   850, -1922,
03131      902,  1012,  1009,   850,   650,   935,  1054, -1922,  1103,  1000,
03132     1095, -1922, -1922,  1268,   768,  1103,  1146, -1922,   634, -1922,
03133    -1922,  1022, -1922,  1103,  1170, -1922,   775, -1922, -1922, -1922,
03134    -1922,   936,  1137, -1922, -1922,  1103,  1103, -1922,  1103,   953,
03135     1315,   953,  1103,   953, -1922,   891,    16, -1922, -1922, -1922,
03136    -1922, -1922,   821, -1922,   821, -1922, -1922,   850, -1922,   938,
03137     1039, -1922, -1922, -1922,   935, -1922,   945,   -19, -1922,  1261,
03138     1103,   -15,   -15,  1103,     8,  1149,  1103,  1368,  1125, -1922,
03139    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03140      499,   200,  1103, -1922,   963,   952, -1922,   845,  1146, -1922,
03141    -1922, -1922, -1922,   953, -1922, -1922, -1922, -1922, -1922,  1103,
03142      701,   953,  1176,   456, -1922, -1922, -1922, -1922,   953, -1922,
03143    -1922,    58, -1922, -1922, -1922, -1922,   821, -1922,  1114,   821,
03144    -1922, -1922,   850, -1922,   964,   965, -1922, -1922,  1329, -1922,
03145     1331,  1146,   986,  1103,  1368,   953,    -7,   -37,  1146,   988,
03146    -1922,  1103,   990, -1922,   990,    -8, -1922, -1922, -1922, -1922,
03147    -1922,  1146, -1922, -1922, -1922,   510,   126, -1922,  1077, -1922,
03148    -1922, -1922, -1922, -1922, -1922, -1922,   701, -1922,  1038, -1922,
03149    -1922, -1922, -1922,   953, -1922, -1922, -1922, -1922,  1146, -1922,
03150      796, -1922,  1146, -1922, -1922, -1922,  1107, -1922, -1922, -1922,
03151      765,  1032, -1922, -1922, -1922,   953, -1922, -1922, -1922, -1922,
03152    -1922, -1922,  1206,    62,  1242,  1003, -1922, -1922, -1922,  1103,
03153     1103, -1922, -1922,  2643,   397, -1922, -1922, -1922, -1922, -1922,
03154    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03155      931, -1922,    68, -1922,   701, -1922,  1146, -1922,   806,  1149,
03156     1127,  1051, -1922,  1092,  1149,  1103,  1397,   262,     2,  1146,
03157     1027, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03158     1080, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03159     1103,  1421, -1922,   990, -1922,  1107, -1922, -1922,  4620,  1440,
03160     1286,  1146,    85, -1922, -1922, -1922,  1146, -1922, -1922,  1109,
03161    -1922,   -27,   -27,  2851,  1031,  1033, -1922, -1922, -1922, -1922,
03162    -1922,  1131,  3560,  3795,  1036, -1922, -1922,   931, -1922, -1922,
03163    -1922, -1922,  1106,  1103,  1270, -1922,   165, -1922,  1103,   713,
03164    -1922,  1103,  1103, -1922,  1103,  1103,  1274,   162,  1103,  1053,
03165    -1922,  1132, -1922, -1922,   935,  1269, -1922, -1922,   282,   522,
03166      533,   552,   639,  1066, -1922, -1922, -1922, -1922, -1922, -1922,
03167    -1922, -1922, -1922,  1159, -1922,  1146, -1922, -1922, -1922, -1922,
03168      953,   953,  1289, -1922, -1922, -1922,   526, -1922, -1922, -1922,
03169     1103,   195, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03170    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,   918,   442,
03171    -1922,   376, -1922, -1922, -1922, -1922, -1922,   150,  1284, -1922,
03172      536, -1922, -1922, -1922, -1922,  1398, -1922, -1922,  1273, -1922,
03173    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03174    -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1051, -1922,  2239,
03175    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03176    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,    14, -1922,
03177    -1922,  1208, -1922, -1922, -1922, -1922,   154, -1922, -1922, -1922,
03178    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03179    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03180    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03181    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03182    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03183    -1922, -1922, -1922,   981, -1922, -1922,  1103,    74,  1103, -1922,
03184    -1922,   555,   620, -1922, -1922, -1922,   -37,  1135,   953,   953,
03185    -1922,  1230,  1230,  1238, -1922,   953, -1922, -1922,    25,   -19,
03186    -1922, -1922,   935, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03187    -1922, -1922, -1922, -1922, -1922, -1922,  1075, -1922, -1922,  1119,
03188    -1922,  1071,  1128, -1922, -1922, -1922, -1922,  3077,   343,  1491,
03189    -1922,  1173,  1173,   701,  1259,  1259, -1922, -1922,  1081, -1922,
03190    -1922, -1922, -1922, -1922, -1922,    57,  1359, -1922, -1922,  1032,
03191     1146,  1089, -1922,  1091,   953,  3638,  1108,   -26,   982, -1922,
03192    -1922,  4203,   821,  4332,  4203,  1312,   372,   841,   102,   953,
03193    -1922, -1922,  1411, -1922,   102,   953,  4216,   953,  3821,  4203,
03194    -1922,  1594,   821,   953,   821,   953,    41,    66,   953,   821,
03195    -1922, -1922,  2984,  3875, -1922, -1922,   953,   953,   821,   953,
03196    -1922,   295,  1443,   953, -1922, -1922, -1922, -1922, -1922, -1922,
03197     1530, -1922,   891, -1922, -1922, -1922, -1922,   953,   122, -1922,
03198      159,  1121, -1922,  1121, -1922, -1922, -1922, -1922,   527, -1922,
03199    -1922, -1922, -1922, -1922,   953,  1103,  1386,  1386,   195, -1922,
03200    -1922, -1922, -1922,  1374, -1922, -1922, -1922,  1146,  1177,  4973,
03201     1120, -1922,   953, -1922,   343, -1922,  1178,  1340, -1922,  1397,
03202    -1922, -1922, -1922, -1922,   953,   953,   701,   -37,   -37,  1542,
03203     1284, -1922, -1922, -1922,  1453,   717, -1922,  1259,  1130,   953,
03204     1133,  1140,  1259,   456,  1142,  1143,  1145,  1147,  1154,  1155,
03205     1162,  1168,  1133,  1455, -1922,  3887, -1922, -1922, -1922, -1922,
03206     1403, -1922,  1556, -1922,  3328, -1922,  1221, -1922,   456, -1922,
03207    -1922,  1192, -1922, -1922,   155,   821,  1492,  1241, -1922,  1279,
03208     1311,  1024,  1495,  2087,  1104,  1165,  1496,   173,  1192, -1922,
03209    -1922,    37, -1922, -1922, -1922,  1527, -1922, -1922, -1922,  1259,
03210      102, -1922, -1922, -1922, -1922, -1922,  1235, -1922,    93,   953,
03211    -1922,   108, -1922, -1922, -1922, -1922, -1922,  4203, -1922,  1233,
03212     1497,  1581,   810, -1922,  1239, -1922,  1630,  1500,   683,  1243,
03213     1244,  -103,  1247,   648,  1466, -1922,  1311,  1466,   953,  1504,
03214     1217, -1922,   876, -1922, -1922, -1922, -1922, -1922,  1405, -1922,
03215      102, -1922,   408, -1922,    52, -1922, -1922,   494,  1597,  2357,
03216    -1922, -1922,   953,  1506,  4056,   953,  1474,   869,  1543, -1922,
03217     1325,  1280,  1382,  1466,   981, -1922,     9, -1922, -1922, -1922,
03218    -1922,    -5, -1922, -1922,  1103,   953, -1922, -1922,   155, -1922,
03219    -1922,   953, -1922,  1146,   935, -1922, -1922, -1922, -1922,  1545,
03220     1259,  4973,  4973,  4973,    17,   878, -1922, -1922, -1922,  1081,
03221    -1922,  4973, -1922, -1922,  1066, -1922,   343, -1922, -1922, -1922,
03222    -1922, -1922, -1922,  1206,   -37,  1548, -1922, -1922,   876,   857,
03223     1228,   135,   -23,  4973,  1265,  4973, -1922,  4973, -1922,  4529,
03224     1229,  4973,  4973,  4973,  4973,  4973,  4973,  4973,  4973, -1922,
03225    -1922, -1922,  4203,  1480, -1922, -1922,  1332,  1403, -1922, -1922,
03226    -1922, -1922,  1051, -1922, -1922,  1276, -1922,  1276, -1922, -1922,
03227    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03228    -1922, -1922, -1922, -1922, -1922,  3091, -1922, -1922, -1922, -1922,
03229    -1922,  1363,  1438, -1922,   548, -1922, -1922, -1922,   812, -1922,
03230    -1922, -1922, -1922, -1922, -1922, -1922, -1922,    54, -1922, -1922,
03231     1251,  1510,  1510,  1510,  1510, -1922, -1922,  4203,  4203, -1922,
03232      372,   219,  1540,  1246, -1922,  1252, -1922,   953, -1922,   111,
03233    -1922, -1922,  1240,  1505, -1922,   876,    84, -1922,   108, -1922,
03234    -1922, -1922, -1922,    50,  1281,   102, -1922, -1922,  4203, -1922,
03235    -1922, -1922, -1922,  1324, -1922, -1922, -1922, -1922,   953,   -26,
03236    -1922,   999, -1922, -1922,  1311,   155, -1922,  1475,   377,   244,
03237    -1922, -1922,   953,   244,  1288, -1922,  1081, -1922, -1922,    59,
03238      806, -1922, -1922,  1910, -1922,  1635,  1477,  4203,  4203, -1922,
03239     4137,   953, -1922,  1516, -1922, -1922,  4203,   876, -1922, -1922,
03240    -1922,  1597,  1488,   953, -1922,   998, -1922,    42,   377, -1922,
03241    -1922,  1577, -1922, -1922,  1424, -1922,   953,   953, -1922,   953,
03242     1509,   833,   -16, -1922,  4743,  1382, -1922,  4529,  1254,  1254,
03243      984, -1922, -1922, -1922,  4973,  4973,  4973,  4973,  4973,  4973,
03244     4781,   878,  1342, -1922, -1922,  1206,  1382, -1922, -1922, -1922,
03245     1510, -1922, -1922,  1263,  1271, -1922,   876,  1510,  1493, -1922,
03246    -1922, -1922, -1922,  1402,  1510,  1442,  1442,  1442,   107,  1479,
03247    -1922, -1922,   369, -1922,    69,   915,   953,   898,    87,  1266,
03248    -1922,  1081, -1922, -1922,   511,  1267,  1023,   575,  1272,  1052,
03249       91,    94,   694,  1275,  1124,  4149,   476,  4203,   102, -1922,
03250     1376, -1922, -1922, -1922, -1922, -1922, -1922,  1318,   -26, -1922,
03251      138,   953,   953,   454, -1922, -1922, -1922,   105,    56,  1351,
03252    -1922, -1922,  1590, -1922,  1460, -1922,     4,   360, -1922, -1922,
03253     1462, -1922, -1922, -1922,  1546,  4149,   530, -1922, -1922, -1922,
03254    -1922,  1703, -1922,  1335, -1922, -1922,   174, -1922, -1922,   219,
03255    -1922, -1922,  1382, -1922, -1922, -1922,  1051, -1922, -1922, -1922,
03256    -1922, -1922, -1922, -1922,  1401,  1051, -1922,  1338, -1922,  1680,
03257    -1922, -1922, -1922,   407, -1922,   876,   789, -1922,    67,   478,
03258      232,   102,   102,  4149,   539,  1027,   821,  1600, -1922, -1922,
03259     1725, -1922,  1561, -1922, -1922, -1922, -1922,  1475, -1922,   953,
03260      501,    54,   469,  1309,  1617, -1922,  1313,   876,   770, -1922,
03261      369, -1922, -1922, -1922,  4203,  1103,    54, -1922, -1922, -1922,
03262    -1922,   -79,   953,  4149,   545,  1345,  1730,   953,  -105, -1922,
03263    -1922, -1922,  1444,  1446, -1922, -1922,   999, -1922,    10,   953,
03264     1103,  1580, -1922, -1922,  1146, -1922, -1922, -1922,  1103, -1922,
03265    -1922, -1922, -1922,  1442,  1088,  1103,   982, -1922, -1922,  1442,
03266    -1922,  1146, -1922, -1922, -1922, -1922, -1922,   953, -1922,   953,
03267    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,   953,
03268     1553,   232, -1922,  1081, -1922, -1922,   915,   465,   465,  1254,
03269     1254,  1254, -1922,  1156, -1922,  1051, -1922,   953, -1922,  1462,
03270    -1922, -1922,  1510, -1922, -1922, -1922,  1103, -1922, -1922,  1103,
03271    -1922, -1922, -1922, -1922, -1922, -1922, -1922,    18, -1922, -1922,
03272    -1922,  1402, -1922, -1922, -1922,   155,   155,   155, -1922, -1922,
03273    -1922, -1922, -1922,  1133,  1279,  4893, -1922,   953,  1133,  1133,
03274     4973, -1922,  1133,  1133,  1133,   452,  1133,  1133, -1922, -1922,
03275     1498,  4149, -1922,   102, -1922, -1922,  1322, -1922,   -47,   120,
03276    -1922, -1922, -1922, -1922,   983, -1922,  1435, -1922,  1423, -1922,
03277    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1139,
03278     1510,  1501, -1922, -1922, -1922,  4203, -1922,  4203,   219, -1922,
03279    -1922, -1922,  1703, -1922,   953,  1640,  1337,   900,  1658,  1343,
03280      286,   876, -1922, -1922,  1716, -1922, -1922, -1922, -1922,   789,
03281    -1922,  1599, -1922,  1103,  1494, -1922, -1922, -1922, -1922,  1270,
03282      102, -1922,  4203,   162,   406, -1922, -1922, -1922,   953,  4203,
03283      675, -1922, -1922, -1922,  1637,  1517, -1922,  1638, -1922,  1544,
03284    -1922, -1922, -1922, -1922,  1313, -1922, -1922, -1922,  1521,  1639,
03285     1499,  1486,  1279, -1922,  4203,   286, -1922,  1507, -1922,   876,
03286    -1922,  1672,  1396, -1922, -1922,  1382, -1922,   970,  1775,   934,
03287    -1922, -1922, -1922,  1146,  1673,  1571,  1721,  5019,   -53,  1103,
03288    -1922, -1922,   -53, -1922,  1103,  1177, -1922, -1922, -1922,  1597,
03289    -1922,  1270, -1922,  1392, -1922, -1922, -1922,   -53,   -53,   124,
03290      124, -1922, -1922, -1922, -1922, -1922,  1351, -1922,  1166, -1922,
03291    -1922, -1922,   915, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03292    -1922, -1922, -1922, -1922, -1922, -1922, -1922,  4203, -1922, -1922,
03293    -1922, -1922, -1922,  1665, -1922, -1922, -1922, -1922, -1922, -1922,
03294     1103, -1922, -1922, -1922, -1922,  1110,  1103, -1922, -1922, -1922,
03295    -1922,    27, -1922,  1139, -1922, -1922, -1922, -1922, -1922,  4149,
03296     1472,  4149,  1473, -1922, -1922, -1922, -1922, -1922,  1663, -1922,
03297      900, -1922,  1698, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03298      286,   999, -1922, -1922,   999,    -6,   953, -1922, -1922,  4149,
03299    -1922, -1922,   643,  3795, -1922,  1747,  1565,  1586,   414, -1922,
03300    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03301    -1922, -1922,  4203,   749, -1922, -1922, -1922,  1660,  1551,   953,
03302     1351,  4149, -1922,  1730, -1922,  1242,  1715,  1242,  1499,   401,
03303    -1922, -1922,  1667, -1922,  1557, -1922, -1922, -1922,   393, -1922,
03304    -1922,  1103,  1723,  1601, -1922,   912, -1922,  1618,   960,  1368,
03305     1628,  1390,  1103,  1259,  1103,   953, -1922, -1922, -1922, -1922,
03306    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1445, -1922,
03307    -1922, -1922, -1922,    65, -1922, -1922, -1922, -1922, -1922, -1922,
03308      450, -1922,   543, -1922,  1388,  1103,  1103, -1922, -1922, -1922,
03309    -1922,   -53, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03310    -1922, -1922,   -53, -1922, -1922,   -53,   124,   124, -1922, -1922,
03311    -1922,  4203, -1922,  4203, -1922, -1922, -1922, -1922, -1922, -1922,
03312     1772,   999,   999, -1922,  1426,  1531,   821,    70, -1922,   953,
03313    -1922, -1922,  1490,  4203, -1922,  1103,   950,  1596, -1922,  1602,
03314    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1276, -1922,
03315     1276, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03316    -1922, -1922, -1922, -1922, -1922,   953,  1242, -1922,   953,  1689,
03317    -1922, -1922, -1922, -1922, -1922,   821, -1922, -1922, -1922, -1922,
03318    -1922, -1922, -1922,  1029,  1146,  1103,  1103,  1669, -1922,  1103,
03319    -1922, -1922, -1922, -1922,   195, -1922,  1103, -1922,   953,   953,
03320     1113,  1662, -1922,  1558,  1146,    65, -1922, -1922, -1922, -1922,
03321    -1922, -1922,   -53, -1922, -1922, -1922, -1922,   -53, -1922,  1388,
03322    -1922,   953,   343,  1029, -1922, -1922, -1922, -1922, -1922, -1922,
03323     1351,  1351, -1922,  4203,   999, -1922,  4203,  1103,   821,   821,
03324     1554, -1922, -1922, -1922,  1427,   953,  1706, -1922, -1922, -1922,
03325    -1922, -1922, -1922,  1576,  1578, -1922, -1922, -1922,   953, -1922,
03326    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1146,  1146,
03327     1103, -1922,  1146, -1922,  1146, -1922,  1279, -1922, -1922, -1922,
03328    -1922, -1922, -1922, -1922, -1922, -1922, -1922,  4203, -1922, -1922,
03329    -1922, -1922, -1922, -1922,   953, -1922, -1922, -1922, -1922, -1922,
03330    -1922,   -26,   821,  1103, -1922, -1922, -1922, -1922,  1704,  1705,
03331    -1922, -1922, -1922, -1922,  1146, -1922, -1922, -1922,  1805, -1922,
03332      -26, -1922,  1051,  1051, -1922,  4203, -1922, -1922, -1922, -1922
03333 };
03334 
03335 /* YYPGOTO[NTERM-NUM].  */
03336 static const short yypgoto[] =
03337 {
03338    -1922, -1922, -1922, -1922,  1850, -1922, -1922, -1922,    72, -1922,
03339    -1922, -1922, -1922, -1922,  1549, -1922, -1922, -1922,  1186, -1922,
03340    -1922,    34,  1839, -1922, -1922,  1808,   874, -1922, -1922, -1922,
03341    -1922, -1922,  1681,  1737, -1922, -1922,  1700,   109, -1922, -1922,
03342    -1922, -1922, -1922, -1922, -1922,  1692, -1922, -1922, -1922, -1922,
03343     1674, -1922, -1922, -1922,   581, -1922, -1922, -1922, -1922,  1412,
03344    -1922, -1922,  1336,   790, -1922, -1922, -1922, -1922, -1922, -1922,
03345     1481, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03346    -1922, -1922,  1743, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03347    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,   987,
03348       97, -1922,  1330, -1922, -1922, -1922,   991, -1922, -1922, -1922,
03349      149, -1922,  1671, -1922,  1779, -1922, -1922, -1922, -1922,  1541,
03350    -1922,   248, -1922, -1922, -1922, -1922,  1675, -1922,  1840,  1742,
03351    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  1074, -1922,
03352    -1922, -1922,  1373, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03353    -1922, -1922, -1922, -1922, -1922,   930, -1922, -1922, -1922,  1612,
03354    -1922,  -518,  -735, -1922, -1922, -1922,  -402, -1922, -1922, -1922,
03355    -1922, -1922, -1922, -1278, -1275,  1100, -1273,   113, -1922, -1922,
03356    -1922, -1922,   307, -1922, -1922,  -228, -1260, -1922, -1922, -1259,
03357    -1922, -1258, -1922, -1922,   975, -1922, -1922, -1922, -1922, -1922,
03358    -1922, -1922, -1922, -1922, -1922, -1922,  1399, -1922, -1922, -1922,
03359      995, -1922,  -702, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03360    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03361      -75, -1922, -1922, -1922, -1922, -1922, -1922,  -210, -1922, -1922,
03362    -1922, -1922,  -158, -1922, -1922, -1922, -1922, -1922,  1134, -1922,
03363    -1922, -1922, -1922, -1922, -1922,   209, -1922, -1922, -1922, -1922,
03364    -1922,  1787,  1035, -1922,   240, -1922, -1922, -1922, -1922,  1467,
03365    -1922, -1922, -1922, -1922, -1922, -1922,  -944, -1922, -1922,   175,
03366    -1922,  1377, -1922, -1922, -1922,   922,   534,   540, -1922, -1922,
03367      283, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03368    -1922, -1922, -1922, -1922, -1922, -1922,   919, -1922, -1922,   254,
03369    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03370    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03371    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03372    -1922,    60, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03373    -1922, -1922,   695, -1922, -1922,   688, -1922, -1922, -1922, -1922,
03374      463,   226, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03375    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03376    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,    47,   696,
03377    -1922, -1922, -1922, -1922, -1922, -1922, -1922,   680, -1922, -1922,
03378    -1922,   210, -1922, -1922,   447, -1922, -1922, -1922, -1468, -1922,
03379    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03380    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03381    -1921,   897, -1922, -1922,   199, -1922, -1922,   432, -1922, -1922,
03382    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,   616,
03383    -1922, -1922, -1922, -1922, -1922, -1922, -1922,   657, -1922,   187,
03384    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03385    -1922,   885, -1922,   884, -1922, -1922,  1087, -1922, -1922, -1922,
03386    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03387    -1922, -1922, -1922, -1922, -1922, -1922,   881,   409, -1922, -1922,
03388    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03389    -1922, -1922, -1922, -1922, -1922, -1922,    20, -1922,   413, -1922,
03390    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,
03391    -1922, -1922, -1922, -1922, -1922, -1922, -1922, -1922,  -163, -1922,
03392    -1136, -1922, -1922, -1037, -1155, -1129, -1922,   346, -1922, -1269,
03393    -1922, -1922, -1922, -1922,    19, -1922, -1922, -1922, -1922,   -88,
03394    -1922, -1922,   211, -1922, -1922, -1922, -1922,    21, -1922,  -502,
03395    -1634, -1922, -1922,   535, -1922, -1196, -1254,  -807, -1168, -1922,
03396    -1922,   766,    44,    45,    51, -1922, -1922,   145,  -184,  -294,
03397     -117, -1114,  -819,    63,   916, -1463,   -83, -1922, -1039, -1922,
03398     -792, -1922,   758, -1084,  -241, -1922,  -563,  -153,  -813,  -958,
03399     -181,  -747, -1922, -1922,   455, -1010, -1532,  -929,  -801,  -669,
03400      691,  -573,  -220, -1922,  1050,  -230,  -618,  -652,  -277,  -361,
03401     -922, -1922, -1922, -1922, -1922, -1922,  1752, -1922, -1922,   811,
03402    -1922, -1922, -1922, -1599,  1180,  -263,  1685,   726,  -401, -1922,
03403     -362,  1429, -1922,  -606, -1922, -1054,  1057,  -384,   684, -1922,
03404    -1922,  -670, -1922, -1698,  -164,  -596,  -471,  -146,  -925,   646,
03405    -1340,  -797, -1183, -1922,  1227,  1934,  -707, -1922, -1922, -1922,
03406    -1922, -1922, -1922, -1922, -1162, -1922,   198,  -653,   871,  -470
03407 };
03408 
03409 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
03410    positive, shift that token.  If negative, reduce the rule which
03411    number is the opposite.  If zero, do what YYDEFACT says.
03412    If YYTABLE_NINF, syntax error.  */
03413 #define YYTABLE_NINF -1518
03414 static const short yytable[] =
03415 {
03416      118,   236,   424,   807,   840,   798,   320,   555,   935,   500,
03417      557,  1327,   988,  1499,  1300,  1414,   872,   790,   334,   972,
03418      337,   815,   339,  1291,   259,   260,   261,   981,   263,  1003,
03419      266,  1018,   255,  1734,   914,   976,  1636,  1637,   262,   335,
03420     1159,   335,  1284,   335,  1064,  1816,   769,    21,  1405,   517,
03421     1048,  1543,  1238,   398,  1230,  1206,  1581,   269,  1009,  1582,
03422     1238,  1583,   310,  1453,   311,  1009,   118,  1441,  1442,  1443,
03423     1490,   318,  1009,   748,  1584,  1585,  1586, -1481,   966,   323,
03424      405,   380,   387,   905,  1341,   536,   966,   997,   386,   271,
03425      399,   330,   331,  1478,   332,  1685,    84,   404,   338,  1009,
03426     1372,  1029,  1031,   335,   937,    91,  1238,   343,  1009,   906,
03427      907,   335,   342,   344,  1445,  1071,   966,   264,   335,   398,
03428     1380,   123,    53,   184,   426,  1320,   362,   241,  1358,   367,
03429      369,   421,   372,  1809,   154,  1506,  1341,   175,   433,  1479,
03430      624,    88,  2016,  1946,  1493,   335,   357,   335,   381,   357,
03431     1142,   441,  1589,    40,  1341,  1149,   439,   816,  1341, -1481,
03432     1679,  1341,   770,  1930,  1075,   388,  1320,  1292,   185,  1328,
03433     1375,   761,   154,  1607,   319,    62,  1696,   244,   467,   810,
03434      926,   446,   502,   465,   513, -1517,   154,   538,   407,   348,
03435      430,   883,  1533,   895,  2035,  1448,  1245, -1441,  1375,   423,
03436      631,   975,  1838,   186,   187,   335,   188,   435,  1354, -1468,
03437     1052, -1517,  1237,   553,   189,    40,   438,   405,  1164,  1462,
03438    -1445,  1227,  1836,  1789,  1731,   231,  1324,  1200,  1023,  1794,
03439      378,  1609,    40,  1932,  -177,  1477,   539,  2075,  1609,  2078,
03440     1448,   860,  1549,  1053,   817,  1609,  1164,  1289,    51,   556,
03441     2149,  1480,  1779,  1894,   769, -1457,   510,  1536, -1517,  1727,
03442     1430,   137,   427,   348,  1763,   406,   414,  1119,   190,   975,
03443    -1517,  1087,    31,   810,   273,   521,   522,  1381,   240,  1704,
03444     1254,   623,   749,  1217,    54,     3,   628,  1677,  1453, -1360,
03445     2229,  1453,   319,  1661,   363,   803,   364,  1535, -1491,  1686,
03446     1481,   633,   633,  1079,   379,  1053,   926,  1678,   908,  2236,
03447     1431,   549,  1103,  1337,  2113,   228,   138,   139, -1517,  1780,
03448     1316,  1781,  1071,   273,   179,   333,   750,  1164,   228,  1080,
03449     1613,  1238,  1325,  1134,   232,   870,   559,  1633,   975,  1277,
03450      191,  1728,   919,   988,   618,   562,  1508,   240,  2150,  -177,
03451      179, -1445,   803,   861,  2114,   789,  1612,    63,  2033,  1376,
03452      229,  1129,  1130,   428, -1441,    54,  1669,  1342,    55,   552,
03453      770,   792,   163,   229,  1132,  1133,  1228,   333,  2168,   747,
03454      884,  1042,  1205,  1986,   752,   803,  1088,   756,   757,   -31,
03455      758,   759,  1833,   333,   765,   245,   625,  1688,  1377,  1329,
03456     1286, -1445,   406,   333,   333,   247,  1429,   333,    64,   988,
03457     1778,   358,  2158,   762,  1555,  1406,  1478,  2036,  2031,  1342,
03458      242,  2032,   440,  1003, -1457,   804,  1377,   319,   885,  1246,
03459     1606,  1810, -1468, -1463,  1687,  1839,   797,  1342,  1321,   988,
03460     2017,  1342,  1492,   317,  1342,  1293,   253,  1464,  1200,    55,
03461     1662,  1701,  1518, -1445,   192,   516,   938,    88,   537,  1119,
03462     1119,  1119,  1479,  1343,  1231,  1294,    85,   983,   909,  1119,
03463      763,   333,   333,   553,   389,  1714,  2085,  1503,   534,  1321,
03464     1444,  1446,   333,  1609,  1482,  1024,  1286,   988,   253,   333,
03465      983,  1119,  1247,  1119,   193,  1119,   333,  1391,  1919,  1119,
03466     1119,  1119,  1119,  1119,  1119,  1119,  1119,  1755,  1353,  1967,
03467    -1445,  1494,  1968,   390,  1969,  1643,  1703,   898,   899,  1411,
03468      391,  1705,   179,   333,   904,  1545,   932,  1971,  1972,  1973,
03469     1453,   389,   333, -1399,  1238,  1865,   335,  1653,   335,   335,
03470     1654,   333,   194,   154,  1840,   335,  1523,  2003,  1243, -1441,
03471     1527,  1528,  -177,  1530, -1445,   267,  1135,   447,  1120,  1534,
03472    -1445,  2080, -1445,   154,   389,  2144,  1042,  1507,  1449,  1383,
03473      390,  1355,  1450,  2148,  1480,  1806,  1390,   391,  1341,   179,
03474       62,  1869,   882,  1871,   887,   333,  1332,  2227,   988,   333,
03475      941,   392,  1939,  1286,   805,  -941,  1640,  1556,   179,   166,
03476     2020,  2081,  2022,   390,   913,  2047,    87,   979, -1517,  2082,
03477      391,  1672,  1669,  1449,  2002,  2099, -1491,  1450,  1899, -1517,
03478      319,  1742,     4,  1481,    18,  1115,  1665,  1026, -1517, -1488,
03479     2040,  1041,  1053,  1045,  -941,  1045,  1051, -1517,  1026,    12,
03480      775,  -941,  1341,   444,   104,  2048,   898,  1053,   392,   401,
03481     1931,   891,   993,  1045,   393,  1286,  -728, -1517,   801,  1131,
03482      376,  2072,  2073,  1096,  1461,  2049,   888,   335,  1826,   104,
03483     1090,  1724,    13,  1514,  1297,   983,  2091,  1514,  1730,  2083,
03484      377,   392,  1074,   394,   335,  1593,  2212,  1107,  2118,   776,
03485     1150,    22,  1119,  1119,  1119,  1119,  1119,  1119,  1119,    19,
03486     1748,  1889,  1123,    15,   164,  1834,  1812,  1813,  1814,   818,
03487     1697,   393,  -941,    25,  1286,  1202,   333,   335,   335,  1732,
03488     1749,  1815,   395,   402,    28,  1764,  1820,  1821,  1421,  1085,
03489     1823,  1824,  1825,  1673,  1828,  1829,  1848,  1849,  1428,  2119,
03490      394,  1098,   105,   794,   393,  1994,  1138,     5,  1867,   990,
03491     1120,  1120,  1120,  1725,  1743,  2001,  2001,  1676,   184,  1934,
03492     1120,  1341,    63, -1459,  1592,  1793,   999,   105,    74,  1043,
03493     1000,  1046,  1238,   394,     5,  -941,  1066,  1757,   892,   395,
03494    -1441,  2123,  1120,   164,  1120,  1077,  1120,    32,  1392,  1689,
03495     1120,  1120,  1120,  1120,  1120,  1120,  1120,  1120,  1715,   333,
03496      469,  1290,  1116,   185,  -941,   164,   179,  1482,  1512,  1642,
03497    -1445,     5,   395,  1706,  1215,   470,   165,  1338,  1339,  1340,
03498     2138,  2139,  1709,   333,   471,  1298,  -583,  1351,  1051,  1986,
03499    -1445,   115,  2124,  1286,  1286,   179,   115,  -941,   186,   187,
03500     2050,   188,   802,  -941,  1716,   141,  -581,    74,  1512,   189,
03501      889,  1387,  1827,  2185,   426,   893,   241,  1394,  1396,  1397,
03502     1399,  1342,   795,  1402,  1404,  1286, -1517,  1906,  1215,    74,
03503      164,  2207,  2208,  1331,  2041,   335,  1870,  1215,  1872,  1422,
03504      777,  1359,  1360,  1215,  1278,    17,  2005,  2120,  2121,   389,
03505     1139,   779,  1874,  1094,  2042,   165,  2163,  1272,  2164,  1172,
03506     1173,  2011,  1208,   190,  1347,  1348, -1517,  1349,   472,  2092,
03507      781,   237,  1467,   988,   335,  1468,  1469,   165,  1047, -1445,
03508     1318,  1361, -1488,  1362,  2019,  1342, -1517,  2057,   390,   778,
03509     1326,  2024,    29,  2058,    74,   391,  1083,   473,  -583, -1445,
03510      780, -1441,  1273,  1917,    90,   988, -1463,  1642,  1345,  1346,
03511     1347,  1348,  1803,  1349,  1363,  1364,  1365, -1405,  -581,   782,
03512     2231,    33,  2001,  2001,  2059,  2051,  2052,  1691,  2060,    92,
03513     1259,  1095,    40,   361,  2054,   191,  1594,   389,   368,   325,
03514     2125,  2126,   165,  1120,  1120,  1120,  1120,  1120,  1120,  1120,
03515      239,   472,  1905,  1119,  1116,  1116,  1116,   783,  1119,   166,
03516       35,  1366,   326,  1367,  1116,  1717,   392,  1504, -1441,  1747,
03517     1260,  1368,  1345,  1346,  1347,  1348,   390,  1349,  1261,   979,
03518      473, -1403,   753,   391,  1759,  1733,  1116,   474,  1116,   754,
03519     1116,    93,    43,  1505,  1116,  1116,  1116,  1116,  1116,  1116,
03520     1116,  1116,    37, -1517,  1342,    44,   784,  2204,    48,   979,
03521     1596,  1597,  1598,  1599,  1600,  1601,  1603,  1552,  1553,  1286,
03522      948,  1761,  2134, -1517,   389,    49,  2135,  1286,  1761,   393,
03523     1742,    94,   475,    95,   540,   950,   541,   321,   476,   799,
03524    -1407,  2142,  1369,    45,    52,   426,   513,  1723,  1262,   192,
03525     2007,    46,  1888,   283,   392,  1267,  1053,   979,   394,   800,
03526      289, -1517,   179,   390,   179,   477,   335,   335,  1268,  2161,
03527      391,  2162,   478,   290,    58,   543,   250,  1286,  1940,   450,
03528      548,    59,  2165,  1991,    60,   479,  1424,  1004,  1005,   193,
03529       67,  1345,  1346,  1347,  1348,    61,  1349,   395,  1998,  1999,
03530    -1400,  1006,  2172,  2173,  1470,  1471,     5,  1888,   276,   242,
03531      291,  1540,   480,   282,    71,  1541,  1430,   393,   451,   951,
03532      481,    74,  1472,  1473,  1521,   452,  2109,    78,  1522,   874,
03533     -192,  1850,  1634,  2098,  1851,  2056,  1430,   194,  1308,   111,
03534     1309,   392,  1852,  1853,  1854,    80,   394,  1007,    10,  1718,
03535      227,   482,    10,  1190,   227,   449,  1193,  1194,   979,  2189,
03536     2190,    81,  2140,  1743,  2141,   983,  1431,   351,   875,   980,
03537     1647,   954,   102,  1650,   955,   876,   112,  1425,  1655,   333,
03538     2102,  2103,  2220,  2191,  1941,   395,  1431,  1116,  1116,  1116,
03539     1116,  1116,  1116,  1116,   113,  1790,   454,  1791,  1841,   483,
03540     1842,   179,   121,  1780,   393,  1781,   956,   947,  1370,  1466,
03541      803,   115,  1467,  2174,  2175,  1468,  1469,  2013,  1898,  2014,
03542      125,    40,   126,   127,  1902,   450,   292,   128,   129,   130,
03543     1908,   132,  1888,   394,   133,   135,   293,   144,   145,  2093,
03544     -310,   146,   415,   160,  1120,   161,   877,  1371,  1384,  1120,
03545      162,  1855,  1388,   175,   209,   212,  2154,   215,   213,   455,
03546     1400,  1401,   219,   220,   451,   235,   333,   221,   513,  1856,
03547       40,   452,   395,   252,   957,  1345,  1346,  1347,  1348,   948,
03548     1349,   253,   249,   453,  1786,   256,  1857,  1350,  -751,   335,
03549     1995,  -751,  2133,   257,   950,  1345,  1346,  1347,  1348,   264,
03550     1349,  1795,   271,  2136,   273,   278,  2137,  1645,  1798,   878,
03551      280,  1818,  1345,  1346,  1347,  1348,  1822,  1349,   279,   958,
03552      959,  1758,   312,   294,   295,   285,  1804,   458,   313,   335,
03553      154,   315,  1858,   319,   324,   322,   296,   328,   297,   327,
03554      336,   353,   454,   333,   960,   354,  1783,   335,   356,   370,
03555      373,  1211,   375,   382,  1788,   383,  2209,  2192,  2193,  2210,
03556     -751,  1792,   961,   400, -1445,   412,  1819,   417,   418,  -322,
03557      962,   420,   333,   434,   503,  -751,   422,   879,   951,  1859,
03558      436,  1345,  1346,  1347,  1348,   511,  1349,   335,   464,   389,
03559     1595,   514,  1615,   520,  1616,   518,   544,  1617,  2194,  2195,
03560    -1352, -1352, -1352, -1352,   545,   455,   547,  1618,   456,   457,
03561     2228,   550,  1807,  2201,   558,  1808,   179,   560,  2202,   952,
03562     1345,  1346,  1347,  1348,   953,  1349,   620,   622,   390,  1649,
03563      954,   629,  1860,   955,   636,   391,   637,   638,   298,   742,
03564      745,   553,  1861,   766,  1470,  1471,   767,   774,  2239,  1345,
03565     1346,  1347,  1348,   785,  1349,   787,   793,   299,  1652,  -751,
03566      822,   821,  1472,  1473,   864,   956,   896,   900,  2183,   903,
03567     -751,   916,   917,   458,  2205,   945,   919,   927,   922,   982,
03568     1221,  1222,  1223,  1224,   995,   929,   933,   939,  1116,  1012,
03569     1013,   936,   942,  1116,   943,  1012,  1020,  1022,   970,   998,
03570     -751,  1015,   982,  1862,  1082,  -751,   392,  1084,  1012,  -751,
03571     1091,  -751,  1099,  1950,  -751,  1105,  -751,  1020,  1076,  1896,
03572     1078,  1345,  1346,  1347,  1348,  1121,  1349,  1127,  1126,  1108,
03573     1657,   810,  1619,   957,  1136,  1143,  1620,  1160,  1145,  2237,
03574     2238, -1351, -1351, -1351, -1351,  1147,  -751,  1151,  1152,  1621,
03575     1153,  -751,  1154,  1345,  1346,  1347,  1348,  2105,  1349,  1155,
03576     1156,  1165,  1802,  1345,  1346,  1347,  1348,  1157,  1349,   393,
03577     1118,  1167,  2004,  1158,  1201,  1203,  1209,  1215,   958,   959,
03578      753,  1218,  1236,  1225,  1240,  1990,  1255,  -751,  1256,  1258,
03579     1992, -1354,  1265,  1269,  1271,  1622,  1270, -1445,   394,  1275,
03580     1144,  1280,  1282,   960,  1053,   154,  1304,  1307,  1313,  1311,
03581     1314,   414,  1316,  1335,  -751,  2038,  1356,  1373,  1386,  1393,
03582     1407,   961,  1417,  1408,  1412,   975,  1436,  1438,  1454,   962,
03583     1476,   333,   948,  1456,  1491,  1207,   335,   395,  1509,  1459,
03584     1495,  1517,  1623,  1524,  -751,  1212,  2012,   950,  1525,  1532,
03585     -751,  1537,  2015,  1547,  1548,  1550,  1349,  1604,  1610,  -751,
03586     -751,  1012,  1634,  1376,  1614,  1611,  1624,  1663,   948,  1012,
03587     1244,  1664,  1646,  1648,  1658,  1682,  1431,  1693,  1651,  -751,
03588     1698,  1656,  1707,   950,  -751,  1699,  1695,   982,  1711,  -751,
03589     1625,  1710,  1735,  1738,  1739,  1626,  1750,  1751,  1765,  1766,
03590     1752,  1774,  -751,  1285,  1776,  1627, -1445,  1784,  1799,  1628,
03591     -751,  1012,  -751,  2117,  1846,  1012,  1831,  1847,  -751,  1877,
03592     1866,  1879,  1883,  1303,  1890,  1033,  1244,  1885,  1893,  1897,
03593     1743,   951,  1911,  1921,  1914,  1916,  1929,  1924,  1926,  1935,
03594     1937,  1933,  1947,  1951,  1952,  1954,  1996,  2094,  2008,  1207,
03595     2021,  2023,  1020,  2026,  2029,  2043,  2044,  2045,  2108,  2067,
03596     2110,  1033,  1118,  1118,  1118,  2076,  1629,   951,  2069,  2088,
03597     2095,  1941,  1118,  2106,  2100,  2096,  1630,  2107,  2128,  2152,
03598     2143,  1034,  2145,   954,  2153,  1963,   955,  2159,  2147,  1285,
03599     2170,  2131,  2132,  2160,  1118,  2197,  1118,  2180,  1118,  2214,
03600     2216,  2198,  1118,  1118,  1118,  1118,  1118,  1118,  1118,  1118,
03601     2218,  2213,  2219,  2235,  2232,  2233,    14,   980,   956,   954,
03602       27,    73,   955,   251,  2177,   182,   385,   238,  2188,   248,
03603      268,  1519,   535,   744,  1319,   211,  1949,   463,  1086,   755,
03604     1093,  2155,  1900,   270,  2199,  2117,   142,   411,    66,   335,
03605      426,   223,   275,   940,   956,   634,   355,   923,  1801,  1125,
03606     1970,  2203,  1102,  2112,   563,  2200,   915,   159,  1837,   523,
03607      741,   335,  1903,  1639,  1811,  1220,   947,  1229,  1638,   803,
03608     1835,  1457,  1702,  2018,  1873,  1447,   957,  2028,  1487,  1892,
03609     1712,  2178,  2179,  1264,  1546,  2182,  1285,  1904,  1475,  1740,
03610     1516,  1920,  2184,  1287,  1288,  1065,  1012,  1772,  2222,  2223,
03611     1302,  1773,  2225,  2074,  2226,  1805,  1913,  2079,  2157,  1502,
03612     1419,  1416,   957,   513,  1279,  2090,  1207,  2061,  2062,  1684,
03613     1122,   958,   959,  1515,  2063,  1756,   284,   366,  1410,  1489,
03614     1012, -1517,   931,  2211,   335,   760,  1128,  2206,   948,   902,
03615       75,   979,  1531,  1993,  2234,  1352,   960,     0,  1285,     0,
03616        0,     0,   414,   950,  1539,     0,  -992,   958,   959,     0,
03617      979,     0,     0,     0,   961,     0,  2224, -1517,     0,  -992,
03618     1244,     0,   962,   179,   333,     0,     0,     0,     0,     0,
03619        0,     0,   960,     0,     0,  1118,  1118,  1118,  1118,  1118,
03620     1118,  1118,  -992,     0,     0,     0,     0,     0,     0,  2230,
03621      961,     0,     0,  1520,     0,  -992,     0,  1285,   962,   179,
03622      333,     0,     0,     0,     0,   414,     0,     0,     0,     0,
03623        0,     0,     0,     0,     0,     0,     0,  1644,     0,     0,
03624        0,     0,     0,     0,     0,     0,     0,   951,     0,     0,
03625        0,     0,     0,   947,     0,     0,   803,     0,   389,  1012,
03626        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03627        0,     0,  1670,  1671,     0,     0,  1138,     0,     0,     0,
03628        0,     0,     0,     0,     0,     0,     0,     0,   952,   414,
03629        0,     0,     0,   953,     0,     0,     0,   390,     0,   954,
03630        0,     0,   955,     0,   391,     0,     0,     0,     0,     0,
03631    -1441,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03632        0,     0,     0,     0,     0,   948,     0,     0,     0,     0,
03633        0,     0,     0,     0,   956,     0,  1285,  1285,     0,     0,
03634      950,     0,  1012,  1012,     0,     0,     0,     0,     0,     0,
03635        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03636     1741,     0,     0,     0,     0,     0,     0,     0,  1285,     0,
03637        0,     0,     0,     0,     0,   392,     0,     0,     0,     0,
03638        0,     0,     0,  1762,     0,     0,     0,     0,  1771,  1771,
03639        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03640      842,     0,   957,     0,     0,  -884,     0,     0,  -884,     0,
03641        0,  -884,  -884,  -884,     0,     0,     0,   982,     0,  -884,
03642        0,     0,     0,     0,   951,     0,     0,     0,  1796,     0,
03643     1797,     0,     0,     0,     0,   389,     0,     0,   393,     0,
03644        0,     0,     0,     0,     0,     0,     0,   958,   959,     0,
03645        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03646        0,     0,     0,     0,  1521,   952,     0,   394,  1522,     0,
03647      953, -1441,   960,     0,   390,     0,   954,  -884,     0,   955,
03648        0,   391,     0,     0,     0,     0,  1207,  1207,  1207,     0,
03649      961,     0,  -884,     0,     0,     0,  1118,     0,   962,     0,
03650      333,  1118,     0,     0,     0,     0,   395,     0,     0,     0,
03651        0,   956,     0,     0,  1012,     0,     0,     0,     0,     0,
03652        0,     0,     0,   947,     0,     0,   803,     0,     0,     0,
03653        0,     0,     0,     0,     0,     0,     0,     0, -1441,     0,
03654        0,     0,     0,     0,     0,     0,     0,     0,     0,  -884,
03655     -884,     0,   392,     0,     0,  1876,     0,     0,     0,     0,
03656        0,  1887,  1285,     0,     0,     0,     0,     0,     0,     0,
03657     1285,     0,     0,     0,     0,     0,  -884,  -884,     0,   957,
03658        0,  1012,     0,  -884,     0,     0,     0,  -884,     0,  1502,
03659        0,     0,     0,     0,     0,   948,     0,     0,     0,     0,
03660        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03661      950,     0,     0,     0,  -884,   393,  1887,  -884,  -884,     0,
03662     1285,     0,  -884,  1068,   958,   959,  -884,     0,  -884,     0,
03663        0,  -884,     0,  -884,     0,     0,     0,     0,     0,  1988,
03664        0,     0,     0,  1988,   394,     0,  -884,  -884,     0,   960,
03665        0,  -884,     0,     0,     0,     0,     0,     0,  1988,  1988,
03666        0,  -884,     0,  -884,     0,     0,     0,   961,  -884,     0,
03667        0,     0,     0,  -884,     0,   962,     0,   333,     0,     0,
03668        0,     0,     0,   395,     0,     0,     0,     0,     0,     0,
03669        0,  -884,     0,     0,   951,     0,     0,     0,     0,     0,
03670        0,     0,     0,     0,  -884,   389,     0,     0,     0,     0,
03671        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03672     1301,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03673        0,  -884,     0,     0,     0,   952,     0,     0,     0,     0,
03674      953,  1887,     0,     0,   390,     0,   954,     0,     0,   955,
03675        0,   391,     0,     0,     0,     0,     0,     0,     0,     0,
03676        0,     0,     0,     0,     0,     0,     0,  -884,     0,     0,
03677        0,     0,     0,     0,     0,     0,  -884,  -884,     0,     0,
03678     2071,   956,     0,     0,     0,     0,     0,     0,     0,     0,
03679        0,     0,     0,     0,     0,     0,  -884,     0,     0,  1988,
03680        0,  -884,     0,  -578,   524,     0,  -619,     0,  -619,     0,
03681        0,     0,     0,  -619,     0,     0,  2111,     0,     0,  -884,
03682        0,  -619,   392,     0,     0,     0,     0,  -884,     0,  -884,
03683        0,     0,     0,     0,     0,  -884,  -884,  -884,  -884,  -884,
03684        0,  -884,     0,  -884,  -884,  -884,  -884,  -884,     0,   957,
03685        0,     0,  1988,  -619,  -619,     0,     0,     0,     0,     0,
03686     -619,     0,     0,  1988,     0,     0,  1988,     0,     0,     0,
03687        0,  -619,     0,     0,  -619,     0,     0,     0,     0,     0,
03688        0,     0,     0,     0,     0,   393,  -619,     0,     0,     0,
03689        0,     0,     0,     0,   958,   959,     0,     0,     0,     0,
03690        0,     0,     0,     0,     0,     0,     0,     0,  -619,     0,
03691        0,     0,     0,     0,   394,  -619,  -619,     0,     0,   960,
03692        0,     0,     0,     0,     0,     0,  2167,     0,     0,  2169,
03693        0,     0,  -578,     0,     0,     0,  -578,   961,     0,     0,
03694        0,     0,     0,     0,     0,   962,  -619,   333,     0,     0,
03695        0,     0,     0,   395,     0,     0,     0,     0,  -619,  2186,
03696        0,     0,  -619,     0,     0,     0,     0,     0,     0,     0,
03697        0,     0,     0,  1988,     0,  -619,     0,     0,  1988,  -578,
03698        0,     0,  -619,     0,     0,  -619,  -619,     0,     0,     0,
03699        0,     0,     0,  -619,     0,     0,     0,     0,     0,     0,
03700     -619,     0,  -619,     0,     0,  -619,  2215,     0,     0,     0,
03701        0,     0,   524,     0,  -619,     0,  -619,     0,     0,  2221,
03702        0,  -619,     0,     0,     0,     0,     0,     0,     0,  -619,
03703        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03704     -619,     0,     0,     0,  -619,     0,  -619,     0,     0,     0,
03705        0,     0,     0,  -619,     0,     0,     0,     0,     0,     0,
03706        0,  -619,  -619,     0,     0,     0,     0,     0,  -619,     0,
03707        0,     0,     0,     0,     0,  -619,     0,     0,     0,  -619,
03708        0,     0,  -619,     0,     0,     0,     0,     0,     0,     0,
03709     -619,     0,     0,     0,  -619,     0,     0,     0,     0,     0,
03710        0,     0,     0,     0,  -578,     0,     0,     0,     0,     0,
03711        0,  -619,     0,     0,     0,     0,  -619,     0,     0,     0,
03712     -619,     0,     0,  -619,  -619,     0,     0,     0,     0,     0,
03713        0,   635,     0,  -619,     0,     0,     0,     0,  -619,     0,
03714     -619,     0,     0,     0,     0,     0,     0,     0,  -619,     0,
03715      947,     0,     0,   803,  -619,     0,     0,     0,  -619,     0,
03716        0,     0,     0,     0,     0,     0,  -619,  -619,     0,     0,
03717     -619,     0,     0,     0,     0,     0,  -619,     0,  -619,  -619,
03718        0,     0,  -619,  -619,  -619,     0,     0,     0,     0,  -619,
03719     -619,     0,     0,  -619,  -619,     0,     0,     0,     0,     0,
03720        0,  -619,     0,     0,  -619,     0,     0,     0,  -619,  -619,
03721     -619,     0,     0,  -619,  -619,     0,     0,     0,     0,     0,
03722        0,     0,   948,     0,     0,  -619,     0,     0,     0,     0,
03723        0,     0,     0,   525,     0,     0,  -619,   950,     0,     0,
03724        0,     0,     0,     0,     0,     0,   526,     0,  -619,     0,
03725     1068,     0,  -619,     0,  -619,     0,     0,   947,     0,     0,
03726      803,  -619,     0,  1168,  1169,  1170,     0,     0,     0,     0,
03727        0,  1171,     0,   567,   568,   569,   570,   571,   572,     0,
03728        0,     0,     0,  -619,     0,     0,     0,     0,     0,     0,
03729        0,     0,     0,     0,     0,     0,     0,     0,  -619,     0,
03730        0,     0,     0,     0,     0,     0,     0,   574,     0,   575,
03731      576,   577,   578,   579,   580,     0,     0,     0,     0,  -619,
03732        0,   951,     0,     0,     0,     0,     0,     0,  -619,   948,
03733        0,     0,   389,     0,     0,     0,     0,     0,     0,     0,
03734        0,  -619,     0,     0,   950,     0,  -619,     0,  -619,   581,
03735        0,     0,     0,     0,     0,     0,  -619,     0,     0,     0,
03736        0,     0,   952,     0,     0,     0,  -619,   953,     0,     0,
03737        0,   390,     0,   954,     0,  -619,   955,     0,   391,     0,
03738        0,     0,     0,     0,  -619,     0,  -619,  -619,     0,     0,
03739     -619,     0,  -619,     0,     0,     0,     0,  -619,     0,     0,
03740        0,  1172,  1173,     0,     0,     0,     0,     0,   956,     0,
03741        0,     0,  -619,     0,     0,     0,     0,  -619,     0,     0,
03742        0,     0,  -619,     0,     0,     0,     0,     0,   951,  1174,
03743        0,   582,     0,  -619,     0,  1175,     0,     0,     0,   389,
03744        0,   525,     0,     0,  -619,     0,     0,     0,     0,   392,
03745        0,     0,     0,     0,   526,     0,     0,     0,  1415,     0,
03746        0,     0,     0,     0,     0,     0,  1176,     0,     0,   952,
03747     1177,     0,     0,     0,   953,     0,   957,     0,   390,     0,
03748      954,   584,     0,   955,     0,   391,     0,     0,     0,     0,
03749        0,     0,     0,     0,   947,     0,     0,   803,  1178,  1179,
03750     1168,  1169,  1170,  1180,     0,     0,     0,     0,  1171,     0,
03751        0,     0,   393,  1181,     0,   956,     0,     0,   586,     0,
03752     1182,   958,   959,     0,     0,  1183,     0,   588,     0,     0,
03753        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03754      589,   394,     0,  1184,     0,     0,   960,     0,     0,     0,
03755        0,     0,     0,     0,     0,     0,   392,     0,     0,     0,
03756        0,     0,     0,     0,   961,     0,   948,     0,     0,     0,
03757        0,     0,   962,     0,   333,     0,     0,     0,     0,     0,
03758      395,   950,     0,   957,     0,     0,     0,     0,     0,     0,
03759        0,     0,     0,     0,     0,     0,   593,   594,   595,     0,
03760        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03761        0,     0,     0,     0,     0,     0,     0,     0,     0,   393,
03762        0,     0,     0,     0,     0,     0,     0,     0,   958,   959,
03763        0,     0,     0,     0,     0,     0,     0,     0,  1172,  1173,
03764        0,     0,     0,     0,     0,   597,   598,   599,   394,     0,
03765        0,     0,     0,   960,     0,     0,     0,     0,     0,     0,
03766        0,     0,     0,     0,     0,   951,  1174,     0,     0,     0,
03767        0,   961,  1175,     0,     0,     0,   389,     0,     0,   962,
03768        0,   333,     0,     0,     0,     0,     0,   395,  1185,  1186,
03769     1187,  1188,     0,  1189,     0,  1190,  1191,  1192,  1193,  1194,
03770        0,     0,     0,  1176,     0,     0,   952,  1177,     0,     0,
03771        0,   953,     0,     0,     0,   390,     0,   954,     0,     0,
03772      955,     0,   391,   639,     0,   640,     0,     0,     0,     0,
03773      641,     0,     0,     0,     0,  1178,  1179,     0,   642,     0,
03774     1180,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03775     1181,     0,   956,     0,     0,     0,     0,  1182,     0,     0,
03776        0,     0,  1183,     0,     0,     0,     0,     0,     0,     0,
03777      643,   644,     0,     0,     0,     0,     0,   645,     0,     0,
03778     1184,     0,     0,     0,     0,     0,     0,     0,   646,     0,
03779        0,   647,     0,   392,     0,     0,     0,     0,     0,     0,
03780        0,     0,     0,   648,   947,     0,     0,   803,     0,     0,
03781        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03782      957,     0,     0,     0,     0,   649,     0,     0,     0,     0,
03783        0,     0,   650,   651,     0,     0,     0,     0,     0,     0,
03784        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03785        0,     0,     0,     0,     0,     0,   393,     0,     0,     0,
03786        0,     0,     0,   652,     0,   958,   959,     0,     0,     0,
03787        0,     0,     0,     0,     0,   653,   948,     0,     0,   654,
03788        0,     0,     0,     0,     0,   394,     0,   949,     0,     0,
03789      960,   950,   655,     0,     0,     0,     0,     0,     0,   656,
03790        0,     0,   657,   658,     0,     0,     0,     0,   961,     0,
03791      659,     0,     0,     0,     0,     0,   962,   660,   333,   661,
03792        0,     0,   662,     0,   395,  1185,  1186,  1187,  1188,     0,
03793     1189,     0,  1190,  1191,  1192,  1193,  1194,     0,     0,     0,
03794        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03795        0,     0,     0,     0,     0,     0,     0,   663,   639,     0,
03796      640,   664,     0,   665,     0,   641,     0,     0,     0,     0,
03797      666,     0,     0,   642,     0,   951,     0,     0,     0,     0,
03798        0,     0,     0,     0,     0,     0,   389,   947,     0,     0,
03799      803,     0,   667,     0,     0,     0,     0,     0,     0,     0,
03800        0,     0,     0,     0,     0,   643,   644,   668,     0,     0,
03801        0,     0,   645,     0,     0,     0,   952,     0,     0,     0,
03802        0,   953,     0,   646,     0,   390,   647,   954,   669,     0,
03803      955,     0,   391,     0,     0,     0,     0,   670,   648,     0,
03804        0,   947,     0,     0,   803,     0,     0,     0,     0,     0,
03805      671,     0,     0,   947,     0,   672,   803,   673,     0,   948,
03806      649,     0,   956,     0,     0,   674,     0,   650,   651,     0,
03807     1027,     0,     0,     0,   950,   675,     0,     0,     0,     0,
03808        0,     0,     0,     0,   676,     0,     0,     0,     0,     0,
03809        0,     0,     0,   677,     0,   678,   679,     0,   652,   680,
03810        0,   681,     0,   392,     0,     0,   682,     0,     0,     0,
03811      653,     0,     0,   948,   654,     0,     0,     0,     0,     0,
03812        0,   683,     0,     0,  1072,   948,   684,   655,   950,     0,
03813      957,   685,     0,     0,   656,     0,     0,   657,   658,     0,
03814      950,     0,   686,     0,     0,   659,     0,     0,     0,     0,
03815        0,     0,   660,   687,   661,     0,     0,   662,   951,     0,
03816        0,     0,     0,   688,     0,     0,   393,     0,     0,   389,
03817        0,     0,     0,     0,     0,   958,   959,     0,     0,     0,
03818        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03819        0,     0,   663,     0,     0,   394,   664,     0,   665,   952,
03820      960,     0,     0,     0,   953,   666,     0,     0,   390,     0,
03821      954,     0,   951,   955,     0,   391,     0,     0,   961,     0,
03822        0,     0,   947,   389,   951,   803,   962,   667,   333,     0,
03823        0,     0,     0,     0,   395,   389,     0,     0,     0,     0,
03824        0,     0,   668,     0,     0,   956,     0,     0,     0,     0,
03825        0,     0,     0,   952,     0,     0,     0,     0,   953,     0,
03826        0,     0,   390,   669,   954,   952,     0,   955,     0,   391,
03827      953,     0,   670,     0,   390,     0,   954,     0,     0,   955,
03828        0,   391,     0,     0,     0,   671,   392,     0,     0,     0,
03829      672,     0,   673,     0,   948,     0,     0,     0,     0,   956,
03830      674,     0,     0,   947,     0,     0,   803,     0,     0,   950,
03831      675,   956,     0,   957,     0,   947,     0,     0,   803,   676,
03832        0,     0,     0,     0,     0,     0,     0,     0,   677,     0,
03833      678,   679,     0,     0,   680,     0,   681,     0,     0,     0,
03834      392,   682,     0,     0,     0,     0,     0,     0,     0,   393,
03835        0,     0,   392,     0,     0,     0,   683,     0,   958,   959,
03836        0,   684,     0,     0,     0,     0,   685,   957,     0,   947,
03837        0,     0,   803,     0,     0,   948,     0,   686,   394,   957,
03838        0,     0,     0,   960,     0,   803,     0,   948,   687,  1306,
03839      950,     0,     0,   951,     0,     0,     0,     0,     0,     0,
03840        0,   961,   950,   393,   389,     0,     0,     0,     0,   962,
03841        0,   333,   958,   959,     0,   393,     0,   395,     0,     0,
03842        0,     0,     0,     0,   958,   959,     0,     0,     0,     0,
03843        0,     0,   394,     0,   952,     0,     0,   960,     0,   953,
03844     1162,   948,     0,   390,   394,   954,     0,     0,   955,   960,
03845      391,     0,     0,     0,   948,   961,   950,     0,     0,     0,
03846        0,     0,     0,   962,     0,   333,     0,   961,     0,   950,
03847        0,   395,     0,     0,   951,   962,     0,   333,     0,     0,
03848      956,     0,     0,   395,     0,   389,   951,     0,     0,     0,
03849        0,     0,     0,     0,     0,     0,     0,   389,   947,     0,
03850        0,   803,     0,     0,     0,     0,     0,     0,     0,     0,
03851        0,     0,     0,     0,     0,   952,     0,     0,     0,     0,
03852      953,   392,     0,     0,   390,     0,   954,   952,     0,   955,
03853        0,   391,   953,     0,     0,     0,   390,     0,   954,     0,
03854      951,   955,     0,   391,     0,     0,     0,     0,   957,     0,
03855        0,   389,     0,   951,     0,     0,     0,     0,     0,     0,
03856        0,   956,     0,     0,   389,     0,     0,     0,     0,     0,
03857      948,     0,     0,   956,     0,     0,     0,     0,     0,     0,
03858        0,   952,     0,     0,   393,   950,   953,     0,     0,     0,
03859      390,     0,   954,   958,   959,   955,     0,   391,     0,     0,
03860        0,     0,   392,   390,     0,   954,     0,     0,   955,     0,
03861      391,     0,     0,   394,   392,     0,     0,     0,   960,     0,
03862        0,     0,     0,     0,     0,     0,     0,   956,     0,   957,
03863        0,     0,     0,     0,     0,     0,   961,     0,     0,     0,
03864      956,   957,     0,     0,   962,     0,   333,     0,     0,     0,
03865        0,     0,   395,     0,     0,     0,     0,     0,     0,  1529,
03866        0,     0,     0,     0,     0,   393,     0,     0,   392,   951,
03867        0,     0,  1658,     0,   958,   959,     0,   393,     0,     0,
03868      389,   392,     0,     0,     0,     0,   958,   959,     0,     0,
03869        0,     0,     0,     0,   394,   957,     0,     0,     0,   960,
03870        0,     0,     0,     0,     0,     0,   394,     0,   957,     0,
03871      952,   960,     0,     0,     0,   953,     0,   961,     0,   991,
03872        0,   954,     0,     0,   955,   962,   391,   333,     0,   961,
03873        0,   393,     0,   395,     0,     0,     0,   962,     0,   333,
03874      958,   959,     0,     0,   393,   395,     0,     0,     0,     0,
03875        0,     0,     0,   958,   959,     0,   956,     0,     0,     0,
03876      394,     0,     0,     0,     0,   960,     0,   948,     0,     0,
03877        0,     0,     0,   394,     0,     0,     0,     0,   960,     0,
03878        0,     0,   950,   961,     0,     0,     0,     0,     0,     0,
03879        0,   962,     0,   333,     0,     0,   961,   392,     0,   395,
03880        0,   565,     0,     0,   962,     0,   333,     0,     0,     0,
03881        0,     0,   395,   566,     0,     0,   567,   568,   569,   570,
03882      571,   572,   573,     0,   957,     0,     0,     0,     0,     0,
03883        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03884        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03885      574,     0,   575,   576,   577,   578,   579,   580,     0,     0,
03886      393,     0,     0,     0,     0,     0,   951,     0,     0,   958,
03887      959,     0,     0,     0,     0,     0,     0,   389,     0,     0,
03888        0,     0,     0,     0,     0,     0,     0,     0,     0,   394,
03889        0,     0,   581,     0,   960,     0,     0,     0,     0,     0,
03890        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03891        0,     0,   961,     0,     0,     0,   390,     0,   954,     0,
03892      962,   955,   333,   391,     0,     0,     0,     0,   395,     0,
03893        0,     0,     0,  1557,     0,  1558,     0,     0,  1559,   567,
03894      568,   569,   570,   571,   572,   573,  1560,  1561,  1562,     0,
03895        0,     0,     0,   956,     0,     0,     0,     0,     0,     0,
03896        0,     0,     0,     0,     0,     0,  1563,     0,     0,     0,
03897        0,     0,     0,   574,   582,   575,   576,   577,   578,   579,
03898      580,     0,     0,     0,     0,     0,     0,    40,     0,     0,
03899      583,     0,     0,     0,   392,     0, -1498,     0,     0,     0,
03900        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03901        0,     0,     0,     0,     0,   581,     0,     0,     0,   948,
03902        0,   957,     0,     0,   584,     0,     0,     0,     0,     0,
03903        0,     0,     0,     0,   950,     0,     0,     0,     0,     0,
03904        0,     0,     0,     0,     0,     0,   585,     0,     0,     0,
03905        0,     0,     0,     0,     0,  1564,     0,   393,     0,     0,
03906        0,   586,     0,     0,     0,     0,   958,   959,   587,     0,
03907      588,     0,     0,  1565,     0,     0,  1566,  1567,     0,     0,
03908        0,     0,     0,   589,     0,     0,   394,     0,     0,     0,
03909     1568,   960,     0,   590,     0,     0,     0,   582,     0,     0,
03910      591,     0,     0,     0,     0,     0,     0,     0,     0,   961,
03911        0,     0,     0,   583,     0,     0,     0,   962,   951,   333,
03912        0,     0,     0,     0,     0,   395,     0,  1569,     0,   389,
03913        0,   948,     0,     0,     0,     0,  1570,   592,     0,   593,
03914      594,   595,     0,     0,     0,     0,   950,   584,     0,     0,
03915        0,     0,     0,     0,     0,     0,     0,     0,     0,  1110,
03916        0,     0,     0,   596,   953,     0,     0,     0,   390,  1571,
03917      954,     0,     0,   955,     0,   391,     0,     0,     0,     0,
03918    -1498,     0,     0,  1572,   586,     0,     0,     0,   597,   598,
03919      599,   587,     0,   588,     0,     0,     0,     0,     0,     0,
03920        0,   600,     0,     0,   601,   956,   589,  1573,     0,     0,
03921        0,   948,     0,     0,     0,   567,   568,   569,   570,   571,
03922      572,   573,     0,  -317,     0,     0,   950,     0,     0,     0,
03923      951,  1574,     0,     0,     0,     0,  1575,     0,     0,     0,
03924        0,   389,  1955,  1956,     0,     0,   392,     0,     0,   574,
03925     1576,   575,   576,   577,   578,   579,   580,     0,     0,     0,
03926      592,     0,   593,   594,   595,     0,     0,     0,     0,     0,
03927        0,  1110,     0,   957,     0,     0,   953,     0,     0,     0,
03928      390,     0,   954,     0,     0,   955,     0,   391,     0,     0,
03929        0,   581,     0,     0,     0,     0,  1577,     0,     0,     0,
03930        0,     0,     0,     0,     0,     0,     0,  1578,     0,   393,
03931      951,   597,   598,   599,     0,     0,     0,   956,   958,   959,
03932        0,   389,     0,     0,   600,     0,  1579,   601,     0,     0,
03933        0,     0,     0,     0,     0,     0,     0,     0,   394,     0,
03934        0,     0,     0,   960,     0,     0,  1580,     0,     0,     0,
03935        0,  1110,     0,     0,     0,     0,   953,     0,   392,     0,
03936      390,   961,   954,     0,  1957,   955,     0,   391,     0,   962,
03937        0,   333,     0,   582,     0,     0,     0,   395,  1111,  1112,
03938        0,     0,     0,     0,     0,   957,  1113,  1602,     0,   583,
03939        0,     0,     0,     0,     0,     0,     0,   956,     0,     0,
03940        0,     0,     0,  1958,  1959,     0,     0,     0,     0,     0,
03941        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03942        0,   393,     0,   584,     0,     0,     0,     0,  1960,     0,
03943      958,   959,     0,     0,     0,     0,     0,     0,   392,     0,
03944        0,     0,     0,     0,     0,   585,     0,     0,     0,     0,
03945      394,     0,     0,     0,     0,   960,     0,     0,     0,     0,
03946      586,     0,     0,     0,     0,   957,     0,   587,     0,   588,
03947        0,     0,  1961,   961,     0,     0,     0,     0,     0,     0,
03948        0,   962,   589,   333,     0,     0,     0,     0,     0,   395,
03949     1111,  1112,     0,     0,     0,     0,     0,     0,  1113,  1817,
03950        0,   393,     0,     0,     0,     0,     0,     0,     0,     0,
03951      958,   959,     0,     0,     0,     0,     0,     0,     0,     0,
03952        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03953      394,     0,     0,     0,     0,   960,   592,     0,   593,   594,
03954      595,     0,     0,     0,     0,  1962,     0,     0,     0,     0,
03955        0,     0,     0,   961,     0,     0,     0,     0,     0,  1963,
03956        0,   962,     0,   333,     0,     0,     0,     0,     0,   395,
03957     1111,  1112,     0,     0,     0,     0,     0,     0,  1113,     0,
03958        0,     0,  1964,     0,     0,     0,     0,   597,   598,   599,
03959        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03960      600,     0,     0,   601,  1965,     0,     0,     0,     0,     0,
03961        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03962        0,     0,  1966
03963 };
03964 
03965 static const short yycheck[] =
03966 {
03967       83,   165,   364,   621,   657,   601,   236,   478,   805,   410,
03968      480,  1095,   831,  1267,  1068,  1177,   686,   590,   259,   826,
03969      261,   627,   263,  1062,   188,   189,   190,   828,   192,   836,
03970      194,   844,   185,  1496,   769,   827,  1376,  1377,   191,   259,
03971      962,   261,  1052,   263,   857,  1644,   564,    13,  1162,   433,
03972        9,     9,  1010,   330,    17,   984,  1334,   210,     6,  1334,
03973     1018,  1334,   226,  1231,   228,     6,   149,  1222,  1223,  1224,
03974     1253,   235,     6,   544,  1334,  1334,  1334,    27,   825,   243,
03975       22,   311,   323,    58,    67,    17,   833,   834,   318,    81,
03976      331,   255,   256,     9,   258,    91,    53,   338,   262,     6,
03977     1139,   848,   849,   323,    47,    71,  1064,    91,     6,    84,
03978       85,   331,   265,   266,  1228,   862,   863,    55,   338,   396,
03979      143,    87,    69,    11,   365,   116,   290,    60,  1138,   293,
03980      294,   361,   296,   115,    48,  1271,    67,   175,   368,    55,
03981       55,    69,   115,  1777,  1258,   365,   165,   367,   312,   165,
03982      947,   381,  1335,   207,    67,   952,   164,   627,    67,   109,
03983     1429,    67,   564,  1762,   866,   329,   116,   115,    56,  1098,
03984       63,     9,    48,  1356,   227,   162,  1445,     9,   408,    29,
03985      798,    55,   412,   403,   425,   290,    48,   464,   341,   272,
03986      227,   117,  1306,   756,   200,    21,    88,    47,    63,   363,
03987      227,   227,    82,    91,    92,   425,    94,   371,  1133,   207,
03988      144,   290,  1009,   211,   102,   207,   374,    22,   965,   108,
03989       82,    48,   269,  1563,  1493,   315,   231,   974,   846,  1569,
03990       30,  1360,   207,  1765,   112,  1245,   466,  1935,  1367,  1937,
03991       21,   227,  1326,   239,   628,  1374,   993,  1060,    39,   479,
03992      180,   167,   242,  1721,   772,   101,   420,  1311,   165,    27,
03993      206,   309,   269,   346,  1533,   207,   349,   919,   156,   227,
03994      101,   112,    24,    29,   169,   439,   440,   300,   169,  1462,
03995     1027,   511,   117,   990,   312,     0,   516,   231,  1456,   392,
03996     2211,  1459,   227,  1407,   309,     9,   311,  1307,    36,   295,
03997      216,   521,   522,     8,   104,   239,   924,   251,   283,  2230,
03998      256,   475,   908,  1110,   249,   362,   364,   365,   168,   309,
03999      270,   311,  1069,   169,   429,   430,   161,  1074,   362,    34,
04000     1367,  1289,   337,   939,   424,   181,   500,  1374,   227,  1046,
04001      228,   109,   445,  1162,   508,   503,  1275,   238,   278,   227,
04002      429,   227,     9,   339,   289,   585,  1366,   344,  1890,   224,
04003      407,   934,   935,   370,   120,   312,  1420,   350,   396,   107,
04004      772,   591,   124,   407,   937,   938,   203,   430,  2076,   543,
04005      306,   851,   227,   436,   548,     9,   227,   551,   552,   443,
04006      554,   555,  1661,   430,   558,   227,   311,  1436,   291,  1101,
04007     1052,   315,   207,   430,   430,   443,  1213,   430,   395,  1228,
04008     1546,   430,  2046,   251,   430,  1162,     9,   423,  1886,   350,
04009      353,  1889,   430,  1230,   319,    49,   291,   227,   354,   321,
04010     1355,   413,   430,   425,   430,   315,   600,   350,   429,  1258,
04011      413,   350,  1255,   234,   350,   393,   430,  1239,  1195,   396,
04012     1408,   277,   393,   315,   342,   393,   399,   385,   390,  1111,
04013     1112,  1113,    55,   446,   427,   413,   423,   828,   443,  1121,
04014      308,   430,   430,   211,   188,  1485,  1939,  1269,   444,   429,
04015     1227,  1228,   430,  1612,   400,   846,  1138,  1306,   430,   430,
04016      851,  1143,   384,  1145,   382,  1147,   430,  1149,  1752,  1151,
04017     1152,  1153,  1154,  1155,  1156,  1157,  1158,  1517,  1126,  1787,
04018      424,  1258,  1787,   227,  1787,   446,  1460,   758,   759,  1172,
04019      234,  1465,   429,   430,   765,  1317,   803,  1787,  1787,  1787,
04020     1698,   188,   430,   446,  1492,  1690,   756,   446,   758,   759,
04021      446,   430,   430,    48,   424,   765,  1293,  1816,  1018,   399,
04022     1297,  1298,   430,  1300,   430,   443,   940,   431,   919,  1306,
04023      436,   160,   424,    48,   188,  2033,  1036,  1274,   394,  1142,
04024      227,  1134,   398,  2036,   167,  1612,  1149,   234,    67,   429,
04025      162,  1695,   746,  1697,   748,   430,  1104,  2186,  1407,   430,
04026      820,   305,  1775,  1245,   218,   188,   227,  1332,   429,   430,
04027     1869,   200,  1871,   227,   768,   191,   133,   827,   231,   208,
04028      234,   157,  1666,   394,  1810,  1955,   354,   398,  1732,   259,
04029      227,   120,   176,   216,   227,   919,  1418,   847,   251,    60,
04030     1899,   851,   239,   853,   227,   855,   856,   231,   858,   443,
04031      358,   234,    67,   133,   242,   231,   887,   239,   305,   193,
04032     1764,    31,   833,   873,   368,  1307,   180,   251,   216,   936,
04033      161,  1930,  1931,   904,  1237,   251,   111,   887,   216,   242,
04034      890,   193,   443,  1279,   180,  1036,   283,  1283,  1491,   278,
04035      181,   305,   863,   397,   904,  1337,  2149,   917,   238,   407,
04036      953,   114,  1344,  1345,  1346,  1347,  1348,  1349,  1350,   302,
04037      231,  1711,   922,   144,   236,  1663,  1635,  1636,  1637,   173,
04038      180,   368,   305,    26,  1366,   978,   430,   937,   938,   180,
04039      251,  1643,   436,   267,   443,   180,  1648,  1649,   180,   882,
04040     1652,  1653,  1654,   279,  1656,  1657,  1680,  1681,  1208,   289,
04041      397,   905,   340,   217,   368,  1799,    29,   301,  1692,   832,
04042     1111,  1112,  1113,   275,   253,  1809,  1810,  1427,    11,  1769,
04043     1121,    67,   344,   227,  1337,  1566,   394,   340,   300,   852,
04044      398,   854,  1730,   397,   301,   368,   859,  1524,   158,   436,
04045       63,   238,  1143,   236,  1145,   868,  1147,   227,  1149,   429,
04046     1151,  1152,  1153,  1154,  1155,  1156,  1157,  1158,     9,   430,
04047        4,   393,   919,    56,   397,   236,   429,   400,  1278,  1382,
04048      315,   301,   436,  1466,   338,    19,   348,  1111,  1112,  1113,
04049     2016,  2017,  1475,   430,    28,   331,   331,  1121,  1048,   436,
04050      315,   430,   289,  1485,  1486,   429,   430,   430,    91,    92,
04051      426,    94,   400,   436,    55,   443,   331,   300,  1318,   102,
04052      295,  1145,   400,  2107,  1095,   235,    60,  1151,  1152,  1153,
04053     1154,   350,   336,  1157,  1158,  1517,   191,   192,   338,   300,
04054      236,  2140,  2141,  1103,   231,  1095,  1695,   338,  1697,   331,
04055      358,    24,    25,   338,  1047,    11,  1830,   437,   438,   188,
04056      173,   358,  1699,   366,   251,   348,  2058,   249,  2060,   150,
04057      151,  1845,   985,   156,   439,   440,   231,   442,   195,  1948,
04058      358,   443,    12,  1732,  1134,    15,    16,   348,   855,   424,
04059     1083,    64,   353,    66,  1868,   350,   251,   178,   227,   407,
04060     1094,  1875,    96,   184,   300,   234,   873,   224,   443,   424,
04061      407,   224,   294,  1750,    70,  1764,   181,  1520,   437,   438,
04062      439,   440,  1605,   442,    97,    98,    99,   446,   443,   407,
04063     2214,   443,  2016,  2017,   215,  1909,  1910,  1437,   219,   265,
04064      160,   444,   207,   289,  1918,   228,  1337,   188,   294,   204,
04065      437,   438,   348,  1344,  1345,  1346,  1347,  1348,  1349,  1350,
04066      443,   195,  1739,  1645,  1111,  1112,  1113,   358,  1650,   430,
04067       79,   144,   227,   146,  1121,   216,   305,     8,   291,  1511,
04068      200,   154,   437,   438,   439,   440,   227,   442,   208,  1239,
04069      224,   446,   309,   234,  1526,  1495,  1143,   231,  1145,   316,
04070     1147,   327,   346,    34,  1151,  1152,  1153,  1154,  1155,  1156,
04071     1157,  1158,   114,   231,   350,   163,   407,  2131,   443,  1269,
04072     1344,  1345,  1346,  1347,  1348,  1349,  1350,   224,   225,  1711,
04073       78,  1531,  2006,   251,   188,   297,  2010,  1719,  1538,   368,
04074      120,   367,   276,   369,   268,    93,   270,   443,   282,   161,
04075      430,  2025,   225,   201,   443,  1326,  1327,  1488,   278,   342,
04076     1837,   209,  1710,   443,   305,   412,   239,  1317,   397,   181,
04077       46,   426,   429,   227,   429,   309,  1326,  1327,   425,  2053,
04078      234,  2055,   316,    59,   443,   469,   443,  1769,   148,   188,
04079      474,   443,  2066,  1792,   346,   329,   314,   286,   287,   382,
04080      114,   437,   438,   439,   440,   443,   442,   436,  1807,  1808,
04081      446,   300,  2086,  2087,   244,   245,   301,  1765,   218,   353,
04082       96,   153,   356,   223,   129,   157,   206,   368,   227,   177,
04083      364,   300,   262,   263,   394,   234,  1963,   443,   398,   188,
04084      374,    32,   260,   261,    35,  1922,   206,   430,   309,   443,
04085      311,   305,    43,    44,    45,   346,   397,   346,     2,   400,
04086      155,   395,     6,   444,   159,   118,   447,   448,  1418,    86,
04087       87,   432,  2021,   253,  2023,  1566,   256,   277,   227,   227,
04088     1394,   229,   163,  1397,   232,   234,   346,   405,  1402,   430,
04089      260,   261,  2166,   110,   254,   436,   256,  1344,  1345,  1346,
04090     1347,  1348,  1349,  1350,   230,   147,   305,   149,   255,   443,
04091      257,   429,   331,   309,   368,   311,   264,     6,   391,     9,
04092        9,   430,    12,   224,   225,    15,    16,   147,  1729,   149,
04093      443,   207,   443,   443,  1734,   188,   212,   443,   443,   349,
04094     1740,   443,  1890,   397,   209,   395,   222,   443,   346,  1948,
04095      430,   226,   352,   430,  1645,   443,   305,   430,  1143,  1650,
04096      443,   152,  1147,   175,   273,   443,  2043,    23,   385,   368,
04097     1155,  1156,   443,   346,   227,   362,   430,   322,  1549,   170,
04098      207,   234,   436,   101,   332,   437,   438,   439,   440,    78,
04099      442,   430,   443,   246,  1554,   374,   187,   449,     6,  1549,
04100     1801,     9,  2001,   357,    93,   437,   438,   439,   440,    55,
04101      442,  1571,    81,  2012,   169,   443,  2015,   449,  1589,   368,
04102      341,  1645,   437,   438,   439,   440,  1650,   442,   346,   377,
04103      378,  1525,   362,   309,   310,   430,  1607,   436,   273,  1589,
04104       48,   103,   233,   227,   204,   353,   322,   240,   324,   443,
04105       65,   443,   305,   430,   402,   346,  1550,  1607,   443,   240,
04106       22,   150,   267,   430,  1558,   443,  2143,   284,   285,  2146,
04107       78,  1565,   420,   227,    82,   291,  1647,   443,   443,    80,
04108      428,    80,   430,   425,   307,    93,   430,   436,   177,   280,
04109      430,   437,   438,   439,   440,   393,   442,  1647,   390,   188,
04110      446,   225,    30,   430,    32,   193,   309,    35,   325,   326,
04111      416,   417,   418,   419,   393,   368,   354,    45,   371,   372,
04112     2197,    54,  1616,  2122,   374,  1619,   429,    36,  2127,   218,
04113      437,   438,   439,   440,   223,   442,    26,   181,   227,   446,
04114      229,   362,   333,   232,   443,   234,   443,   346,   424,   443,
04115      374,   211,   343,   430,   244,   245,   354,   218,  2235,   437,
04116      438,   439,   440,   427,   442,   336,   207,   443,   446,   177,
04117      227,   103,   262,   263,   296,   264,   371,   277,  2104,   271,
04118      188,   436,   393,   436,  2132,   824,   445,    26,   390,   828,
04119      416,   417,   418,   419,   833,   352,   267,   168,  1645,   838,
04120      839,   450,   443,  1650,   443,   844,   845,   846,   430,   227,
04121      218,   130,   851,   404,   101,   223,   305,    17,   857,   227,
04122      429,   229,   166,  1783,   232,   181,   234,   866,   867,  1723,
04123      869,   437,   438,   439,   440,   445,   442,   227,   390,   392,
04124      446,    29,   170,   332,   121,   445,   174,   122,   445,  2232,
04125     2233,   416,   417,   418,   419,   445,   264,   445,   445,   187,
04126      445,   269,   445,   437,   438,   439,   440,  1959,   442,   445,
04127      445,   198,   446,   437,   438,   439,   440,   445,   442,   368,
04128      919,    55,   446,   445,   393,   423,   124,   338,   377,   378,
04129      309,   126,    95,   127,   389,  1789,   393,   305,   131,    48,
04130     1794,   392,   132,   390,   387,   233,   392,   315,   397,   173,
04131      949,   137,   425,   402,   239,    48,   140,   173,   323,   106,
04132      370,  1734,   270,   108,   332,  1896,   108,   429,   393,   430,
04133      180,   420,   299,   331,   388,   227,   415,   157,   128,   428,
04134      165,   430,    78,   427,   393,   984,  1896,   436,   203,   427,
04135      356,   393,   280,    48,   362,   444,  1850,    93,   211,   173,
04136      368,   203,  1856,   116,   270,   186,   442,   355,   435,   377,
04137      378,  1010,   260,   224,   211,   434,   304,   331,    78,  1018,
04138     1019,   393,   446,   446,   363,   125,   256,   255,   446,   397,
04139       17,   446,   321,    93,   402,   390,   180,  1036,    48,   407,
04140      328,   393,   132,     8,   173,   333,   427,   120,   393,     9,
04141      427,   297,   420,  1052,   298,   343,   424,   167,   195,   347,
04142      428,  1060,   430,  1983,   319,  1064,   258,   334,   436,   119,
04143      259,   424,   104,  1072,    48,   171,  1075,   424,   169,   275,
04144      253,   177,   135,   252,   136,   231,   290,   138,   279,   107,
04145      384,   274,     7,   110,   213,    64,   394,  1951,   123,  1098,
04146      318,   318,  1101,   130,    96,    48,   231,   211,  1962,   139,
04147     1964,   171,  1111,  1112,  1113,    90,   404,   177,   257,   142,
04148       87,   254,  1121,   185,   196,   214,   414,   427,   430,  2039,
04149       48,   227,   396,   229,   334,   380,   232,   231,   297,  1138,
04150      141,  1995,  1996,   231,  1143,   173,  1145,   168,  1147,   412,
04151      134,   283,  1151,  1152,  1153,  1154,  1155,  1156,  1157,  1158,
04152      274,   297,   274,    48,   150,   150,     6,   227,   264,   229,
04153       21,    53,   232,   182,  2094,   128,   317,   167,  2109,   177,
04154      196,  1290,   460,   537,  1084,   132,  1779,   396,   887,   549,
04155      893,  2045,  1733,   212,  2114,  2115,   107,   346,    48,  2109,
04156     2131,   149,   217,   819,   264,   522,   284,   797,  1591,   924,
04157     1787,  2129,   907,  1978,   505,  2115,   772,   120,  1668,   442,
04158      533,  2131,  1737,  1379,  1631,   993,     6,   998,  1378,     9,
04159     1666,  1233,  1459,  1863,  1698,  1230,   332,  1880,  1248,  1719,
04160     1483,  2095,  2096,  1036,  1318,  2099,  1245,  1738,  1242,  1507,
04161     1283,  1754,  2106,  1058,  1060,   858,  1255,  1538,  2178,  2179,
04162     1069,  1538,  2182,  1933,  2184,  1609,  1745,  1938,  2046,  1268,
04163     1202,  1195,   332,  2204,  1048,  1944,  1275,  1923,  1923,  1434,
04164      920,   377,   378,  1282,  1923,  1520,   224,   292,  1167,  1253,
04165     1289,   387,   802,  2147,  2204,   556,   929,  2133,    78,   762,
04166       56,  2211,  1301,  1795,  2224,  1124,   402,    -1,  1307,    -1,
04167       -1,    -1,  2085,    93,  1313,    -1,   412,   377,   378,    -1,
04168     2230,    -1,    -1,    -1,   420,    -1,  2180,   387,    -1,   425,
04169     1329,    -1,   428,   429,   430,    -1,    -1,    -1,    -1,    -1,
04170       -1,    -1,   402,    -1,    -1,  1344,  1345,  1346,  1347,  1348,
04171     1349,  1350,   412,    -1,    -1,    -1,    -1,    -1,    -1,  2213,
04172      420,    -1,    -1,   143,    -1,   425,    -1,  1366,   428,   429,
04173      430,    -1,    -1,    -1,    -1,  2148,    -1,    -1,    -1,    -1,
04174       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1386,    -1,    -1,
04175       -1,    -1,    -1,    -1,    -1,    -1,    -1,   177,    -1,    -1,
04176       -1,    -1,    -1,     6,    -1,    -1,     9,    -1,   188,  1408,
04177       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04178       -1,    -1,  1421,  1422,    -1,    -1,    29,    -1,    -1,    -1,
04179       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   218,  2212,
04180       -1,    -1,    -1,   223,    -1,    -1,    -1,   227,    -1,   229,
04181       -1,    -1,   232,    -1,   234,    -1,    -1,    -1,    -1,    -1,
04182       63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04183       -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
04184       -1,    -1,    -1,    -1,   264,    -1,  1485,  1486,    -1,    -1,
04185       93,    -1,  1491,  1492,    -1,    -1,    -1,    -1,    -1,    -1,
04186       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04187     1509,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1517,    -1,
04188       -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,    -1,
04189       -1,    -1,    -1,  1532,    -1,    -1,    -1,    -1,  1537,  1538,
04190       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04191        1,    -1,   332,    -1,    -1,     6,    -1,    -1,     9,    -1,
04192       -1,    12,    13,    14,    -1,    -1,    -1,  1566,    -1,    20,
04193       -1,    -1,    -1,    -1,   177,    -1,    -1,    -1,  1577,    -1,
04194     1579,    -1,    -1,    -1,    -1,   188,    -1,    -1,   368,    -1,
04195       -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,   378,    -1,
04196       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04197       -1,    -1,    -1,    -1,   394,   218,    -1,   397,   398,    -1,
04198      223,   224,   402,    -1,   227,    -1,   229,    78,    -1,   232,
04199       -1,   234,    -1,    -1,    -1,    -1,  1635,  1636,  1637,    -1,
04200      420,    -1,    93,    -1,    -1,    -1,  1645,    -1,   428,    -1,
04201      430,  1650,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
04202       -1,   264,    -1,    -1,  1663,    -1,    -1,    -1,    -1,    -1,
04203       -1,    -1,    -1,     6,    -1,    -1,     9,    -1,    -1,    -1,
04204       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   291,    -1,
04205       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   150,
04206      151,    -1,   305,    -1,    -1,  1704,    -1,    -1,    -1,    -1,
04207       -1,  1710,  1711,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04208     1719,    -1,    -1,    -1,    -1,    -1,   177,   178,    -1,   332,
04209       -1,  1730,    -1,   184,    -1,    -1,    -1,   188,    -1,  1738,
04210       -1,    -1,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
04211       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04212       93,    -1,    -1,    -1,   215,   368,  1765,   218,   219,    -1,
04213     1769,    -1,   223,   106,   377,   378,   227,    -1,   229,    -1,
04214       -1,   232,    -1,   234,    -1,    -1,    -1,    -1,    -1,  1788,
04215       -1,    -1,    -1,  1792,   397,    -1,   247,   248,    -1,   402,
04216       -1,   252,    -1,    -1,    -1,    -1,    -1,    -1,  1807,  1808,
04217       -1,   262,    -1,   264,    -1,    -1,    -1,   420,   269,    -1,
04218       -1,    -1,    -1,   274,    -1,   428,    -1,   430,    -1,    -1,
04219       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,
04220       -1,   292,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,
04221       -1,    -1,    -1,    -1,   305,   188,    -1,    -1,    -1,    -1,
04222       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04223      203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04224       -1,   332,    -1,    -1,    -1,   218,    -1,    -1,    -1,    -1,
04225      223,  1890,    -1,    -1,   227,    -1,   229,    -1,    -1,   232,
04226       -1,   234,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04227       -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,
04228       -1,    -1,    -1,    -1,    -1,    -1,   377,   378,    -1,    -1,
04229     1929,   264,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04230       -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,    -1,  1948,
04231       -1,   402,    -1,     0,     1,    -1,     3,    -1,     5,    -1,
04232       -1,    -1,    -1,    10,    -1,    -1,  1965,    -1,    -1,   420,
04233       -1,    18,   305,    -1,    -1,    -1,    -1,   428,    -1,   430,
04234       -1,    -1,    -1,    -1,    -1,   436,   437,   438,   439,   440,
04235       -1,   442,    -1,   444,   445,   446,   447,   448,    -1,   332,
04236       -1,    -1,  2001,    50,    51,    -1,    -1,    -1,    -1,    -1,
04237       57,    -1,    -1,  2012,    -1,    -1,  2015,    -1,    -1,    -1,
04238       -1,    68,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,
04239       -1,    -1,    -1,    -1,    -1,   368,    83,    -1,    -1,    -1,
04240       -1,    -1,    -1,    -1,   377,   378,    -1,    -1,    -1,    -1,
04241       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   105,    -1,
04242       -1,    -1,    -1,    -1,   397,   112,   113,    -1,    -1,   402,
04243       -1,    -1,    -1,    -1,    -1,    -1,  2075,    -1,    -1,  2078,
04244       -1,    -1,   129,    -1,    -1,    -1,   133,   420,    -1,    -1,
04245       -1,    -1,    -1,    -1,    -1,   428,   143,   430,    -1,    -1,
04246       -1,    -1,    -1,   436,    -1,    -1,    -1,    -1,   155,  2108,
04247       -1,    -1,   159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04248       -1,    -1,    -1,  2122,    -1,   172,    -1,    -1,  2127,   176,
04249       -1,    -1,   179,    -1,    -1,   182,   183,    -1,    -1,    -1,
04250       -1,    -1,    -1,   190,    -1,    -1,    -1,    -1,    -1,    -1,
04251      197,    -1,   199,    -1,    -1,   202,  2155,    -1,    -1,    -1,
04252       -1,    -1,     1,    -1,     3,    -1,     5,    -1,    -1,  2168,
04253       -1,    10,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,
04254       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04255      237,    -1,    -1,    -1,   241,    -1,   243,    -1,    -1,    -1,
04256       -1,    -1,    -1,   250,    -1,    -1,    -1,    -1,    -1,    -1,
04257       -1,    50,    51,    -1,    -1,    -1,    -1,    -1,    57,    -1,
04258       -1,    -1,    -1,    -1,    -1,   272,    -1,    -1,    -1,    68,
04259       -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04260      287,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,    -1,
04261       -1,    -1,    -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,
04262       -1,   308,    -1,    -1,    -1,    -1,   105,    -1,    -1,    -1,
04263      317,    -1,    -1,   112,   113,    -1,    -1,    -1,    -1,    -1,
04264       -1,   120,    -1,   330,    -1,    -1,    -1,    -1,   335,    -1,
04265      337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,
04266        6,    -1,    -1,     9,   143,    -1,    -1,    -1,   355,    -1,
04267       -1,    -1,    -1,    -1,    -1,    -1,   155,   364,    -1,    -1,
04268      159,    -1,    -1,    -1,    -1,    -1,   373,    -1,   375,   376,
04269       -1,    -1,   379,   172,   381,    -1,    -1,    -1,    -1,   386,
04270      179,    -1,    -1,   182,   183,    -1,    -1,    -1,    -1,    -1,
04271       -1,   190,    -1,    -1,   401,    -1,    -1,    -1,   197,   406,
04272      199,    -1,    -1,   202,   411,    -1,    -1,    -1,    -1,    -1,
04273       -1,    -1,    78,    -1,    -1,   422,    -1,    -1,    -1,    -1,
04274       -1,    -1,    -1,   430,    -1,    -1,   433,    93,    -1,    -1,
04275       -1,    -1,    -1,    -1,    -1,    -1,   443,    -1,   237,    -1,
04276      106,    -1,   241,    -1,   243,    -1,    -1,     6,    -1,    -1,
04277        9,   250,    -1,    12,    13,    14,    -1,    -1,    -1,    -1,
04278       -1,    20,    -1,    36,    37,    38,    39,    40,    41,    -1,
04279       -1,    -1,    -1,   272,    -1,    -1,    -1,    -1,    -1,    -1,
04280       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,    -1,
04281       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    -1,    72,
04282       73,    74,    75,    76,    77,    -1,    -1,    -1,    -1,   308,
04283       -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,   317,    78,
04284       -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04285       -1,   330,    -1,    -1,    93,    -1,   335,    -1,   337,   112,
04286       -1,    -1,    -1,    -1,    -1,    -1,   345,    -1,    -1,    -1,
04287       -1,    -1,   218,    -1,    -1,    -1,   355,   223,    -1,    -1,
04288       -1,   227,    -1,   229,    -1,   364,   232,    -1,   234,    -1,
04289       -1,    -1,    -1,    -1,   373,    -1,   375,   376,    -1,    -1,
04290      379,    -1,   381,    -1,    -1,    -1,    -1,   386,    -1,    -1,
04291       -1,   150,   151,    -1,    -1,    -1,    -1,    -1,   264,    -1,
04292       -1,    -1,   401,    -1,    -1,    -1,    -1,   406,    -1,    -1,
04293       -1,    -1,   411,    -1,    -1,    -1,    -1,    -1,   177,   178,
04294       -1,   194,    -1,   422,    -1,   184,    -1,    -1,    -1,   188,
04295       -1,   430,    -1,    -1,   433,    -1,    -1,    -1,    -1,   305,
04296       -1,    -1,    -1,    -1,   443,    -1,    -1,    -1,   207,    -1,
04297       -1,    -1,    -1,    -1,    -1,    -1,   215,    -1,    -1,   218,
04298      219,    -1,    -1,    -1,   223,    -1,   332,    -1,   227,    -1,
04299      229,   244,    -1,   232,    -1,   234,    -1,    -1,    -1,    -1,
04300       -1,    -1,    -1,    -1,     6,    -1,    -1,     9,   247,   248,
04301       12,    13,    14,   252,    -1,    -1,    -1,    -1,    20,    -1,
04302       -1,    -1,   368,   262,    -1,   264,    -1,    -1,   281,    -1,
04303      269,   377,   378,    -1,    -1,   274,    -1,   290,    -1,    -1,
04304       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04305      303,   397,    -1,   292,    -1,    -1,   402,    -1,    -1,    -1,
04306       -1,    -1,    -1,    -1,    -1,    -1,   305,    -1,    -1,    -1,
04307       -1,    -1,    -1,    -1,   420,    -1,    78,    -1,    -1,    -1,
04308       -1,    -1,   428,    -1,   430,    -1,    -1,    -1,    -1,    -1,
04309      436,    93,    -1,   332,    -1,    -1,    -1,    -1,    -1,    -1,
04310       -1,    -1,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
04311       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04312       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
04313       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,   378,
04314       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   150,   151,
04315       -1,    -1,    -1,    -1,    -1,   408,   409,   410,   397,    -1,
04316       -1,    -1,    -1,   402,    -1,    -1,    -1,    -1,    -1,    -1,
04317       -1,    -1,    -1,    -1,    -1,   177,   178,    -1,    -1,    -1,
04318       -1,   420,   184,    -1,    -1,    -1,   188,    -1,    -1,   428,
04319       -1,   430,    -1,    -1,    -1,    -1,    -1,   436,   437,   438,
04320      439,   440,    -1,   442,    -1,   444,   445,   446,   447,   448,
04321       -1,    -1,    -1,   215,    -1,    -1,   218,   219,    -1,    -1,
04322       -1,   223,    -1,    -1,    -1,   227,    -1,   229,    -1,    -1,
04323      232,    -1,   234,     3,    -1,     5,    -1,    -1,    -1,    -1,
04324       10,    -1,    -1,    -1,    -1,   247,   248,    -1,    18,    -1,
04325      252,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04326      262,    -1,   264,    -1,    -1,    -1,    -1,   269,    -1,    -1,
04327       -1,    -1,   274,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04328       50,    51,    -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,
04329      292,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
04330       -1,    71,    -1,   305,    -1,    -1,    -1,    -1,    -1,    -1,
04331       -1,    -1,    -1,    83,     6,    -1,    -1,     9,    -1,    -1,
04332       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04333      332,    -1,    -1,    -1,    -1,   105,    -1,    -1,    -1,    -1,
04334       -1,    -1,   112,   113,    -1,    -1,    -1,    -1,    -1,    -1,
04335       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04336       -1,    -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,
04337       -1,    -1,    -1,   143,    -1,   377,   378,    -1,    -1,    -1,
04338       -1,    -1,    -1,    -1,    -1,   155,    78,    -1,    -1,   159,
04339       -1,    -1,    -1,    -1,    -1,   397,    -1,    89,    -1,    -1,
04340      402,    93,   172,    -1,    -1,    -1,    -1,    -1,    -1,   179,
04341       -1,    -1,   182,   183,    -1,    -1,    -1,    -1,   420,    -1,
04342      190,    -1,    -1,    -1,    -1,    -1,   428,   197,   430,   199,
04343       -1,    -1,   202,    -1,   436,   437,   438,   439,   440,    -1,
04344      442,    -1,   444,   445,   446,   447,   448,    -1,    -1,    -1,
04345       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04346       -1,    -1,    -1,    -1,    -1,    -1,    -1,   237,     3,    -1,
04347        5,   241,    -1,   243,    -1,    10,    -1,    -1,    -1,    -1,
04348      250,    -1,    -1,    18,    -1,   177,    -1,    -1,    -1,    -1,
04349       -1,    -1,    -1,    -1,    -1,    -1,   188,     6,    -1,    -1,
04350        9,    -1,   272,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04351       -1,    -1,    -1,    -1,    -1,    50,    51,   287,    -1,    -1,
04352       -1,    -1,    57,    -1,    -1,    -1,   218,    -1,    -1,    -1,
04353       -1,   223,    -1,    68,    -1,   227,    71,   229,   308,    -1,
04354      232,    -1,   234,    -1,    -1,    -1,    -1,   317,    83,    -1,
04355       -1,     6,    -1,    -1,     9,    -1,    -1,    -1,    -1,    -1,
04356      330,    -1,    -1,     6,    -1,   335,     9,   337,    -1,    78,
04357      105,    -1,   264,    -1,    -1,   345,    -1,   112,   113,    -1,
04358       89,    -1,    -1,    -1,    93,   355,    -1,    -1,    -1,    -1,
04359       -1,    -1,    -1,    -1,   364,    -1,    -1,    -1,    -1,    -1,
04360       -1,    -1,    -1,   373,    -1,   375,   376,    -1,   143,   379,
04361       -1,   381,    -1,   305,    -1,    -1,   386,    -1,    -1,    -1,
04362      155,    -1,    -1,    78,   159,    -1,    -1,    -1,    -1,    -1,
04363       -1,   401,    -1,    -1,    89,    78,   406,   172,    93,    -1,
04364      332,   411,    -1,    -1,   179,    -1,    -1,   182,   183,    -1,
04365       93,    -1,   422,    -1,    -1,   190,    -1,    -1,    -1,    -1,
04366       -1,    -1,   197,   433,   199,    -1,    -1,   202,   177,    -1,
04367       -1,    -1,    -1,   443,    -1,    -1,   368,    -1,    -1,   188,
04368       -1,    -1,    -1,    -1,    -1,   377,   378,    -1,    -1,    -1,
04369       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04370       -1,    -1,   237,    -1,    -1,   397,   241,    -1,   243,   218,
04371      402,    -1,    -1,    -1,   223,   250,    -1,    -1,   227,    -1,
04372      229,    -1,   177,   232,    -1,   234,    -1,    -1,   420,    -1,
04373       -1,    -1,     6,   188,   177,     9,   428,   272,   430,    -1,
04374       -1,    -1,    -1,    -1,   436,   188,    -1,    -1,    -1,    -1,
04375       -1,    -1,   287,    -1,    -1,   264,    -1,    -1,    -1,    -1,
04376       -1,    -1,    -1,   218,    -1,    -1,    -1,    -1,   223,    -1,
04377       -1,    -1,   227,   308,   229,   218,    -1,   232,    -1,   234,
04378      223,    -1,   317,    -1,   227,    -1,   229,    -1,    -1,   232,
04379       -1,   234,    -1,    -1,    -1,   330,   305,    -1,    -1,    -1,
04380      335,    -1,   337,    -1,    78,    -1,    -1,    -1,    -1,   264,
04381      345,    -1,    -1,     6,    -1,    -1,     9,    -1,    -1,    93,
04382      355,   264,    -1,   332,    -1,     6,    -1,    -1,     9,   364,
04383       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   373,    -1,
04384      375,   376,    -1,    -1,   379,    -1,   381,    -1,    -1,    -1,
04385      305,   386,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   368,
04386       -1,    -1,   305,    -1,    -1,    -1,   401,    -1,   377,   378,
04387       -1,   406,    -1,    -1,    -1,    -1,   411,   332,    -1,     6,
04388       -1,    -1,     9,    -1,    -1,    78,    -1,   422,   397,   332,
04389       -1,    -1,    -1,   402,    -1,     9,    -1,    78,   433,   173,
04390       93,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
04391       -1,   420,    93,   368,   188,    -1,    -1,    -1,    -1,   428,
04392       -1,   430,   377,   378,    -1,   368,    -1,   436,    -1,    -1,
04393       -1,    -1,    -1,    -1,   377,   378,    -1,    -1,    -1,    -1,
04394       -1,    -1,   397,    -1,   218,    -1,    -1,   402,    -1,   223,
04395      393,    78,    -1,   227,   397,   229,    -1,    -1,   232,   402,
04396      234,    -1,    -1,    -1,    78,   420,    93,    -1,    -1,    -1,
04397       -1,    -1,    -1,   428,    -1,   430,    -1,   420,    -1,    93,
04398       -1,   436,    -1,    -1,   177,   428,    -1,   430,    -1,    -1,
04399      264,    -1,    -1,   436,    -1,   188,   177,    -1,    -1,    -1,
04400       -1,    -1,    -1,    -1,    -1,    -1,    -1,   188,     6,    -1,
04401       -1,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04402       -1,    -1,    -1,    -1,    -1,   218,    -1,    -1,    -1,    -1,
04403      223,   305,    -1,    -1,   227,    -1,   229,   218,    -1,   232,
04404       -1,   234,   223,    -1,    -1,    -1,   227,    -1,   229,    -1,
04405      177,   232,    -1,   234,    -1,    -1,    -1,    -1,   332,    -1,
04406       -1,   188,    -1,   177,    -1,    -1,    -1,    -1,    -1,    -1,
04407       -1,   264,    -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,
04408       78,    -1,    -1,   264,    -1,    -1,    -1,    -1,    -1,    -1,
04409       -1,   218,    -1,    -1,   368,    93,   223,    -1,    -1,    -1,
04410      227,    -1,   229,   377,   378,   232,    -1,   234,    -1,    -1,
04411       -1,    -1,   305,   227,    -1,   229,    -1,    -1,   232,    -1,
04412      234,    -1,    -1,   397,   305,    -1,    -1,    -1,   402,    -1,
04413       -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,    -1,   332,
04414       -1,    -1,    -1,    -1,    -1,    -1,   420,    -1,    -1,    -1,
04415      264,   332,    -1,    -1,   428,    -1,   430,    -1,    -1,    -1,
04416       -1,    -1,   436,    -1,    -1,    -1,    -1,    -1,    -1,   362,
04417       -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,   305,   177,
04418       -1,    -1,   363,    -1,   377,   378,    -1,   368,    -1,    -1,
04419      188,   305,    -1,    -1,    -1,    -1,   377,   378,    -1,    -1,
04420       -1,    -1,    -1,    -1,   397,   332,    -1,    -1,    -1,   402,
04421       -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,   332,    -1,
04422      218,   402,    -1,    -1,    -1,   223,    -1,   420,    -1,   227,
04423       -1,   229,    -1,    -1,   232,   428,   234,   430,    -1,   420,
04424       -1,   368,    -1,   436,    -1,    -1,    -1,   428,    -1,   430,
04425      377,   378,    -1,    -1,   368,   436,    -1,    -1,    -1,    -1,
04426       -1,    -1,    -1,   377,   378,    -1,   264,    -1,    -1,    -1,
04427      397,    -1,    -1,    -1,    -1,   402,    -1,    78,    -1,    -1,
04428       -1,    -1,    -1,   397,    -1,    -1,    -1,    -1,   402,    -1,
04429       -1,    -1,    93,   420,    -1,    -1,    -1,    -1,    -1,    -1,
04430       -1,   428,    -1,   430,    -1,    -1,   420,   305,    -1,   436,
04431       -1,    21,    -1,    -1,   428,    -1,   430,    -1,    -1,    -1,
04432       -1,    -1,   436,    33,    -1,    -1,    36,    37,    38,    39,
04433       40,    41,    42,    -1,   332,    -1,    -1,    -1,    -1,    -1,
04434       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04435       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04436       70,    -1,    72,    73,    74,    75,    76,    77,    -1,    -1,
04437      368,    -1,    -1,    -1,    -1,    -1,   177,    -1,    -1,   377,
04438      378,    -1,    -1,    -1,    -1,    -1,    -1,   188,    -1,    -1,
04439       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,
04440       -1,    -1,   112,    -1,   402,    -1,    -1,    -1,    -1,    -1,
04441       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04442       -1,    -1,   420,    -1,    -1,    -1,   227,    -1,   229,    -1,
04443      428,   232,   430,   234,    -1,    -1,    -1,    -1,   436,    -1,
04444       -1,    -1,    -1,    30,    -1,    32,    -1,    -1,    35,    36,
04445       37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
04446       -1,    -1,    -1,   264,    -1,    -1,    -1,    -1,    -1,    -1,
04447       -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
04448       -1,    -1,    -1,    70,   194,    72,    73,    74,    75,    76,
04449       77,    -1,    -1,    -1,    -1,    -1,    -1,   207,    -1,    -1,
04450      210,    -1,    -1,    -1,   305,    -1,   216,    -1,    -1,    -1,
04451       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04452       -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    78,
04453       -1,   332,    -1,    -1,   244,    -1,    -1,    -1,    -1,    -1,
04454       -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,
04455       -1,    -1,    -1,    -1,    -1,    -1,   266,    -1,    -1,    -1,
04456       -1,    -1,    -1,    -1,    -1,   152,    -1,   368,    -1,    -1,
04457       -1,   281,    -1,    -1,    -1,    -1,   377,   378,   288,    -1,
04458      290,    -1,    -1,   170,    -1,    -1,   173,   174,    -1,    -1,
04459       -1,    -1,    -1,   303,    -1,    -1,   397,    -1,    -1,    -1,
04460      187,   402,    -1,   313,    -1,    -1,    -1,   194,    -1,    -1,
04461      320,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   420,
04462       -1,    -1,    -1,   210,    -1,    -1,    -1,   428,   177,   430,
04463       -1,    -1,    -1,    -1,    -1,   436,    -1,   224,    -1,   188,
04464       -1,    78,    -1,    -1,    -1,    -1,   233,   357,    -1,   359,
04465      360,   361,    -1,    -1,    -1,    -1,    93,   244,    -1,    -1,
04466       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   218,
04467       -1,    -1,    -1,   383,   223,    -1,    -1,    -1,   227,   266,
04468      229,    -1,    -1,   232,    -1,   234,    -1,    -1,    -1,    -1,
04469      400,    -1,    -1,   280,   281,    -1,    -1,    -1,   408,   409,
04470      410,   288,    -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,
04471       -1,   421,    -1,    -1,   424,   264,   303,   304,    -1,    -1,
04472       -1,    78,    -1,    -1,    -1,    36,    37,    38,    39,    40,
04473       41,    42,    -1,   443,    -1,    -1,    93,    -1,    -1,    -1,
04474      177,   328,    -1,    -1,    -1,    -1,   333,    -1,    -1,    -1,
04475       -1,   188,    63,    64,    -1,    -1,   305,    -1,    -1,    70,
04476      347,    72,    73,    74,    75,    76,    77,    -1,    -1,    -1,
04477      357,    -1,   359,   360,   361,    -1,    -1,    -1,    -1,    -1,
04478       -1,   218,    -1,   332,    -1,    -1,   223,    -1,    -1,    -1,
04479      227,    -1,   229,    -1,    -1,   232,    -1,   234,    -1,    -1,
04480       -1,   112,    -1,    -1,    -1,    -1,   393,    -1,    -1,    -1,
04481       -1,    -1,    -1,    -1,    -1,    -1,    -1,   404,    -1,   368,
04482      177,   408,   409,   410,    -1,    -1,    -1,   264,   377,   378,
04483       -1,   188,    -1,    -1,   421,    -1,   423,   424,    -1,    -1,
04484       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   397,    -1,
04485       -1,    -1,    -1,   402,    -1,    -1,   443,    -1,    -1,    -1,
04486       -1,   218,    -1,    -1,    -1,    -1,   223,    -1,   305,    -1,
04487      227,   420,   229,    -1,   185,   232,    -1,   234,    -1,   428,
04488       -1,   430,    -1,   194,    -1,    -1,    -1,   436,   437,   438,
04489       -1,    -1,    -1,    -1,    -1,   332,   445,   446,    -1,   210,
04490       -1,    -1,    -1,    -1,    -1,    -1,    -1,   264,    -1,    -1,
04491       -1,    -1,    -1,   224,   225,    -1,    -1,    -1,    -1,    -1,
04492       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04493       -1,   368,    -1,   244,    -1,    -1,    -1,    -1,   249,    -1,
04494      377,   378,    -1,    -1,    -1,    -1,    -1,    -1,   305,    -1,
04495       -1,    -1,    -1,    -1,    -1,   266,    -1,    -1,    -1,    -1,
04496      397,    -1,    -1,    -1,    -1,   402,    -1,    -1,    -1,    -1,
04497      281,    -1,    -1,    -1,    -1,   332,    -1,   288,    -1,   290,
04498       -1,    -1,   293,   420,    -1,    -1,    -1,    -1,    -1,    -1,
04499       -1,   428,   303,   430,    -1,    -1,    -1,    -1,    -1,   436,
04500      437,   438,    -1,    -1,    -1,    -1,    -1,    -1,   445,   446,
04501       -1,   368,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04502      377,   378,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04503       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04504      397,    -1,    -1,    -1,    -1,   402,   357,    -1,   359,   360,
04505      361,    -1,    -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,
04506       -1,    -1,    -1,   420,    -1,    -1,    -1,    -1,    -1,   380,
04507       -1,   428,    -1,   430,    -1,    -1,    -1,    -1,    -1,   436,
04508      437,   438,    -1,    -1,    -1,    -1,    -1,    -1,   445,    -1,
04509       -1,    -1,   403,    -1,    -1,    -1,    -1,   408,   409,   410,
04510       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04511      421,    -1,    -1,   424,   425,    -1,    -1,    -1,    -1,    -1,
04512       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04513       -1,    -1,   443
04514 };
04515 
04516 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
04517    symbol of state STATE-NUM.  */
04518 static const unsigned short yystos[] =
04519 {
04520        0,   452,   453,     0,   176,   301,   454,   455,   456,   462,
04521      469,   471,   443,   443,   455,   144,   477,   477,   227,   302,
04522      472,   472,   114,   457,   463,    26,   473,   473,   443,    96,
04523      572,   572,   227,   443,   470,    79,   478,   114,   458,   464,
04524      207,   474,  1115,   346,   163,   201,   209,   529,   443,   297,
04525      706,   706,   443,    69,   312,   396,   475,   476,   443,   443,
04526      346,   443,   162,   344,   395,   573,   579,   114,   459,   465,
04527      469,   129,   468,   476,   300,  1126,   479,   530,   443,   531,
04528      346,   432,   604,   575,    53,   423,   709,   133,   459,   466,
04529      477,   472,   265,   327,   367,   369,   480,   481,   485,   493,
04530      498,   533,   163,   532,   242,   340,   563,   564,   565,   566,
04531      568,   443,   346,   230,   649,   430,   578,   580,  1047,   711,
04532      710,   331,   717,   472,   460,   443,   443,   443,   443,   443,
04533      349,   534,   443,   209,   562,   395,  1111,   309,   364,   365,
04534      567,   443,   565,   574,   443,   346,   226,   651,   577,   579,
04535      606,   607,   608,   581,    48,   712,   713,   714,  1106,   712,
04536      430,   443,   443,   572,   236,   348,   430,   484,   486,   487,
04537      488,   489,   491,   492,  1126,   175,   494,   495,   496,   429,
04538      482,   483,   484,  1140,    11,    56,    91,    92,    94,   102,
04539      156,   228,   342,   382,   430,   499,   500,   501,   502,   506,
04540      515,   519,   522,   523,   524,   525,   526,   527,   528,   273,
04541     1093,   533,   443,   385,  1134,    23,  1102,   576,   605,   443,
04542      346,   322,   653,   580,   609,  1087,   582,   713,   362,   407,
04543      715,   315,   424,   707,   461,   362,  1115,   443,   487,   443,
04544      488,    60,   353,  1099,     9,   227,   497,   443,   496,   443,
04545      443,   483,   101,   430,  1058,  1058,   374,   357,  1130,  1115,
04546     1115,  1115,  1058,  1115,    55,  1108,  1115,   443,   501,  1058,
04547      563,    81,  1109,   169,  1112,   577,   606,   650,   443,   346,
04548      341,   694,   606,   443,  1087,   430,   610,   612,   617,    46,
04549       59,    96,   212,   222,   309,   310,   322,   324,   424,   443,
04550      583,   584,   586,   590,   592,   594,   595,   601,   602,   603,
04551     1115,  1115,   362,   273,   716,   103,   718,   706,  1115,   227,
04552     1076,   443,   353,  1115,   204,   204,   227,   443,   240,   507,
04553     1115,  1115,  1115,   430,  1055,  1073,    65,  1055,  1115,  1055,
04554      516,   517,  1058,    91,  1058,   535,   569,   570,  1047,  1046,
04555     1047,   606,   652,   443,   346,   610,   443,   165,   430,   613,
04556      614,  1109,  1115,   309,   311,  1097,  1097,  1115,  1109,  1115,
04557      240,  1120,  1115,    22,  1101,   267,   161,   181,    30,   104,
04558     1076,  1115,   430,   443,   708,   465,  1076,  1055,  1115,   188,
04559      227,   234,   305,   368,   397,   436,   520,   521,  1079,  1055,
04560      227,   193,   267,  1096,  1055,    22,   207,  1058,  1116,   503,
04561      536,   570,   291,   571,  1047,   606,   654,   443,   443,   611,
04562       80,  1076,   430,  1115,  1101,  1054,  1055,   269,   370,   591,
04563      227,  1055,  1057,  1076,   425,  1115,   430,   693,   693,   164,
04564      430,  1076,   719,   720,   133,   467,    55,   431,   490,   118,
04565      188,   227,   234,   246,   305,   368,   371,   372,   436,   508,
04566      509,   510,   513,   521,   390,  1073,   518,  1076,   504,     4,
04567       19,    28,   195,   224,   231,   276,   282,   309,   316,   329,
04568      356,   364,   395,   443,   537,   538,   542,   544,   545,   546,
04569      547,   548,   552,   553,   554,   555,   556,   558,   559,   560,
04570     1099,  1127,  1076,   307,   655,   656,   657,   695,   618,   615,
04571     1115,   393,   589,  1055,   225,  1119,   393,  1108,   193,  1114,
04572      430,  1115,  1115,   720,     1,   430,   443,   721,   722,   723,
04573      724,   725,   730,   731,   472,   510,    17,   390,  1079,  1076,
04574      268,   270,   505,  1120,   309,   393,  1138,   354,  1120,  1115,
04575       54,  1107,   107,   211,  1117,  1117,  1076,  1140,   374,  1115,
04576       36,  1105,   693,   657,   696,    21,    33,    36,    37,    38,
04577       39,    40,    41,    42,    70,    72,    73,    74,    75,    76,
04578       77,   112,   194,   210,   244,   266,   281,   288,   290,   303,
04579      313,   320,   357,   359,   360,   361,   383,   408,   409,   410,
04580      421,   424,   619,   620,   621,   623,   624,   625,   626,   627,
04581      628,   637,   638,   640,   641,   642,   647,   648,  1115,  1131,
04582       26,  1103,   181,  1076,    55,   311,   585,   596,  1076,   362,
04583     1132,   227,   593,  1073,   593,   120,   443,   443,   346,     3,
04584        5,    10,    18,    50,    51,    57,    68,    71,    83,   105,
04585      112,   113,   143,   155,   159,   172,   179,   182,   183,   190,
04586      197,   199,   202,   237,   241,   243,   250,   272,   287,   308,
04587      317,   330,   335,   337,   345,   355,   364,   373,   375,   376,
04588      379,   381,   386,   401,   406,   411,   422,   433,   443,   732,
04589      733,   743,   748,   752,   755,   768,   771,   776,   781,   782,
04590      783,   786,   794,   798,   800,   815,   818,   820,   822,   825,
04591      827,   833,   842,   844,   861,   863,   866,   870,   876,   886,
04592      893,   895,   898,   902,   903,   914,   925,   935,   941,   944,
04593      950,   954,   956,   958,   960,   963,   974,   975,   984,   986,
04594      987,   732,   443,   511,   513,   374,  1133,  1115,  1117,   117,
04595      161,   540,  1115,   309,   316,   553,  1115,  1115,  1115,  1115,
04596     1102,     9,   251,   308,   561,  1115,   430,   354,   658,   612,
04597      617,   697,   698,   699,   218,   358,   407,   358,   407,   358,
04598      407,   358,   407,   358,   407,   427,  1139,   336,  1128,  1076,
04599     1072,  1073,  1073,   207,   217,   336,   639,  1115,  1116,   161,
04600      181,   216,   400,     9,    49,   218,   616,  1077,  1078,  1079,
04601       29,   597,   598,   599,   600,  1104,  1140,  1108,   173,   588,
04602     1113,   103,   227,   726,   734,   744,   749,   753,   756,   769,
04603      772,   777,   784,   787,   795,   799,   801,   816,   819,   821,
04604     1138,   826,     1,   828,   834,   843,   845,   862,   864,   867,
04605      871,   877,   887,   894,   896,   899,   904,   915,   926,   936,
04606      227,   339,   945,   951,   296,   955,   957,   959,   961,   964,
04607      181,   976,  1112,   988,   188,   227,   234,   305,   368,   436,
04608      512,   514,  1115,   117,   306,   354,   543,  1115,   111,   295,
04609      539,    31,   158,   235,   549,  1057,   371,   557,  1055,  1055,
04610      277,  1125,  1125,   271,  1055,    58,    84,    85,   283,   443,
04611      659,   660,   664,  1115,   613,   699,   436,   393,   629,   445,
04612     1074,  1075,   390,   626,   644,   645,  1077,    26,   622,   352,
04613     1095,  1095,  1079,   267,  1122,  1122,   450,    47,   399,   168,
04614      589,  1076,   443,   443,   735,  1071,  1072,     6,    78,    89,
04615       93,   177,   218,   223,   229,   232,   264,   332,   377,   378,
04616      402,   420,   428,   745,  1041,  1061,  1062,  1071,  1077,  1080,
04617      430,   750,  1028,  1029,  1030,   227,  1051,  1052,  1053,  1073,
04618      227,  1069,  1071,  1080,   770,   773,   778,  1042,  1043,  1062,
04619     1047,   227,   788,  1061,  1068,  1071,   796,  1062,   227,   394,
04620      398,   802,   803,  1028,   286,   287,   300,   346,   817,     6,
04621     1059,  1060,  1071,  1071,   823,   130,  1027,  1028,  1059,   663,
04622     1071,   846,  1071,  1077,  1080,   927,  1073,    89,   865,  1062,
04623      868,  1062,   872,   171,   227,   878,   881,   882,   883,  1051,
04624     1069,  1073,  1140,  1047,  1044,  1073,  1047,  1044,     9,   905,
04625     1045,  1073,   144,   239,   916,   917,   918,   919,   921,   922,
04626      923,   924,  1048,  1049,  1059,   927,  1047,   942,   106,   946,
04627      947,  1062,    89,   952,  1061,   663,  1071,  1047,  1071,     8,
04628       34,   978,   101,  1044,    17,  1058,   557,   112,   227,   541,
04629     1073,   429,   550,   550,   366,   444,  1055,  1056,  1115,   166,
04630      661,   662,   661,  1116,   672,   181,   700,  1076,   392,  1137,
04631      218,   437,   438,   445,  1038,  1040,  1041,  1063,  1071,  1078,
04632     1080,   445,  1075,  1073,   643,   645,   390,   227,  1107,  1072,
04633     1072,  1079,  1057,  1057,  1104,  1108,   121,   742,    29,   173,
04634      736,  1104,  1122,   445,  1071,   445,  1081,   445,  1082,  1122,
04635     1096,   445,   445,   445,   445,   445,   445,   445,   445,  1081,
04636      122,   747,   393,   746,  1062,   198,  1090,    55,    12,    13,
04637       14,    20,   150,   151,   178,   184,   215,   219,   247,   248,
04638      252,   262,   269,   274,   292,   437,   438,   439,   440,   442,
04639      444,   445,   446,   447,   448,  1031,  1032,  1033,  1034,  1035,
04640     1062,   393,  1096,   423,   757,   227,  1068,  1071,  1047,   124,
04641      779,   150,   444,   780,  1043,   338,  1094,  1127,   126,   793,
04642      736,   416,   417,   418,   419,   127,   797,    48,   203,   757,
04643       17,   427,   804,   805,   806,   810,    95,  1122,  1060,  1050,
04644      389,  1136,   835,  1140,  1071,    88,   321,   384,   847,   848,
04645      849,   853,   858,   929,  1062,   393,   131,   869,    48,   160,
04646      200,   208,   278,   873,   882,   132,   879,   412,   425,   390,
04647      392,   387,   249,   294,  1091,   173,   989,  1127,   989,  1045,
04648      137,   913,   425,   907,  1066,  1071,  1078,   922,   924,  1059,
04649      393,  1049,   115,   393,   413,   920,   937,   180,   331,   943,
04650     1106,   203,   947,  1071,   140,   953,   173,   173,   309,   311,
04651      962,   106,   965,   323,   370,   979,   270,  1123,   989,   514,
04652      116,   429,  1089,  1098,   231,   337,  1115,  1054,  1068,   663,
04653      670,  1076,   612,   673,   701,   108,   630,  1122,  1040,  1040,
04654     1040,    67,   350,   446,  1039,   437,   438,   439,   440,   442,
04655      449,  1040,  1139,  1077,  1119,  1057,   108,   587,  1066,    24,
04656       25,    64,    66,    97,    98,    99,   144,   146,   154,   225,
04657      391,   430,  1049,   429,   739,    63,   224,   291,   737,   738,
04658      143,   300,  1064,  1072,  1038,  1040,   393,  1040,  1038,  1083,
04659     1072,  1078,  1080,   430,  1040,  1086,  1040,  1040,  1085,  1040,
04660     1038,  1038,  1040,  1084,  1040,  1042,  1062,   180,   331,   751,
04661     1090,  1138,   388,  1135,  1135,   207,  1032,   299,   754,  1053,
04662      758,   180,   331,   762,   314,   405,   774,   775,  1140,  1028,
04663      206,   256,  1020,  1021,  1022,  1024,   415,   789,   157,   995,
04664      996,   995,   995,   995,  1062,  1042,  1062,   803,    21,   394,
04665      398,   811,   812,  1029,   128,   814,   427,   806,   808,   427,
04666      807,  1072,   108,   824,  1051,   829,     9,    12,    15,    16,
04667      244,   245,   262,   263,   836,   840,   165,  1066,     9,    55,
04668      167,   216,   400,   854,   855,   856,   850,   848,   931,  1098,
04669     1123,   393,  1059,  1042,  1062,   356,   874,   727,   728,  1027,
04670      884,   885,  1071,  1051,     8,    34,   991,  1127,  1068,   203,
04671      888,   900,  1140,   908,  1104,  1071,   908,   393,   393,   505,
04672      143,   394,   398,  1062,    48,   211,   938,  1062,  1062,   362,
04673     1062,  1071,   173,  1042,  1062,  1066,  1106,   203,   968,  1071,
04674      153,   157,   980,     9,   985,  1051,   900,   116,   270,  1054,
04675      186,   665,   224,   225,   671,   430,   613,    30,    32,    35,
04676       43,    44,    45,    63,   152,   170,   173,   174,   187,   224,
04677      233,   266,   280,   304,   328,   333,   347,   393,   404,   423,
04678      443,   624,   625,   627,   637,   640,   642,   702,   705,  1123,
04679      631,   632,  1072,  1078,  1080,   446,  1040,  1040,  1040,  1040,
04680     1040,  1040,   446,  1040,   355,  1129,  1119,  1123,   994,   996,
04681      435,   434,  1066,   994,   211,    30,    32,    35,    45,   170,
04682      174,   187,   233,   280,   304,   328,   333,   343,   347,   404,
04683      414,   740,   741,   994,   260,  1121,  1121,  1121,   738,   737,
04684      227,  1065,  1072,   446,  1071,   449,   446,  1039,   446,   446,
04685     1039,   446,   446,   446,   446,  1039,   446,   446,   363,  1000,
04686     1001,  1042,  1060,   331,   393,  1051,   759,   760,   761,  1106,
04687     1071,  1071,   157,   279,   763,   981,  1112,   231,   251,  1000,
04688     1023,  1025,   125,   785,  1024,    91,   295,   430,  1049,   429,
04689      790,  1140,   997,   255,   998,   180,  1000,   180,    17,   390,
04690      813,   277,   811,   727,  1123,   727,  1138,   321,   837,  1138,
04691      393,    48,   855,   857,  1066,     9,    55,   216,   400,   851,
04692      852,  1066,   932,  1099,   193,   275,  1124,    27,   109,   633,
04693     1059,  1000,   180,  1140,  1046,   132,   880,   729,     8,   173,
04694      888,  1071,   120,   253,  1010,  1011,  1013,  1020,   231,   251,
04695      427,   120,   427,   910,   911,  1066,  1065,  1062,  1115,  1020,
04696      948,  1140,  1071,  1000,   180,   393,     9,   966,   967,  1088,
04697      969,  1071,   948,   969,   297,   983,   298,   990,   991,   242,
04698      309,   311,   551,  1115,   167,   666,  1076,   674,  1115,  1121,
04699      147,   149,  1115,  1069,  1121,  1076,  1071,  1071,  1055,   195,
04700      634,   633,   446,  1138,  1055,   998,   994,  1115,  1115,   115,
04701      413,   741,  1068,  1068,  1068,  1081,  1094,   446,  1040,  1055,
04702     1081,  1081,  1040,  1081,  1081,  1081,   216,   400,  1081,  1081,
04703     1002,   258,  1003,  1000,  1060,   760,   269,   715,    82,   315,
04704      424,   255,   257,   765,   982,   764,   319,   334,   727,   727,
04705       32,    35,    43,    44,    45,   152,   170,   187,   233,   280,
04706      333,   343,   404,   791,   792,   995,   259,   727,   999,  1042,
04707     1043,  1042,  1043,   812,  1028,   809,  1071,   119,   830,   424,
04708      838,   839,   840,   104,   841,   424,  1067,  1071,  1077,  1066,
04709       48,   859,   852,   169,   859,   928,  1115,   275,  1117,  1042,
04710      561,   875,  1140,   730,   885,  1062,   192,   889,  1140,  1012,
04711     1014,   135,   897,  1013,   136,   901,   231,  1028,   909,  1027,
04712      910,   252,   939,  1092,   138,   940,   279,  1005,  1006,   290,
04713     1094,  1042,  1067,   274,  1066,   107,   970,   384,   972,  1123,
04714      148,   254,   992,  1015,  1016,  1018,  1021,     7,  1100,   551,
04715     1076,   110,   213,   667,    64,    63,    64,   185,   224,   225,
04716      249,   293,   366,   380,   403,   425,   443,   624,   625,   627,
04717      628,   637,   640,   642,   675,   676,   678,   679,   680,   681,
04718      683,   684,   685,   686,   690,   691,   436,  1070,  1071,  1076,
04719     1115,  1070,  1115,  1137,  1106,  1117,   394,   646,  1070,  1070,
04720     1026,  1106,  1026,  1000,   446,   727,  1004,  1062,   123,   767,
04721      766,   727,  1115,   147,   149,  1115,   115,   413,   792,   727,
04722     1000,   318,  1000,   318,   727,   831,   130,   832,   839,    96,
04723     1110,   859,   859,  1067,   991,   200,   423,   933,  1055,   930,
04724     1000,   231,   251,    48,   231,   211,   890,   191,   231,   251,
04725      426,   727,   727,   906,   727,   912,  1062,   178,   184,   215,
04726      219,  1033,  1034,  1035,  1036,  1037,  1007,   139,   949,   257,
04727     1008,  1071,  1000,  1000,   967,  1114,    90,   971,  1114,  1005,
04728      160,   200,   208,   278,   977,  1046,  1017,  1019,   142,   993,
04729     1018,   283,  1049,  1070,  1115,    87,   214,   668,   261,  1121,
04730      196,   692,   260,   261,   689,  1101,   185,   427,  1115,  1122,
04731     1115,  1071,   681,   249,   289,   687,   688,  1076,   238,   289,
04732      437,   438,   704,   238,   289,   437,   438,   703,   430,   635,
04733      636,  1115,  1115,  1070,   727,   727,  1070,  1070,  1026,  1026,
04734     1043,  1043,   727,    48,   859,   396,   860,   297,  1046,   180,
04735      278,   934,  1073,   334,  1062,  1115,   891,  1010,  1021,   231,
04736      231,   727,   727,  1135,  1135,   727,  1009,  1071,  1114,  1071,
04737      141,   973,   727,   727,   224,   225,  1118,  1076,  1115,  1115,
04738      168,   669,  1115,  1116,  1115,  1027,  1071,   682,  1055,    86,
04739       87,   110,   284,   285,   325,   326,   677,   173,   283,  1076,
04740      688,  1070,  1070,   636,  1054,  1077,  1118,  1000,  1000,  1062,
04741     1062,  1115,  1046,   297,   412,  1071,   134,   892,   274,   274,
04742      727,  1071,  1076,  1076,  1115,  1076,  1076,  1094,  1062,   881,
04743     1115,  1027,   150,   150,  1076,    48,   881,  1138,  1138,  1062
04744 };
04745 
04746 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
04747 # define YYSIZE_T __SIZE_TYPE__
04748 #endif
04749 #if ! defined (YYSIZE_T) && defined (size_t)
04750 # define YYSIZE_T size_t
04751 #endif
04752 #if ! defined (YYSIZE_T)
04753 # if defined (__STDC__) || defined (__cplusplus)
04754 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
04755 #  define YYSIZE_T size_t
04756 # endif
04757 #endif
04758 #if ! defined (YYSIZE_T)
04759 # define YYSIZE_T unsigned int
04760 #endif
04761 
04762 #define yyerrok         (yyerrstatus = 0)
04763 #define yyclearin       (yychar = YYEMPTY)
04764 #define YYEMPTY         (-2)
04765 #define YYEOF           0
04766 
04767 #define YYACCEPT        goto yyacceptlab
04768 #define YYABORT         goto yyabortlab
04769 #define YYERROR         goto yyerrlab1
04770 
04771 /* Like YYERROR except do call yyerror.  This remains here temporarily
04772    to ease the transition to the new meaning of YYERROR, for GCC.
04773    Once GCC version 2 has supplanted version 1, this can go.  */
04774 
04775 #define YYFAIL          goto yyerrlab
04776 
04777 #define YYRECOVERING()  (!!yyerrstatus)
04778 
04779 #define YYBACKUP(Token, Value)                                  \
04780 do                                                              \
04781   if (yychar == YYEMPTY && yylen == 1)                          \
04782     {                                                           \
04783       yychar = (Token);                                         \
04784       yylval = (Value);                                         \
04785       yytoken = YYTRANSLATE (yychar);                           \
04786       YYPOPSTACK;                                               \
04787       goto yybackup;                                            \
04788     }                                                           \
04789   else                                                          \
04790     {                                                           \
04791       yyerror ("syntax error: cannot back up");\
04792       YYERROR;                                                  \
04793     }                                                           \
04794 while (0)
04795 
04796 #define YYTERROR        1
04797 #define YYERRCODE       256
04798 
04799 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
04800    are run).  */
04801 
04802 #ifndef YYLLOC_DEFAULT
04803 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
04804   Current.first_line   = Rhs[1].first_line;      \
04805   Current.first_column = Rhs[1].first_column;    \
04806   Current.last_line    = Rhs[N].last_line;       \
04807   Current.last_column  = Rhs[N].last_column;
04808 #endif
04809 
04810 /* YYLEX -- calling `yylex' with the right arguments.  */
04811 
04812 #ifdef YYLEX_PARAM
04813 # define YYLEX yylex (YYLEX_PARAM)
04814 #else
04815 # define YYLEX yylex ()
04816 #endif
04817 
04818 /* Enable debugging if requested.  */
04819 #if YYDEBUG
04820 
04821 # ifndef YYFPRINTF
04822 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
04823 #  define YYFPRINTF fprintf
04824 # endif
04825 
04826 # define YYDPRINTF(Args)                        \
04827 do {                                            \
04828   if (yydebug)                                  \
04829     YYFPRINTF Args;                             \
04830 } while (0)
04831 
04832 # define YYDSYMPRINT(Args)                      \
04833 do {                                            \
04834   if (yydebug)                                  \
04835     yysymprint Args;                            \
04836 } while (0)
04837 
04838 # define YYDSYMPRINTF(Title, Token, Value, Location)            \
04839 do {                                                            \
04840   if (yydebug)                                                  \
04841     {                                                           \
04842       YYFPRINTF (stderr, "%s ", Title);                         \
04843       yysymprint (stderr,                                       \
04844                   Token, Value);        \
04845       YYFPRINTF (stderr, "\n");                                 \
04846     }                                                           \
04847 } while (0)
04848 
04849 /*------------------------------------------------------------------.
04850 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
04851 | TOP (cinluded).                                                   |
04852 `------------------------------------------------------------------*/
04853 
04854 #if defined (__STDC__) || defined (__cplusplus)
04855 static void
04856 yy_stack_print (short *bottom, short *top)
04857 #else
04858 static void
04859 yy_stack_print (bottom, top)
04860     short *bottom;
04861     short *top;
04862 #endif
04863 {
04864   YYFPRINTF (stderr, "Stack now");
04865   for (/* Nothing. */; bottom <= top; ++bottom)
04866     YYFPRINTF (stderr, " %d", *bottom);
04867   YYFPRINTF (stderr, "\n");
04868 }
04869 
04870 # define YY_STACK_PRINT(Bottom, Top)                            \
04871 do {                                                            \
04872   if (yydebug)                                                  \
04873     yy_stack_print ((Bottom), (Top));                           \
04874 } while (0)
04875 
04876 
04877 /*------------------------------------------------.
04878 | Report that the YYRULE is going to be reduced.  |
04879 `------------------------------------------------*/
04880 
04881 #if defined (__STDC__) || defined (__cplusplus)
04882 static void
04883 yy_reduce_print (int yyrule)
04884 #else
04885 static void
04886 yy_reduce_print (yyrule)
04887     int yyrule;
04888 #endif
04889 {
04890   int yyi;
04891   unsigned int yylineno = yyrline[yyrule];
04892   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
04893              yyrule - 1, yylineno);
04894   /* Print the symbols being reduced, and their result.  */
04895   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
04896     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
04897   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
04898 }
04899 
04900 # define YY_REDUCE_PRINT(Rule)          \
04901 do {                                    \
04902   if (yydebug)                          \
04903     yy_reduce_print (Rule);             \
04904 } while (0)
04905 
04906 /* Nonzero means print parse trace.  It is left uninitialized so that
04907    multiple parsers can coexist.  */
04908 int yydebug;
04909 #else /* !YYDEBUG */
04910 # define YYDPRINTF(Args)
04911 # define YYDSYMPRINT(Args)
04912 # define YYDSYMPRINTF(Title, Token, Value, Location)
04913 # define YY_STACK_PRINT(Bottom, Top)
04914 # define YY_REDUCE_PRINT(Rule)
04915 #endif /* !YYDEBUG */
04916 
04917 
04918 /* YYINITDEPTH -- initial size of the parser's stacks.  */
04919 #ifndef YYINITDEPTH
04920 # define YYINITDEPTH 200
04921 #endif
04922 
04923 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
04924    if the built-in stack extension method is used).
04925 
04926    Do not make this value too large; the results are undefined if
04927    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
04928    evaluated with infinite-precision integer arithmetic.  */
04929 
04930 #if YYMAXDEPTH == 0
04931 # undef YYMAXDEPTH
04932 #endif
04933 
04934 #ifndef YYMAXDEPTH
04935 # define YYMAXDEPTH 10000
04936 #endif
04937 
04938 
04939 
04940 #if YYERROR_VERBOSE
04941 
04942 # ifndef yystrlen
04943 #  if defined (__GLIBC__) && defined (_STRING_H)
04944 #   define yystrlen strlen
04945 #  else
04946 /* Return the length of YYSTR.  */
04947 static YYSIZE_T
04948 #   if defined (__STDC__) || defined (__cplusplus)
04949 yystrlen (const char *yystr)
04950 #   else
04951 yystrlen (yystr)
04952      const char *yystr;
04953 #   endif
04954 {
04955   register const char *yys = yystr;
04956 
04957   while (*yys++ != '\0')
04958     continue;
04959 
04960   return yys - yystr - 1;
04961 }
04962 #  endif
04963 # endif
04964 
04965 # ifndef yystpcpy
04966 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
04967 #   define yystpcpy stpcpy
04968 #  else
04969 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
04970    YYDEST.  */
04971 static char *
04972 #   if defined (__STDC__) || defined (__cplusplus)
04973 yystpcpy (char *yydest, const char *yysrc)
04974 #   else
04975 yystpcpy (yydest, yysrc)
04976      char *yydest;
04977      const char *yysrc;
04978 #   endif
04979 {
04980   register char *yyd = yydest;
04981   register const char *yys = yysrc;
04982 
04983   while ((*yyd++ = *yys++) != '\0')
04984     continue;
04985 
04986   return yyd - 1;
04987 }
04988 #  endif
04989 # endif
04990 
04991 #endif /* !YYERROR_VERBOSE */
04992 
04993 
04994 
04995 #if YYDEBUG
04996 /*--------------------------------.
04997 | Print this symbol on YYOUTPUT.  |
04998 `--------------------------------*/
04999 
05000 #if defined (__STDC__) || defined (__cplusplus)
05001 static void
05002 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
05003 #else
05004 static void
05005 yysymprint (yyoutput, yytype, yyvaluep)
05006     FILE *yyoutput;
05007     int yytype;
05008     YYSTYPE *yyvaluep;
05009 #endif
05010 {
05011   /* Pacify ``unused variable'' warnings.  */
05012   (void) yyvaluep;
05013 
05014   if (yytype < YYNTOKENS)
05015     {
05016       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
05017 # ifdef YYPRINT
05018       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
05019 # endif
05020     }
05021   else
05022     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
05023 
05024   switch (yytype)
05025     {
05026       default:
05027         break;
05028     }
05029   YYFPRINTF (yyoutput, ")");
05030 }
05031 
05032 #endif /* ! YYDEBUG */
05033 /*-----------------------------------------------.
05034 | Release the memory associated to this symbol.  |
05035 `-----------------------------------------------*/
05036 
05037 #if defined (__STDC__) || defined (__cplusplus)
05038 static void
05039 yydestruct (int yytype, YYSTYPE *yyvaluep)
05040 #else
05041 static void
05042 yydestruct (yytype, yyvaluep)
05043     int yytype;
05044     YYSTYPE *yyvaluep;
05045 #endif
05046 {
05047   /* Pacify ``unused variable'' warnings.  */
05048   (void) yyvaluep;
05049 
05050   switch (yytype)
05051     {
05052 
05053       default:
05054         break;
05055     }
05056 }
05057 
05058 
05059 /* Prevent warnings from -Wmissing-prototypes.  */
05060 
05061 #ifdef YYPARSE_PARAM
05062 # if defined (__STDC__) || defined (__cplusplus)
05063 int yyparse (void *YYPARSE_PARAM);
05064 # else
05065 int yyparse ();
05066 # endif
05067 #else /* ! YYPARSE_PARAM */
05068 #if defined (__STDC__) || defined (__cplusplus)
05069 int yyparse (void);
05070 #else
05071 int yyparse ();
05072 #endif
05073 #endif /* ! YYPARSE_PARAM */
05074 
05075 
05076 
05077 /* The lookahead symbol.  */
05078 int yychar;
05079 
05080 /* The semantic value of the lookahead symbol.  */
05081 YYSTYPE yylval;
05082 
05083 /* Number of syntax errors so far.  */
05084 int yynerrs;
05085 
05086 
05087 
05088 /*----------.
05089 | yyparse.  |
05090 `----------*/
05091 
05092 #ifdef YYPARSE_PARAM
05093 # if defined (__STDC__) || defined (__cplusplus)
05094 int yyparse (void *YYPARSE_PARAM)
05095 # else
05096 int yyparse (YYPARSE_PARAM)
05097   void *YYPARSE_PARAM;
05098 # endif
05099 #else /* ! YYPARSE_PARAM */
05100 #if defined (__STDC__) || defined (__cplusplus)
05101 int
05102 yyparse (void)
05103 #else
05104 int
05105 yyparse ()
05106 
05107 #endif
05108 #endif
05109 {
05110   
05111   register int yystate;
05112   register int yyn;
05113   int yyresult;
05114   /* Number of tokens to shift before error messages enabled.  */
05115   int yyerrstatus;
05116   /* Lookahead token as an internal (translated) token number.  */
05117   int yytoken = 0;
05118 
05119   /* Three stacks and their tools:
05120      `yyss': related to states,
05121      `yyvs': related to semantic values,
05122      `yyls': related to locations.
05123 
05124      Refer to the stacks thru separate pointers, to allow yyoverflow
05125      to reallocate them elsewhere.  */
05126 
05127   /* The state stack.  */
05128   short yyssa[YYINITDEPTH];
05129   short *yyss = yyssa;
05130   register short *yyssp;
05131 
05132   /* The semantic value stack.  */
05133   YYSTYPE yyvsa[YYINITDEPTH];
05134   YYSTYPE *yyvs = yyvsa;
05135   register YYSTYPE *yyvsp;
05136 
05137 
05138 
05139 #define YYPOPSTACK   (yyvsp--, yyssp--)
05140 
05141   YYSIZE_T yystacksize = YYINITDEPTH;
05142 
05143   /* The variables used to return semantic value and location from the
05144      action routines.  */
05145   YYSTYPE yyval;
05146 
05147 
05148   /* When reducing, the number of symbols on the RHS of the reduced
05149      rule.  */
05150   int yylen;
05151 
05152   YYDPRINTF ((stderr, "Starting parse\n"));
05153 
05154   yystate = 0;
05155   yyerrstatus = 0;
05156   yynerrs = 0;
05157   yychar = YYEMPTY;             /* Cause a token to be read.  */
05158 
05159   /* Initialize stack pointers.
05160      Waste one element of value and location stack
05161      so that they stay on the same level as the state stack.
05162      The wasted elements are never initialized.  */
05163 
05164   yyssp = yyss;
05165   yyvsp = yyvs;
05166 
05167   goto yysetstate;
05168 
05169 /*------------------------------------------------------------.
05170 | yynewstate -- Push a new state, which is found in yystate.  |
05171 `------------------------------------------------------------*/
05172  yynewstate:
05173   /* In all cases, when you get here, the value and location stacks
05174      have just been pushed. so pushing a state here evens the stacks.
05175      */
05176   yyssp++;
05177 
05178  yysetstate:
05179   *yyssp = yystate;
05180 
05181   if (yyss + yystacksize - 1 <= yyssp)
05182     {
05183       /* Get the current used size of the three stacks, in elements.  */
05184       YYSIZE_T yysize = yyssp - yyss + 1;
05185 
05186 #ifdef yyoverflow
05187       {
05188         /* Give user a chance to reallocate the stack. Use copies of
05189            these so that the &'s don't force the real ones into
05190            memory.  */
05191         YYSTYPE *yyvs1 = yyvs;
05192         short *yyss1 = yyss;
05193 
05194 
05195         /* Each stack pointer address is followed by the size of the
05196            data in use in that stack, in bytes.  This used to be a
05197            conditional around just the two extra args, but that might
05198            be undefined if yyoverflow is a macro.  */
05199         yyoverflow ("parser stack overflow",
05200                     &yyss1, yysize * sizeof (*yyssp),
05201                     &yyvs1, yysize * sizeof (*yyvsp),
05202 
05203                     &yystacksize);
05204 
05205         yyss = yyss1;
05206         yyvs = yyvs1;
05207       }
05208 #else /* no yyoverflow */
05209 # ifndef YYSTACK_RELOCATE
05210       goto yyoverflowlab;
05211 # else
05212       /* Extend the stack our own way.  */
05213       if (YYMAXDEPTH <= yystacksize)
05214         goto yyoverflowlab;
05215       yystacksize *= 2;
05216       if (YYMAXDEPTH < yystacksize)
05217         yystacksize = YYMAXDEPTH;
05218 
05219       {
05220         short *yyss1 = yyss;
05221         union yyalloc *yyptr =
05222           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
05223         if (! yyptr)
05224           goto yyoverflowlab;
05225         YYSTACK_RELOCATE (yyss);
05226         YYSTACK_RELOCATE (yyvs);
05227 
05228 #  undef YYSTACK_RELOCATE
05229         if (yyss1 != yyssa)
05230           YYSTACK_FREE (yyss1);
05231       }
05232 # endif
05233 #endif /* no yyoverflow */
05234 
05235       yyssp = yyss + yysize - 1;
05236       yyvsp = yyvs + yysize - 1;
05237 
05238 
05239       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
05240                   (unsigned long int) yystacksize));
05241 
05242       if (yyss + yystacksize - 1 <= yyssp)
05243         YYABORT;
05244     }
05245 
05246   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
05247 
05248   goto yybackup;
05249 
05250 /*-----------.
05251 | yybackup.  |
05252 `-----------*/
05253 yybackup:
05254 
05255 /* Do appropriate processing given the current state.  */
05256 /* Read a lookahead token if we need one and don't already have one.  */
05257 /* yyresume: */
05258 
05259   /* First try to decide what to do without reference to lookahead token.  */
05260 
05261   yyn = yypact[yystate];
05262   if (yyn == YYPACT_NINF)
05263     goto yydefault;
05264 
05265   /* Not known => get a lookahead token if don't already have one.  */
05266 
05267   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
05268   if (yychar == YYEMPTY)
05269     {
05270       YYDPRINTF ((stderr, "Reading a token: "));
05271       yychar = YYLEX;
05272     }
05273 
05274   if (yychar <= YYEOF)
05275     {
05276       yychar = yytoken = YYEOF;
05277       YYDPRINTF ((stderr, "Now at end of input.\n"));
05278     }
05279   else
05280     {
05281       yytoken = YYTRANSLATE (yychar);
05282       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
05283     }
05284 
05285   /* If the proper action on seeing token YYTOKEN is to reduce or to
05286      detect an error, take that action.  */
05287   yyn += yytoken;
05288   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
05289     goto yydefault;
05290   yyn = yytable[yyn];
05291   if (yyn <= 0)
05292     {
05293       if (yyn == 0 || yyn == YYTABLE_NINF)
05294         goto yyerrlab;
05295       yyn = -yyn;
05296       goto yyreduce;
05297     }
05298 
05299   if (yyn == YYFINAL)
05300     YYACCEPT;
05301 
05302   /* Shift the lookahead token.  */
05303   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
05304 
05305   /* Discard the token being shifted unless it is eof.  */
05306   if (yychar != YYEOF)
05307     yychar = YYEMPTY;
05308 
05309   *++yyvsp = yylval;
05310 
05311 
05312   /* Count tokens shifted since error; after three, turn off error
05313      status.  */
05314   if (yyerrstatus)
05315     yyerrstatus--;
05316 
05317   yystate = yyn;
05318   goto yynewstate;
05319 
05320 
05321 /*-----------------------------------------------------------.
05322 | yydefault -- do the default action for the current state.  |
05323 `-----------------------------------------------------------*/
05324 yydefault:
05325   yyn = yydefact[yystate];
05326   if (yyn == 0)
05327     goto yyerrlab;
05328   goto yyreduce;
05329 
05330 
05331 /*-----------------------------.
05332 | yyreduce -- Do a reduction.  |
05333 `-----------------------------*/
05334 yyreduce:
05335   /* yyn is the number of a rule to reduce with.  */
05336   yylen = yyr2[yyn];
05337 
05338   /* If YYLEN is nonzero, implement the default value of the action:
05339      `$$ = $1'.
05340 
05341      Otherwise, the following line sets YYVAL to garbage.
05342      This behavior is undocumented and Bison
05343      users should not rely upon it.  Assigning to YYVAL
05344      unconditionally makes the parser a bit smaller, and it avoids a
05345      GCC warning that YYVAL may be used uninitialized.  */
05346   yyval = yyvsp[1-yylen];
05347 
05348 
05349   YY_REDUCE_PRINT (yyn);
05350   switch (yyn)
05351     {
05352         case 2:
05353 #line 757 "parser.y"
05354     {
05355         perform_stack = NULL;
05356         current_statement = NULL;
05357         next_label_id = 0;
05358         current_linage = 0;
05359         current_storage = 0;
05360         eval_level = 0;
05361         eval_inc = 0;
05362         eval_inc2 = 0;
05363         prog_end = 0;
05364         depth = 0;
05365         inspect_keyword = 0;
05366         check_unreached = 0;
05367         samearea = 1;
05368         memset ((char *)eval_check, 0, sizeof(eval_check));
05369         memset ((char *)term_array, 0, sizeof(term_array));
05370         linage_file = NULL;
05371         next_label_list = NULL;
05372         current_program = cb_build_program (NULL, 0);
05373         cb_build_registers ();
05374         current_program->flag_main = cb_flag_main;
05375   ;}
05376     break;
05377 
05378   case 3:
05379 #line 781 "parser.y"
05380     {
05381         if (!current_program->flag_validated) {
05382                 current_program->flag_validated = 1;
05383                 cb_validate_program_body (current_program);
05384         }
05385         if (depth > 1) {
05386                 cb_error (_("Multiple PROGRAM-ID's without matching END PROGRAM"));
05387         }
05388         if (errorcount > 0) {
05389                 YYABORT;
05390         }
05391         if (!current_program->entry_list) {
05392                 emit_entry (current_program->program_id, 0, NULL);
05393         }
05394   ;}
05395     break;
05396 
05397   case 8:
05398 #line 810 "parser.y"
05399     { cb_validate_program_environment (current_program); ;}
05400     break;
05401 
05402   case 9:
05403 #line 811 "parser.y"
05404     { cb_validate_program_data (current_program); ;}
05405     break;
05406 
05407   case 11:
05408 #line 819 "parser.y"
05409     { cb_validate_program_environment (current_program); ;}
05410     break;
05411 
05412   case 12:
05413 #line 820 "parser.y"
05414     { cb_validate_program_data (current_program); ;}
05415     break;
05416 
05417   case 14:
05418 #line 828 "parser.y"
05419     { cb_validate_program_environment (current_program); ;}
05420     break;
05421 
05422   case 15:
05423 #line 829 "parser.y"
05424     { cb_validate_program_data (current_program); ;}
05425     break;
05426 
05427   case 21:
05428 #line 841 "parser.y"
05429     {
05430         char                    *s;
05431 
05432         if (CB_LITERAL_P (yyvsp[-1])) {
05433                 s = (char *)(CB_LITERAL (yyvsp[-1])->data);
05434         } else {
05435                 s = (char *)(CB_NAME (yyvsp[-1]));
05436         }
05437         if (depth) {
05438                 depth--;
05439         }
05440         if (strcmp (stack_progid[depth], s)) {
05441                 cb_error (_("END PROGRAM '%s' is different to PROGRAM-ID '%s'"),
05442                         s, stack_progid[depth]);
05443         }
05444         if (!current_program->flag_validated) {
05445                 current_program->flag_validated = 1;
05446                 cb_validate_program_body (current_program);
05447         }
05448   ;}
05449     break;
05450 
05451   case 22:
05452 #line 865 "parser.y"
05453     {
05454         char                    *s;
05455 
05456         if (CB_LITERAL_P (yyvsp[-1])) {
05457                 s = (char *)(CB_LITERAL (yyvsp[-1])->data);
05458         } else {
05459                 s = (char *)(CB_NAME (yyvsp[-1]));
05460         }
05461         if (depth) {
05462                 depth--;
05463         }
05464         if (strcmp (stack_progid[depth], s)) {
05465                 cb_error (_("END PROGRAM '%s' is different to PROGRAM-ID '%s'"),
05466                         s, stack_progid[depth]);
05467         }
05468         if (!current_program->flag_validated) {
05469                 current_program->flag_validated = 1;
05470                 cb_validate_program_body (current_program);
05471         }
05472   ;}
05473     break;
05474 
05475   case 23:
05476 #line 889 "parser.y"
05477     {
05478         char                    *s;
05479 
05480         if (CB_LITERAL_P (yyvsp[-1])) {
05481                 s = (char *)(CB_LITERAL (yyvsp[-1])->data);
05482         } else {
05483                 s = (char *)(CB_NAME (yyvsp[-1]));
05484         }
05485         if (depth) {
05486                 depth--;
05487         }
05488         if (strcmp (stack_progid[depth], s)) {
05489                 cb_error (_("END FUNCTION '%s' is different to FUNCTION-ID '%s'"),
05490                         s, stack_progid[depth]);
05491         }
05492         if (!current_program->flag_validated) {
05493                 current_program->flag_validated = 1;
05494                 cb_validate_program_body (current_program);
05495         }
05496   ;}
05497     break;
05498 
05499   case 24:
05500 #line 918 "parser.y"
05501     {
05502         current_section = NULL;
05503         current_paragraph = NULL;
05504         if (CB_LITERAL_P (yyvsp[-1])) {
05505                 stack_progid[depth] = (char *)(CB_LITERAL (yyvsp[-1])->data);
05506         } else {
05507                 stack_progid[depth] = (char *)(CB_NAME (yyvsp[-1]));
05508         }
05509         if (prog_end) {
05510                 if (!current_program->flag_validated) {
05511                         current_program->flag_validated = 1;
05512                         cb_validate_program_body (current_program);
05513                 }
05514                 perform_stack = NULL;
05515                 current_statement = NULL;
05516                 next_label_id = 0;
05517                 current_linage = 0;
05518                 current_storage = 0;
05519                 eval_level = 0;
05520                 inspect_keyword = 0;
05521                 check_unreached = 0;
05522                 eval_inc = 0;
05523                 eval_inc2 = 0;
05524                 samearea = 1;
05525                 memset ((char *)eval_check, 0, sizeof(eval_check));
05526                 memset ((char *)term_array, 0, sizeof(term_array));
05527                 linage_file = NULL;
05528                 next_label_list = NULL;
05529                 current_program = cb_build_program (current_program, depth);
05530                 cb_build_registers ();
05531         } else {
05532                 prog_end = 1;
05533         }
05534         depth++;
05535         current_program->program_id = cb_build_program_id (yyvsp[-1], yyvsp[0]);
05536   ;}
05537     break;
05538 
05539   case 26:
05540 #line 959 "parser.y"
05541     {
05542         cb_error (_("FUNCTION-ID is not yet implemented"));
05543         current_section = NULL;
05544         current_paragraph = NULL;
05545         if (CB_LITERAL_P (yyvsp[-2])) {
05546                 stack_progid[depth] = (char *)(CB_LITERAL (yyvsp[-2])->data);
05547         } else {
05548                 stack_progid[depth] = (char *)(CB_NAME (yyvsp[-2]));
05549         }
05550         if (prog_end) {
05551                 if (!current_program->flag_validated) {
05552                         current_program->flag_validated = 1;
05553                         cb_validate_program_body (current_program);
05554                 }
05555                 perform_stack = NULL;
05556                 current_statement = NULL;
05557                 next_label_id = 0;
05558                 current_linage = 0;
05559                 current_storage = 0;
05560                 eval_level = 0;
05561                 inspect_keyword = 0;
05562                 check_unreached = 0;
05563                 eval_inc = 0;
05564                 eval_inc2 = 0;
05565                 samearea = 1;
05566                 memset ((char *)eval_check, 0, sizeof(eval_check));
05567                 memset ((char *)term_array, 0, sizeof(term_array));
05568                 linage_file = NULL;
05569                 next_label_list = NULL;
05570                 current_program = cb_build_program (current_program, depth);
05571                 cb_build_registers ();
05572         } else {
05573                 prog_end = 1;
05574         }
05575         depth++;
05576         current_program->program_id = cb_build_program_id (yyvsp[-2], yyvsp[-1]);
05577         current_program->prog_type = CB_FUNCTION_TYPE;
05578         current_program->flag_recursive = 1;
05579         current_program->flag_initial = 1;
05580   ;}
05581     break;
05582 
05583   case 29:
05584 #line 1007 "parser.y"
05585     { yyval = NULL; ;}
05586     break;
05587 
05588   case 30:
05589 #line 1008 "parser.y"
05590     { yyval = yyvsp[0]; ;}
05591     break;
05592 
05593   case 33:
05594 #line 1017 "parser.y"
05595     {
05596         if (!current_program->nested_level) {
05597                 cb_error (_("COMMON may only be used in a nested program"));
05598         }
05599         current_program->flag_common = 1;
05600   ;}
05601     break;
05602 
05603   case 34:
05604 #line 1024 "parser.y"
05605     {
05606         if (!current_program->nested_level) {
05607                 cb_error (_("COMMON may only be used in a nested program"));
05608         }
05609         current_program->flag_common = 1;
05610   ;}
05611     break;
05612 
05613   case 36:
05614 #line 1035 "parser.y"
05615     {
05616         current_program->flag_initial = 1;
05617   ;}
05618     break;
05619 
05620   case 37:
05621 #line 1039 "parser.y"
05622     {
05623         current_program->flag_recursive = 1;
05624         current_program->flag_initial = 1;
05625   ;}
05626     break;
05627 
05628   case 41:
05629 #line 1064 "parser.y"
05630     {
05631         if (current_program->nested_level) {
05632                 cb_error (_("CONFIGURATION SECTION not allowed in nested programs"));
05633         }
05634   ;}
05635     break;
05636 
05637   case 53:
05638 #line 1099 "parser.y"
05639     {
05640         cb_verify (cb_debugging_line, "DEBUGGING MODE");
05641   ;}
05642     break;
05643 
05644   case 54:
05645 #line 1105 "parser.y"
05646     { ;}
05647     break;
05648 
05649   case 65:
05650 #line 1136 "parser.y"
05651     {
05652         cb_verify (cb_memory_size_clause, "MEMORY SIZE");
05653   ;}
05654     break;
05655 
05656   case 68:
05657 #line 1148 "parser.y"
05658     {
05659         current_program->collating_sequence = yyvsp[0];
05660   ;}
05661     break;
05662 
05663   case 69:
05664 #line 1155 "parser.y"
05665     {
05666         /* Ignore */
05667   ;}
05668     break;
05669 
05670   case 75:
05671 #line 1180 "parser.y"
05672     {
05673         current_program->function_spec_list = yyvsp[-1];
05674   ;}
05675     break;
05676 
05677   case 76:
05678 #line 1184 "parser.y"
05679     {
05680         functions_are_all = 1;
05681   ;}
05682     break;
05683 
05684   case 77:
05685 #line 1190 "parser.y"
05686     { yyval = cb_list_init (yyvsp[0]); ;}
05687     break;
05688 
05689   case 78:
05690 #line 1192 "parser.y"
05691     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
05692     break;
05693 
05694   case 95:
05695 #line 1232 "parser.y"
05696     {
05697         save_tree_1 = lookup_system_name (CB_NAME (yyvsp[-2]));
05698         if (save_tree_1 == cb_error_node) {
05699                 cb_error_x (yyvsp[-2], _("Unknown system-name '%s'"), CB_NAME (yyvsp[-2]));
05700         } else if (CB_SYSTEM_NAME(save_tree_1)->token != CB_DEVICE_CONSOLE) {
05701                 cb_error_x (save_tree_1, _("Invalid CRT clause"));
05702         }
05703         /* current_program->flag_screen = 1; */
05704   ;}
05705     break;
05706 
05707   case 96:
05708 #line 1242 "parser.y"
05709     {
05710         save_tree_1 = lookup_system_name (CB_NAME (yyvsp[-2]));
05711         if (save_tree_1 == cb_error_node) {
05712                 cb_error_x (yyvsp[-2], _("Unknown system-name '%s'"), CB_NAME (yyvsp[-2]));
05713         } else {
05714                 cb_define (yyvsp[0], save_tree_1);
05715         }
05716         save_tree_2 = yyvsp[0];
05717   ;}
05718     break;
05719 
05720   case 99:
05721 #line 1257 "parser.y"
05722     {
05723         cb_define_switch_name (yyvsp[0], save_tree_1, yyvsp[-3], save_tree_2);
05724   ;}
05725     break;
05726 
05727   case 100:
05728 #line 1263 "parser.y"
05729     { yyval = cb_int1; ;}
05730     break;
05731 
05732   case 101:
05733 #line 1264 "parser.y"
05734     { yyval = cb_int0; ;}
05735     break;
05736 
05737   case 102:
05738 #line 1272 "parser.y"
05739     {
05740         save_tree_1 = yyvsp[0];
05741   ;}
05742     break;
05743 
05744   case 103:
05745 #line 1276 "parser.y"
05746     {
05747         current_program->alphabet_name_list =
05748                 cb_list_add (current_program->alphabet_name_list, yyvsp[0]);
05749   ;}
05750     break;
05751 
05752   case 104:
05753 #line 1283 "parser.y"
05754     { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_NATIVE); ;}
05755     break;
05756 
05757   case 105:
05758 #line 1284 "parser.y"
05759     { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_STANDARD_1); ;}
05760     break;
05761 
05762   case 106:
05763 #line 1285 "parser.y"
05764     { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_STANDARD_2); ;}
05765     break;
05766 
05767   case 107:
05768 #line 1286 "parser.y"
05769     { yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_EBCDIC); ;}
05770     break;
05771 
05772   case 108:
05773 #line 1288 "parser.y"
05774     {
05775         yyval = cb_build_alphabet_name (save_tree_1, CB_ALPHABET_CUSTOM);
05776         CB_ALPHABET_NAME (yyval)->custom_list = yyvsp[0];
05777   ;}
05778     break;
05779 
05780   case 109:
05781 #line 1295 "parser.y"
05782     { yyval = cb_list_init (yyvsp[0]); ;}
05783     break;
05784 
05785   case 110:
05786 #line 1297 "parser.y"
05787     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
05788     break;
05789 
05790   case 111:
05791 #line 1301 "parser.y"
05792     { yyval = yyvsp[0]; ;}
05793     break;
05794 
05795   case 112:
05796 #line 1302 "parser.y"
05797     { yyval = cb_build_pair (yyvsp[-2], yyvsp[0]); ;}
05798     break;
05799 
05800   case 113:
05801 #line 1304 "parser.y"
05802     {
05803         yyval = cb_list_init (yyvsp[-1]);
05804         save_tree_2 = yyval;
05805   ;}
05806     break;
05807 
05808   case 114:
05809 #line 1309 "parser.y"
05810     {
05811         yyval = yyvsp[-1];
05812   ;}
05813     break;
05814 
05815   case 117:
05816 #line 1320 "parser.y"
05817     { yyval = yyvsp[0]; ;}
05818     break;
05819 
05820   case 118:
05821 #line 1321 "parser.y"
05822     { yyval = cb_space; ;}
05823     break;
05824 
05825   case 119:
05826 #line 1322 "parser.y"
05827     { yyval = cb_zero; ;}
05828     break;
05829 
05830   case 120:
05831 #line 1323 "parser.y"
05832     { yyval = cb_quote; ;}
05833     break;
05834 
05835   case 121:
05836 #line 1324 "parser.y"
05837     { yyval = cb_norm_high; ;}
05838     break;
05839 
05840   case 122:
05841 #line 1325 "parser.y"
05842     { yyval = cb_norm_low; ;}
05843     break;
05844 
05845   case 123:
05846 #line 1329 "parser.y"
05847     { cb_list_add (save_tree_2, yyvsp[0]); ;}
05848     break;
05849 
05850   case 124:
05851 #line 1330 "parser.y"
05852     { cb_list_add (save_tree_2, cb_space); ;}
05853     break;
05854 
05855   case 125:
05856 #line 1331 "parser.y"
05857     { cb_list_add (save_tree_2, cb_zero); ;}
05858     break;
05859 
05860   case 126:
05861 #line 1332 "parser.y"
05862     { cb_list_add (save_tree_2, cb_quote); ;}
05863     break;
05864 
05865   case 127:
05866 #line 1333 "parser.y"
05867     { cb_list_add (save_tree_2, cb_norm_high); ;}
05868     break;
05869 
05870   case 128:
05871 #line 1334 "parser.y"
05872     { cb_list_add (save_tree_2, cb_norm_low); ;}
05873     break;
05874 
05875   case 129:
05876 #line 1342 "parser.y"
05877     {
05878         if (yyvsp[0]) {
05879                 current_program->symbolic_list =
05880                         cb_list_add (current_program->symbolic_list, yyvsp[0]);
05881         }
05882         PENDING ("SYMBOLIC CHARACTERS");
05883   ;}
05884     break;
05885 
05886   case 130:
05887 #line 1353 "parser.y"
05888     {
05889         if (cb_list_length (yyvsp[-2]) != cb_list_length (yyvsp[0])) {
05890                 cb_error (_("Invalid SYMBOLIC clause"));
05891                 yyval = NULL;
05892         } else {
05893                 yyval = NULL;
05894         }
05895   ;}
05896     break;
05897 
05898   case 131:
05899 #line 1364 "parser.y"
05900     { yyval = cb_list_init (yyvsp[0]); ;}
05901     break;
05902 
05903   case 132:
05904 #line 1365 "parser.y"
05905     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
05906     break;
05907 
05908   case 133:
05909 #line 1369 "parser.y"
05910     { yyval = cb_list_init (yyvsp[0]); ;}
05911     break;
05912 
05913   case 134:
05914 #line 1370 "parser.y"
05915     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
05916     break;
05917 
05918   case 135:
05919 #line 1378 "parser.y"
05920     {
05921         current_program->class_name_list =
05922                         cb_list_add (current_program->class_name_list,
05923                         cb_build_class_name (yyvsp[-2], yyvsp[0]));
05924   ;}
05925     break;
05926 
05927   case 136:
05928 #line 1386 "parser.y"
05929     { yyval = cb_list_init (yyvsp[0]); ;}
05930     break;
05931 
05932   case 137:
05933 #line 1387 "parser.y"
05934     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
05935     break;
05936 
05937   case 138:
05938 #line 1391 "parser.y"
05939     { yyval = yyvsp[0]; ;}
05940     break;
05941 
05942   case 139:
05943 #line 1393 "parser.y"
05944     {
05945         /* if (CB_LITERAL ($1)->data[0] < CB_LITERAL ($3)->data[0]) */
05946         if (literal_value (yyvsp[-2]) < literal_value (yyvsp[0])) {
05947                 yyval = cb_build_pair (yyvsp[-2], yyvsp[0]);
05948         } else {
05949                 yyval = cb_build_pair (yyvsp[0], yyvsp[-2]);
05950         }
05951   ;}
05952     break;
05953 
05954   case 140:
05955 #line 1407 "parser.y"
05956     {
05957         cb_tree l;
05958 
05959         l = cb_build_locale_name (yyvsp[-2], yyvsp[0]);
05960         if (l != cb_error_node) {
05961                 current_program->locale_list =
05962                         cb_list_add (current_program->locale_list, l);
05963         }
05964   ;}
05965     break;
05966 
05967   case 141:
05968 #line 1422 "parser.y"
05969     {
05970         unsigned char *s = CB_LITERAL (yyvsp[0])->data;
05971 
05972         if (CB_LITERAL (yyvsp[0])->size != 1) {
05973                 cb_error_x (yyvsp[0], _("Invalid currency sign '%s'"), s);
05974         }
05975         switch (*s) {
05976         case '0':
05977         case '1':
05978         case '2':
05979         case '3':
05980         case '4':
05981         case '5':
05982         case '6':
05983         case '7':
05984         case '8':
05985         case '9':
05986         case 'a':
05987         case 'A':
05988         case 'b':
05989         case 'B':
05990         case 'c':
05991         case 'C':
05992         case 'd':
05993         case 'D':
05994         case 'e':
05995         case 'E':
05996         case 'n':
05997         case 'N':
05998         case 'p':
05999         case 'P':
06000         case 'r':
06001         case 'R':
06002         case 's':
06003         case 'S':
06004         case 'v':
06005         case 'V':
06006         case 'x':
06007         case 'X':
06008         case 'z':
06009         case 'Z':
06010         case '+':
06011         case '-':
06012         case ',':
06013         case '.':
06014         case '*':
06015         case '/':
06016         case ';':
06017         case '(':
06018         case ')':
06019         case '=':
06020         case '"':
06021         case ' ':
06022                 cb_error_x (yyvsp[0], _("Invalid currency sign '%s'"), s);
06023                 break;
06024         default:
06025                 break;
06026         }
06027         current_program->currency_symbol = s[0];
06028   ;}
06029     break;
06030 
06031   case 142:
06032 #line 1489 "parser.y"
06033     {
06034         current_program->decimal_point = ',';
06035         current_program->numeric_separator = '.';
06036   ;}
06037     break;
06038 
06039   case 143:
06040 #line 1499 "parser.y"
06041     { current_program->cursor_pos = yyvsp[0]; ;}
06042     break;
06043 
06044   case 144:
06045 #line 1506 "parser.y"
06046     { current_program->crt_status = yyvsp[0]; ;}
06047     break;
06048 
06049   case 145:
06050 #line 1513 "parser.y"
06051     {  PENDING ("SCREEN CONTROL"); ;}
06052     break;
06053 
06054   case 146:
06055 #line 1519 "parser.y"
06056     {  PENDING ("EVENT STATUS"); ;}
06057     break;
06058 
06059   case 149:
06060 #line 1531 "parser.y"
06061     {
06062         /* hack for MF compatibility */
06063         if (cb_relaxed_syntax_check) {
06064                 cb_warning (_("INPUT-OUTPUT SECTION header missing - assumed"));
06065         } else {
06066                 cb_error (_("INPUT-OUTPUT SECTION header missing"));
06067         }
06068   ;}
06069     break;
06070 
06071   case 151:
06072 #line 1540 "parser.y"
06073     {
06074         /* hack for MF compatibility */
06075         if (cb_relaxed_syntax_check) {
06076                 cb_warning (_("INPUT-OUTPUT SECTION header missing - assumed"));
06077         } else {
06078                 cb_error (_("INPUT-OUTPUT SECTION header missing"));
06079         }
06080   ;}
06081     break;
06082 
06083   case 157:
06084 #line 1565 "parser.y"
06085     {
06086         organized_seen = 0;
06087         if (yyvsp[0] == cb_error_node) {
06088                 YYERROR;
06089         }
06090 
06091         /* build new file */
06092         current_file = build_file (yyvsp[0]);
06093         current_file->optional = CB_INTEGER (yyvsp[-1])->val;
06094 
06095         /* register the file */
06096         current_program->file_list =
06097                 cb_cons (CB_TREE (current_file), current_program->file_list);
06098   ;}
06099     break;
06100 
06101   case 158:
06102 #line 1580 "parser.y"
06103     {
06104         validate_file (current_file, yyvsp[-3]);
06105   ;}
06106     break;
06107 
06108   case 174:
06109 #line 1610 "parser.y"
06110     {
06111         current_file->assign = cb_build_assignment_name (current_file, yyvsp[0]);
06112   ;}
06113     break;
06114 
06115   case 175:
06116 #line 1614 "parser.y"
06117     {
06118         current_file->fileid_assign = 1;
06119   ;}
06120     break;
06121 
06122   case 178:
06123 #line 1621 "parser.y"
06124     { current_file->organization = COB_ORG_LINE_SEQUENTIAL; ;}
06125     break;
06126 
06127   case 180:
06128 #line 1626 "parser.y"
06129     {
06130         current_file->external_assign = 1;
06131   ;}
06132     break;
06133 
06134   case 183:
06135 #line 1635 "parser.y"
06136     {
06137         const char      *s;
06138 
06139         s = "$#@DUMMY@#$";
06140         yyval = cb_build_alphanumeric_literal ((unsigned char *)s, strlen (s));
06141   ;}
06142     break;
06143 
06144   case 186:
06145 #line 1652 "parser.y"
06146     { current_file->access_mode = COB_ACCESS_SEQUENTIAL; ;}
06147     break;
06148 
06149   case 187:
06150 #line 1653 "parser.y"
06151     { current_file->access_mode = COB_ACCESS_DYNAMIC; ;}
06152     break;
06153 
06154   case 188:
06155 #line 1654 "parser.y"
06156     { current_file->access_mode = COB_ACCESS_RANDOM; ;}
06157     break;
06158 
06159   case 189:
06160 #line 1662 "parser.y"
06161     {
06162         struct cb_alt_key *p;
06163         struct cb_alt_key *l;
06164 
06165         p = cobc_malloc (sizeof (struct cb_alt_key));
06166         p->key = yyvsp[-1];
06167         p->duplicates = CB_INTEGER (yyvsp[0])->val;
06168         p->next = NULL;
06169 
06170         /* add to the end of list */
06171         if (current_file->alt_key_list == NULL) {
06172                 current_file->alt_key_list = p;
06173         } else {
06174                 l = current_file->alt_key_list;
06175                 for (; l->next; l = l->next);
06176                 l->next = p;
06177         }
06178   ;}
06179     break;
06180 
06181   case 190:
06182 #line 1687 "parser.y"
06183     {
06184         PENDING ("COLLATING SEQUENCE");
06185   ;}
06186     break;
06187 
06188   case 191:
06189 #line 1697 "parser.y"
06190     {
06191         current_file->file_status = yyvsp[-1];
06192         if (yyvsp[0]) {
06193                 PENDING ("2nd FILE STATUS");
06194         }
06195   ;}
06196     break;
06197 
06198   case 196:
06199 #line 1718 "parser.y"
06200     { current_file->lock_mode = COB_LOCK_MANUAL; ;}
06201     break;
06202 
06203   case 197:
06204 #line 1719 "parser.y"
06205     { current_file->lock_mode = COB_LOCK_AUTOMATIC; ;}
06206     break;
06207 
06208   case 198:
06209 #line 1720 "parser.y"
06210     { current_file->lock_mode = COB_LOCK_EXCLUSIVE; ;}
06211     break;
06212 
06213   case 201:
06214 #line 1726 "parser.y"
06215     {
06216         current_file->lock_mode |= COB_LOCK_MULTIPLE;
06217   ;}
06218     break;
06219 
06220   case 202:
06221 #line 1729 "parser.y"
06222     { PENDING ("WITH ROLLBACK"); ;}
06223     break;
06224 
06225   case 207:
06226 #line 1746 "parser.y"
06227     {
06228         if (organized_seen) {
06229                 cb_error (_("Invalid or duplicate ORGANIZED clause"));
06230         } else {
06231                 current_file->organization = COB_ORG_INDEXED;
06232                 organized_seen = 1;
06233         }
06234   ;}
06235     break;
06236 
06237   case 208:
06238 #line 1755 "parser.y"
06239     {
06240         if (organized_seen) {
06241                 cb_error (_("Invalid or duplicate ORGANIZED clause"));
06242         } else {
06243                 current_file->organization = COB_ORG_SEQUENTIAL;
06244                 organized_seen = 1;
06245         }
06246   ;}
06247     break;
06248 
06249   case 209:
06250 #line 1764 "parser.y"
06251     {
06252         if (organized_seen) {
06253                 cb_error (_("Invalid or duplicate ORGANIZED clause"));
06254         } else {
06255                 current_file->organization = COB_ORG_RELATIVE;
06256                 organized_seen = 1;
06257         }
06258   ;}
06259     break;
06260 
06261   case 210:
06262 #line 1773 "parser.y"
06263     {
06264         if (organized_seen) {
06265                 cb_error (_("Invalid or duplicate ORGANIZED clause"));
06266         } else {
06267                 current_file->organization = COB_ORG_LINE_SEQUENTIAL;
06268                 organized_seen = 1;
06269         }
06270   ;}
06271     break;
06272 
06273   case 211:
06274 #line 1788 "parser.y"
06275     {
06276         cb_verify (cb_padding_character_clause, "PADDING CHARACTER");
06277   ;}
06278     break;
06279 
06280   case 212:
06281 #line 1797 "parser.y"
06282     { /* ignored */ ;}
06283     break;
06284 
06285   case 213:
06286 #line 1805 "parser.y"
06287     {
06288         current_file->key = yyvsp[0];
06289   ;}
06290     break;
06291 
06292   case 214:
06293 #line 1811 "parser.y"
06294     { yyval = yyvsp[0]; ;}
06295     break;
06296 
06297   case 215:
06298 #line 1812 "parser.y"
06299     { PENDING ("SPLIT KEYS"); ;}
06300     break;
06301 
06302   case 216:
06303 #line 1813 "parser.y"
06304     { PENDING ("SPLIT KEYS"); ;}
06305     break;
06306 
06307   case 217:
06308 #line 1819 "parser.y"
06309     { current_file->key = yyvsp[0]; ;}
06310     break;
06311 
06312   case 218:
06313 #line 1826 "parser.y"
06314     { /* ignored */ ;}
06315     break;
06316 
06317   case 219:
06318 #line 1833 "parser.y"
06319     { current_file->sharing = yyvsp[0]; ;}
06320     break;
06321 
06322   case 220:
06323 #line 1837 "parser.y"
06324     { yyval = NULL; PENDING ("SHARING ALL OTHER"); ;}
06325     break;
06326 
06327   case 221:
06328 #line 1838 "parser.y"
06329     { yyval = cb_int1; ;}
06330     break;
06331 
06332   case 222:
06333 #line 1839 "parser.y"
06334     { yyval = cb_int0; ;}
06335     break;
06336 
06337   case 231:
06338 #line 1869 "parser.y"
06339     {
06340         cb_tree l;
06341 
06342         switch (CB_INTEGER (yyvsp[-3])->val) {
06343         case 0:
06344                 /* SAME AREA */
06345                 break;
06346         case 1:
06347                 /* SAME RECORD */
06348                 for (l = yyvsp[0]; l; l = CB_CHAIN (l)) {
06349                         if (CB_VALUE (l) != cb_error_node) {
06350                                 CB_FILE (cb_ref (CB_VALUE (l)))->same_clause = samearea;
06351                         }
06352                 }
06353                 samearea++;
06354                 break;
06355         case 2:
06356                 /* SAME SORT-MERGE */
06357                 break;
06358         }
06359   ;}
06360     break;
06361 
06362   case 232:
06363 #line 1893 "parser.y"
06364     { yyval = cb_int0; ;}
06365     break;
06366 
06367   case 233:
06368 #line 1894 "parser.y"
06369     { yyval = cb_int1; ;}
06370     break;
06371 
06372   case 234:
06373 #line 1895 "parser.y"
06374     { yyval = cb_int2; ;}
06375     break;
06376 
06377   case 235:
06378 #line 1896 "parser.y"
06379     { yyval = cb_int2; ;}
06380     break;
06381 
06382   case 236:
06383 #line 1903 "parser.y"
06384     {
06385         cb_verify (cb_multiple_file_tape_clause, "MULTIPLE FILE TAPE");
06386   ;}
06387     break;
06388 
06389   case 239:
06390 #line 1914 "parser.y"
06391     { ;}
06392     break;
06393 
06394   case 245:
06395 #line 1942 "parser.y"
06396     { current_storage = CB_STORAGE_FILE; ;}
06397     break;
06398 
06399   case 247:
06400 #line 1945 "parser.y"
06401     {
06402         /* hack for MF compatibility */
06403         if (cb_relaxed_syntax_check) {
06404                 cb_warning (_("FILE SECTION header missing - assumed"));
06405         } else {
06406                 cb_error (_("FILE SECTION header missing"));
06407         }
06408         current_storage = CB_STORAGE_FILE;
06409   ;}
06410     break;
06411 
06412   case 251:
06413 #line 1964 "parser.y"
06414     {
06415         if (yyvsp[0] && yyvsp[0] != cb_error_node) {
06416                 finalize_file (current_file, CB_FIELD (yyvsp[0]));
06417         } else {
06418                 cb_error (_("RECORD description missing or invalid"));
06419         }
06420   ;}
06421     break;
06422 
06423   case 252:
06424 #line 1976 "parser.y"
06425     {
06426         if (yyvsp[0] && yyvsp[0] != cb_error_node) {
06427                 finalize_file (current_file, CB_FIELD (yyvsp[0]));
06428         } else {
06429                 cb_error (_("RECORD description missing or invalid"));
06430         }
06431   ;}
06432     break;
06433 
06434   case 254:
06435 #line 1987 "parser.y"
06436     { yyval = cb_int0; ;}
06437     break;
06438 
06439   case 255:
06440 #line 1988 "parser.y"
06441     { yyval = cb_int1; ;}
06442     break;
06443 
06444   case 256:
06445 #line 1998 "parser.y"
06446     {
06447         if (yyvsp[0] == cb_error_node) {
06448                 YYERROR;
06449         }
06450 
06451         current_file = CB_FILE (cb_ref (yyvsp[0]));
06452         if (yyvsp[-1] == cb_int1) {
06453                 current_file->organization = COB_ORG_SORT;
06454         }
06455   ;}
06456     break;
06457 
06458   case 257:
06459 #line 2009 "parser.y"
06460     {
06461         /* Shut up bison */
06462         dummy_tree = yyvsp[-2];
06463   ;}
06464     break;
06465 
06466   case 260:
06467 #line 2021 "parser.y"
06468     {
06469         if (current_file->global) {
06470                 cb_error (_("File cannot have both EXTERNAL and GLOBAL clauses"));
06471         }
06472         current_file->external = 1;
06473   ;}
06474     break;
06475 
06476   case 261:
06477 #line 2028 "parser.y"
06478     {
06479         if (current_file->external) {
06480                 cb_error (_("File cannot have both EXTERNAL and GLOBAL clauses"));
06481         }
06482         current_file->global = 1;
06483   ;}
06484     break;
06485 
06486   case 271:
06487 #line 2050 "parser.y"
06488     { /* ignored */ ;}
06489     break;
06490 
06491   case 275:
06492 #line 2060 "parser.y"
06493     {
06494         if (current_file->organization == COB_ORG_LINE_SEQUENTIAL) {
06495                 cb_warning (_("RECORD clause ignored for LINE SEQUENTIAL"));
06496         } else {
06497                 current_file->record_max = cb_get_int (yyvsp[-1]);
06498                 if (current_file->record_max < 1)  {
06499                         current_file->record_max = 1;
06500                         cb_error (_("RECORD clause invalid"));
06501                 }
06502         }
06503   ;}
06504     break;
06505 
06506   case 276:
06507 #line 2072 "parser.y"
06508     {
06509         int     error_ind = 0;
06510 
06511         if (current_file->organization == COB_ORG_LINE_SEQUENTIAL) {
06512                 cb_warning (_("RECORD clause ignored for LINE SEQUENTIAL"));
06513         } else {
06514                 current_file->record_min = cb_get_int (yyvsp[-3]);
06515                 current_file->record_max = cb_get_int (yyvsp[-1]);
06516                 if (current_file->record_min < 0)  {
06517                         current_file->record_min = 0;
06518                         error_ind = 1;
06519                 }
06520                 if (current_file->record_max < 1)  {
06521                         current_file->record_max = 1;
06522                         error_ind = 1;
06523                 }
06524                 if (current_file->record_max <= current_file->record_min)  {
06525                         error_ind = 1;
06526                 }
06527                 if (error_ind) {
06528                         cb_error (_("RECORD clause invalid"));
06529                 }
06530         }
06531   ;}
06532     break;
06533 
06534   case 277:
06535 #line 2098 "parser.y"
06536     {
06537         int     error_ind = 0;
06538 
06539         current_file->record_min = yyvsp[-3] ? cb_get_int (yyvsp[-3]) : 0;
06540         current_file->record_max = yyvsp[-2] ? cb_get_int (yyvsp[-2]) : 0;
06541         if (yyvsp[-3] && current_file->record_min < 0)  {
06542                 current_file->record_min = 0;
06543                 error_ind = 1;
06544         }
06545         if (yyvsp[-2] && current_file->record_max < 1)  {
06546                 current_file->record_max = 1;
06547                 error_ind = 1;
06548         }
06549         if ((yyvsp[-3] || yyvsp[-2]) && current_file->record_max <= current_file->record_min)  {
06550                 error_ind = 1;
06551         }
06552         if (error_ind) {
06553                 cb_error (_("RECORD clause invalid"));
06554         }
06555   ;}
06556     break;
06557 
06558   case 279:
06559 #line 2122 "parser.y"
06560     {
06561         current_file->record_depending = yyvsp[0];
06562   ;}
06563     break;
06564 
06565   case 280:
06566 #line 2128 "parser.y"
06567     { yyval = NULL; ;}
06568     break;
06569 
06570   case 281:
06571 #line 2129 "parser.y"
06572     { yyval = yyvsp[0]; ;}
06573     break;
06574 
06575   case 282:
06576 #line 2133 "parser.y"
06577     { yyval = NULL; ;}
06578     break;
06579 
06580   case 283:
06581 #line 2134 "parser.y"
06582     { yyval = yyvsp[0]; ;}
06583     break;
06584 
06585   case 284:
06586 #line 2142 "parser.y"
06587     {
06588         cb_verify (cb_label_records_clause, "LABEL RECORDS");
06589   ;}
06590     break;
06591 
06592   case 287:
06593 #line 2157 "parser.y"
06594     {
06595         cb_verify (cb_value_of_clause, "VALUE OF");
06596   ;}
06597     break;
06598 
06599   case 288:
06600 #line 2161 "parser.y"
06601     {
06602         if (!current_file->assign) {
06603                 current_file->assign = cb_build_assignment_name (current_file, yyvsp[0]);
06604         }
06605   ;}
06606     break;
06607 
06608   case 291:
06609 #line 2177 "parser.y"
06610     {
06611         cb_verify (cb_data_records_clause, "DATA RECORDS");
06612   ;}
06613     break;
06614 
06615   case 292:
06616 #line 2188 "parser.y"
06617     {
06618         if (current_file->organization != COB_ORG_LINE_SEQUENTIAL
06619             && current_file->organization != COB_ORG_SEQUENTIAL) {
06620                 cb_error (_("LINAGE clause with wrong file type"));
06621                 yyval = cb_error_node;
06622         } else {
06623                 current_file->linage = yyvsp[-2];
06624                 current_file->organization = COB_ORG_LINE_SEQUENTIAL;
06625                 if (current_linage == 0) {
06626                         linage_file = current_file;
06627                 }
06628                 current_linage++;
06629         }
06630   ;}
06631     break;
06632 
06633   case 298:
06634 #line 2216 "parser.y"
06635     {
06636         current_file->latfoot = yyvsp[-1];
06637   ;}
06638     break;
06639 
06640   case 299:
06641 #line 2223 "parser.y"
06642     {
06643         current_file->lattop = yyvsp[-1];
06644   ;}
06645     break;
06646 
06647   case 300:
06648 #line 2230 "parser.y"
06649     {
06650         current_file->latbot = yyvsp[0];
06651   ;}
06652     break;
06653 
06654   case 301:
06655 #line 2239 "parser.y"
06656     { /* ignore */ ;}
06657     break;
06658 
06659   case 302:
06660 #line 2247 "parser.y"
06661     {
06662         if (yyvsp[0] != cb_error_node) {
06663                 cb_tree x;
06664 
06665                 x = cb_ref (yyvsp[0]);
06666                 if (!CB_ALPHABET_NAME_P (x)) {
06667                         cb_error_x (yyvsp[0], _("Alphabet-name is expected '%s'"), cb_name (yyvsp[0]));
06668                 } else if (CB_ALPHABET_NAME (x)->custom_list) {
06669                         PENDING ("CODE-SET");
06670                 }
06671         }
06672   ;}
06673     break;
06674 
06675   case 303:
06676 #line 2265 "parser.y"
06677     {
06678         cb_warning (_("file descriptor REPORT IS"));
06679   ;}
06680     break;
06681 
06682   case 304:
06683 #line 2269 "parser.y"
06684     {
06685         cb_warning (_("file descriptor REPORTS ARE"));
06686   ;}
06687     break;
06688 
06689   case 306:
06690 #line 2280 "parser.y"
06691     { current_storage = CB_STORAGE_WORKING; ;}
06692     break;
06693 
06694   case 307:
06695 #line 2282 "parser.y"
06696     {
06697         if (yyvsp[0]) {
06698                 current_program->working_storage =
06699                         cb_field_add (current_program->working_storage, CB_FIELD (yyvsp[0]));
06700         }
06701   ;}
06702     break;
06703 
06704   case 308:
06705 #line 2291 "parser.y"
06706     { yyval = NULL; ;}
06707     break;
06708 
06709   case 309:
06710 #line 2292 "parser.y"
06711     { yyval = yyvsp[0]; ;}
06712     break;
06713 
06714   case 310:
06715 #line 2296 "parser.y"
06716     {
06717         current_field = NULL;
06718         description_field = NULL;
06719         cb_clear_real_field ();
06720   ;}
06721     break;
06722 
06723   case 311:
06724 #line 2302 "parser.y"
06725     {
06726         struct cb_field *p;
06727 
06728         for (p = description_field; p; p = p->sister) {
06729                 cb_validate_field (p);
06730         }
06731         yyval = CB_TREE (description_field);
06732   ;}
06733     break;
06734 
06735   case 316:
06736 #line 2322 "parser.y"
06737     {
06738         cb_tree x;
06739 
06740         x = cb_build_field_tree (yyvsp[-1], yyvsp[0], current_field, current_storage, current_file);
06741         if (x == cb_error_node) {
06742                 YYERROR;
06743         } else {
06744                 current_field = CB_FIELD (x);
06745         }
06746   ;}
06747     break;
06748 
06749   case 317:
06750 #line 2333 "parser.y"
06751     {
06752         if (!qualifier && (current_field->level == 88 ||
06753             current_field->level == 77 || current_field->level == 66 ||
06754             current_field->flag_item_78)) {
06755                 cb_error (_("Item requires a data name"));
06756         }
06757         if (current_field->level == 88) {
06758                 cb_validate_88_item (current_field);
06759         }
06760         if (current_field->flag_item_78) {
06761                 /* Reset to last non-78 item */
06762                 current_field = cb_validate_78_item (current_field);
06763         }
06764         if (!description_field) {
06765                 description_field = current_field;
06766         }
06767   ;}
06768     break;
06769 
06770   case 319:
06771 #line 2358 "parser.y"
06772     {
06773         yyval = cb_build_filler ();
06774         qualifier = NULL;
06775         non_const_word = 0;
06776   ;}
06777     break;
06778 
06779   case 320:
06780 #line 2364 "parser.y"
06781     {
06782         yyval = cb_build_filler ();
06783         qualifier = NULL;
06784         non_const_word = 0;
06785   ;}
06786     break;
06787 
06788   case 321:
06789 #line 2370 "parser.y"
06790     {
06791         yyval = yyvsp[0];
06792         qualifier = yyvsp[0];
06793         non_const_word = 0;
06794   ;}
06795     break;
06796 
06797   case 322:
06798 #line 2379 "parser.y"
06799     {
06800         yyval = yyvsp[0];
06801         qualifier = yyvsp[0];
06802         non_const_word = 0;
06803   ;}
06804     break;
06805 
06806   case 324:
06807 #line 2388 "parser.y"
06808     {
06809         current_field->flag_is_global = 1;
06810         cb_error (_("CONSTANT with GLOBAL clause is not yet supported"));
06811   ;}
06812     break;
06813 
06814   case 325:
06815 #line 2395 "parser.y"
06816     { yyval = yyvsp[0]; ;}
06817     break;
06818 
06819   case 326:
06820 #line 2396 "parser.y"
06821     { yyval = cb_build_const_length (yyvsp[0]); ;}
06822     break;
06823 
06824   case 327:
06825 #line 2397 "parser.y"
06826     { yyval = cb_build_const_length (yyvsp[0]); ;}
06827     break;
06828 
06829   case 328:
06830 #line 2402 "parser.y"
06831     {
06832         cb_tree x;
06833         int     level;
06834 
06835         level = cb_get_level (yyvsp[-5]);
06836         if (level && level != 1) {
06837                 cb_error (_("CONSTANT item not at 01 level"));
06838         }
06839         x = cb_build_constant (yyvsp[-4], yyvsp[0]);
06840         CB_FIELD (x)->flag_item_78 = 1;
06841         CB_FIELD (x)->level = 1;
06842         cb_needs_01 = 1;
06843         /* Ignore return value */
06844         cb_validate_78_item (CB_FIELD (x));
06845   ;}
06846     break;
06847 
06848   case 329:
06849 #line 2421 "parser.y"
06850     {
06851         /* required to check redefines */
06852         yyval = NULL;
06853   ;}
06854     break;
06855 
06856   case 330:
06857 #line 2427 "parser.y"
06858     {
06859         /* required to check redefines */
06860         yyval = cb_true;
06861   ;}
06862     break;
06863 
06864   case 345:
06865 #line 2455 "parser.y"
06866     {
06867         if (yyvsp[-2] != NULL) {
06868                 /* hack for MF compatibility */
06869                 if (cb_relaxed_syntax_check) {
06870                         cb_warning_x (yyvsp[0], _("REDEFINES clause should follow entry-name"));
06871                 } else {
06872                         cb_error_x (yyvsp[0], _("REDEFINES clause must follow entry-name"));
06873                 }
06874         }
06875 
06876         current_field->redefines = cb_resolve_redefines (current_field, yyvsp[0]);
06877         if (current_field->redefines == NULL) {
06878                 YYERROR;
06879         }
06880   ;}
06881     break;
06882 
06883   case 346:
06884 #line 2477 "parser.y"
06885     {
06886         if (current_storage != CB_STORAGE_WORKING) {
06887                 cb_error (_("EXTERNAL not allowed here"));
06888         } else if (current_field->level != 1 && current_field->level != 77) {
06889                 cb_error (_("EXTERNAL only allowed at 01/77 level"));
06890         } else if (!qualifier) {
06891                 cb_error (_("EXTERNAL requires a data name"));
06892         } else if (current_field->flag_is_global) {
06893                 cb_error (_("GLOBAL and EXTERNAL are mutually exclusive"));
06894         } else if (current_field->flag_item_based) {
06895                 cb_error (_("BASED and EXTERNAL are mutually exclusive"));
06896         } else if (current_field->redefines) {
06897                 cb_error (_("EXTERNAL and REDEFINES are mutually exclusive"));
06898         } else {
06899                 current_field->flag_external = 1;
06900                 has_external = 1;
06901         }
06902   ;}
06903     break;
06904 
06905   case 347:
06906 #line 2498 "parser.y"
06907     { current_field->ename = NULL; ;}
06908     break;
06909 
06910   case 348:
06911 #line 2500 "parser.y"
06912     {
06913         struct cb_field *x;
06914 
06915         x = CB_FIELD(cb_build_field (cb_build_reference ((char *)(CB_LITERAL (yyvsp[0])->data))));
06916         current_field->ename = x->name;
06917  ;}
06918     break;
06919 
06920   case 349:
06921 #line 2512 "parser.y"
06922     {
06923         if (current_field->level != 1 && current_field->level != 77) {
06924                 cb_error (_("GLOBAL only allowed at 01/77 level"));
06925         } else if (!qualifier) {
06926                 cb_error (_("GLOBAL requires a data name"));
06927         } else if (current_field->flag_external) {
06928                 cb_error (_("GLOBAL and EXTERNAL are mutually exclusive"));
06929         } else if (current_storage == CB_STORAGE_LOCAL) {
06930                 cb_error (_("GLOBAL not allowed here"));
06931         } else {
06932                 current_field->flag_is_global = 1;
06933         }
06934   ;}
06935     break;
06936 
06937   case 350:
06938 #line 2531 "parser.y"
06939     { current_field->pic = CB_PICTURE (yyvsp[0]); ;}
06940     break;
06941 
06942   case 353:
06943 #line 2543 "parser.y"
06944     { current_field->usage = CB_USAGE_BINARY; ;}
06945     break;
06946 
06947   case 354:
06948 #line 2544 "parser.y"
06949     { current_field->usage = CB_USAGE_BINARY; ;}
06950     break;
06951 
06952   case 355:
06953 #line 2545 "parser.y"
06954     { current_field->usage = CB_USAGE_FLOAT; ;}
06955     break;
06956 
06957   case 356:
06958 #line 2546 "parser.y"
06959     { current_field->usage = CB_USAGE_DOUBLE; ;}
06960     break;
06961 
06962   case 357:
06963 #line 2547 "parser.y"
06964     { current_field->usage = CB_USAGE_PACKED; ;}
06965     break;
06966 
06967   case 358:
06968 #line 2548 "parser.y"
06969     { current_field->usage = CB_USAGE_BINARY; ;}
06970     break;
06971 
06972   case 359:
06973 #line 2549 "parser.y"
06974     { current_field->usage = CB_USAGE_COMP_5; ;}
06975     break;
06976 
06977   case 360:
06978 #line 2550 "parser.y"
06979     { current_field->usage = CB_USAGE_COMP_X; ;}
06980     break;
06981 
06982   case 361:
06983 #line 2551 "parser.y"
06984     { current_field->usage = CB_USAGE_DISPLAY; ;}
06985     break;
06986 
06987   case 362:
06988 #line 2552 "parser.y"
06989     { current_field->usage = CB_USAGE_INDEX; ;}
06990     break;
06991 
06992   case 363:
06993 #line 2553 "parser.y"
06994     { current_field->usage = CB_USAGE_PACKED; ;}
06995     break;
06996 
06997   case 364:
06998 #line 2555 "parser.y"
06999     {
07000         current_field->usage = CB_USAGE_POINTER;
07001         current_field->flag_is_pointer = 1;
07002   ;}
07003     break;
07004 
07005   case 365:
07006 #line 2560 "parser.y"
07007     {
07008         current_field->usage = CB_USAGE_PROGRAM_POINTER;
07009         current_field->flag_is_pointer = 1;
07010   ;}
07011     break;
07012 
07013   case 366:
07014 #line 2564 "parser.y"
07015     { current_field->usage = CB_USAGE_SIGNED_SHORT; ;}
07016     break;
07017 
07018   case 367:
07019 #line 2565 "parser.y"
07020     { current_field->usage = CB_USAGE_SIGNED_INT; ;}
07021     break;
07022 
07023   case 368:
07024 #line 2566 "parser.y"
07025     { current_field->usage = CB_USAGE_SIGNED_LONG; ;}
07026     break;
07027 
07028   case 369:
07029 #line 2567 "parser.y"
07030     { current_field->usage = CB_USAGE_UNSIGNED_SHORT; ;}
07031     break;
07032 
07033   case 370:
07034 #line 2568 "parser.y"
07035     { current_field->usage = CB_USAGE_UNSIGNED_INT; ;}
07036     break;
07037 
07038   case 371:
07039 #line 2569 "parser.y"
07040     { current_field->usage = CB_USAGE_UNSIGNED_LONG; ;}
07041     break;
07042 
07043   case 372:
07044 #line 2570 "parser.y"
07045     { current_field->usage = CB_USAGE_SIGNED_CHAR; ;}
07046     break;
07047 
07048   case 373:
07049 #line 2571 "parser.y"
07050     { current_field->usage = CB_USAGE_UNSIGNED_CHAR; ;}
07051     break;
07052 
07053   case 374:
07054 #line 2572 "parser.y"
07055     { current_field->usage = CB_USAGE_SIGNED_CHAR; ;}
07056     break;
07057 
07058   case 375:
07059 #line 2573 "parser.y"
07060     { current_field->usage = CB_USAGE_SIGNED_SHORT; ;}
07061     break;
07062 
07063   case 376:
07064 #line 2574 "parser.y"
07065     { current_field->usage = CB_USAGE_UNSIGNED_SHORT; ;}
07066     break;
07067 
07068   case 377:
07069 #line 2575 "parser.y"
07070     { current_field->usage = CB_USAGE_SIGNED_SHORT; ;}
07071     break;
07072 
07073   case 378:
07074 #line 2576 "parser.y"
07075     { current_field->usage = CB_USAGE_SIGNED_INT; ;}
07076     break;
07077 
07078   case 379:
07079 #line 2577 "parser.y"
07080     { current_field->usage = CB_USAGE_UNSIGNED_INT; ;}
07081     break;
07082 
07083   case 380:
07084 #line 2578 "parser.y"
07085     { current_field->usage = CB_USAGE_SIGNED_INT; ;}
07086     break;
07087 
07088   case 381:
07089 #line 2579 "parser.y"
07090     { current_field->usage = CB_USAGE_SIGNED_LONG; ;}
07091     break;
07092 
07093   case 382:
07094 #line 2580 "parser.y"
07095     { current_field->usage = CB_USAGE_UNSIGNED_LONG; ;}
07096     break;
07097 
07098   case 383:
07099 #line 2581 "parser.y"
07100     { current_field->usage = CB_USAGE_SIGNED_LONG; ;}
07101     break;
07102 
07103   case 384:
07104 #line 2583 "parser.y"
07105     {
07106         if (sizeof(long) == 4) {
07107                 current_field->usage = CB_USAGE_SIGNED_INT;
07108         } else {
07109                 current_field->usage = CB_USAGE_SIGNED_LONG;
07110         }
07111   ;}
07112     break;
07113 
07114   case 385:
07115 #line 2591 "parser.y"
07116     {
07117         if (sizeof(long) == 4) {
07118                 current_field->usage = CB_USAGE_UNSIGNED_INT;
07119         } else {
07120                 current_field->usage = CB_USAGE_UNSIGNED_LONG;
07121         }
07122   ;}
07123     break;
07124 
07125   case 386:
07126 #line 2599 "parser.y"
07127     {
07128         if (sizeof(long) == 4) {
07129                 current_field->usage = CB_USAGE_SIGNED_INT;
07130         } else {
07131                 current_field->usage = CB_USAGE_SIGNED_LONG;
07132         }
07133   ;}
07134     break;
07135 
07136   case 387:
07137 #line 2606 "parser.y"
07138     { PENDING ("USAGE NATIONAL");;}
07139     break;
07140 
07141   case 388:
07142 #line 2614 "parser.y"
07143     {
07144         current_field->flag_sign_separate = CB_INTEGER (yyvsp[0])->val;
07145         current_field->flag_sign_leading  = 1;
07146   ;}
07147     break;
07148 
07149   case 389:
07150 #line 2619 "parser.y"
07151     {
07152         current_field->flag_sign_separate = CB_INTEGER (yyvsp[0])->val;
07153         current_field->flag_sign_leading  = 0;
07154   ;}
07155     break;
07156 
07157   case 390:
07158 #line 2631 "parser.y"
07159     {
07160         if (current_field->occurs_depending && !(yyvsp[-4])) {
07161                 cb_verify (cb_odo_without_to, "ODO without TO clause");
07162         }
07163         current_field->occurs_min = yyvsp[-4] ? cb_get_int (yyvsp[-5]) : 1;
07164         current_field->occurs_max = yyvsp[-4] ? cb_get_int (yyvsp[-4]) : cb_get_int (yyvsp[-5]);
07165         current_field->indexes++;
07166         if (current_field->indexes > COB_MAX_SUBSCRIPTS) {
07167                 cb_error (_("Maximum OCCURS depth exceeded"));
07168         }
07169         current_field->flag_occurs = 1;
07170   ;}
07171     break;
07172 
07173   case 391:
07174 #line 2646 "parser.y"
07175     { yyval = NULL; ;}
07176     break;
07177 
07178   case 392:
07179 #line 2647 "parser.y"
07180     { yyval = yyvsp[0]; ;}
07181     break;
07182 
07183   case 394:
07184 #line 2652 "parser.y"
07185     {
07186         current_field->occurs_depending = yyvsp[0];
07187   ;}
07188     break;
07189 
07190   case 395:
07191 #line 2659 "parser.y"
07192     {
07193         if (yyvsp[0]) {
07194                 cb_tree         l;
07195                 struct cb_key   *keys;
07196                 int             i;
07197                 int             nkeys;
07198 
07199                 l = yyvsp[0];
07200                 nkeys = cb_list_length (yyvsp[0]);
07201                 keys = cobc_malloc (sizeof (struct cb_key) * nkeys);
07202 
07203                 for (i = 0; i < nkeys; i++) {
07204                         keys[i].dir = CB_PURPOSE_INT (l);
07205                         keys[i].key = CB_VALUE (l);
07206                         l = CB_CHAIN (l);
07207                 }
07208                 current_field->keys = keys;
07209                 current_field->nkeys = nkeys;
07210         }
07211   ;}
07212     break;
07213 
07214   case 396:
07215 #line 2682 "parser.y"
07216     { yyval = NULL; ;}
07217     break;
07218 
07219   case 397:
07220 #line 2685 "parser.y"
07221     {
07222         cb_tree l;
07223 
07224         for (l = yyvsp[0]; l; l = CB_CHAIN (l)) {
07225                 CB_PURPOSE (l) = yyvsp[-3];
07226                 if (qualifier && !CB_REFERENCE(CB_VALUE(l))->chain &&
07227                     strcasecmp (CB_NAME(CB_VALUE(l)), CB_NAME(qualifier))) {
07228                         CB_REFERENCE(CB_VALUE(l))->chain = qualifier;
07229                 }
07230         }
07231         yyval = cb_list_append (yyvsp[-4], yyvsp[0]);
07232   ;}
07233     break;
07234 
07235   case 398:
07236 #line 2700 "parser.y"
07237     { yyval = cb_int (COB_ASCENDING); ;}
07238     break;
07239 
07240   case 399:
07241 #line 2701 "parser.y"
07242     { yyval = cb_int (COB_DESCENDING); ;}
07243     break;
07244 
07245   case 401:
07246 #line 2706 "parser.y"
07247     {
07248         current_field->index_list = yyvsp[0];
07249   ;}
07250     break;
07251 
07252   case 402:
07253 #line 2712 "parser.y"
07254     { yyval = cb_list_init (yyvsp[0]); ;}
07255     break;
07256 
07257   case 403:
07258 #line 2714 "parser.y"
07259     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
07260     break;
07261 
07262   case 404:
07263 #line 2719 "parser.y"
07264     {
07265         yyval = cb_build_index (yyvsp[0], cb_int1, 1, current_field);
07266   ;}
07267     break;
07268 
07269   case 405:
07270 #line 2728 "parser.y"
07271     { current_field->flag_justified = 1; ;}
07272     break;
07273 
07274   case 406:
07275 #line 2735 "parser.y"
07276     { current_field->flag_synchronized = 1; ;}
07277     break;
07278 
07279   case 410:
07280 #line 2747 "parser.y"
07281     { current_field->flag_blank_zero = 1; ;}
07282     break;
07283 
07284   case 411:
07285 #line 2755 "parser.y"
07286     {
07287         if (current_storage != CB_STORAGE_WORKING &&
07288             current_storage != CB_STORAGE_LINKAGE &&
07289             current_storage != CB_STORAGE_LOCAL) {
07290                 cb_error (_("BASED not allowed here"));
07291         } else if (current_field->level != 1 && current_field->level != 77) {
07292                 cb_error (_("BASED only allowed at 01/77 level"));
07293         } else if (!qualifier) {
07294                 cb_error (_("BASED requires a data name"));
07295         } else if (current_field->flag_external) {
07296                 cb_error (_("BASED and EXTERNAL are mutually exclusive"));
07297         } else if (current_field->redefines) {
07298                 cb_error (_("BASED and REDEFINES are mutually exclusive"));
07299         } else if (current_field->flag_any_length) {
07300                 cb_error (_("BASED and ANY LENGTH are mutually exclusive"));
07301         } else {
07302                 current_field->flag_item_based = 1;
07303         }
07304   ;}
07305     break;
07306 
07307   case 412:
07308 #line 2779 "parser.y"
07309     { current_field->values = yyvsp[0]; ;}
07310     break;
07311 
07312   case 414:
07313 #line 2784 "parser.y"
07314     { yyval = cb_list_init (yyvsp[0]); ;}
07315     break;
07316 
07317   case 415:
07318 #line 2785 "parser.y"
07319     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
07320     break;
07321 
07322   case 416:
07323 #line 2789 "parser.y"
07324     { yyval = yyvsp[0]; ;}
07325     break;
07326 
07327   case 417:
07328 #line 2790 "parser.y"
07329     { yyval = cb_build_pair (yyvsp[-2], yyvsp[0]); ;}
07330     break;
07331 
07332   case 419:
07333 #line 2795 "parser.y"
07334     {
07335         if (current_field->level != 88) {
07336                 cb_error (_("FALSE clause only allowed for 88 level"));
07337         }
07338         current_field->false_88 = cb_list_init (yyvsp[0]);
07339   ;}
07340     break;
07341 
07342   case 420:
07343 #line 2808 "parser.y"
07344     {
07345         if (cb_ref (yyvsp[0]) != cb_error_node) {
07346                 if (CB_FIELD (cb_ref (yyvsp[0]))->level == 01 ||
07347                     CB_FIELD (cb_ref (yyvsp[0]))->level > 50) {
07348                         cb_error (_("RENAMES may not reference a level 01 or > 50"));
07349                 } else {
07350                         current_field->redefines = CB_FIELD (cb_ref (yyvsp[0]));
07351                         current_field->pic = current_field->redefines->pic;
07352                 }
07353         }
07354   ;}
07355     break;
07356 
07357   case 421:
07358 #line 2820 "parser.y"
07359     {
07360         if (cb_ref (yyvsp[-2]) != cb_error_node && cb_ref (yyvsp[0]) != cb_error_node) {
07361                 if (CB_FIELD (cb_ref (yyvsp[-2]))->level == 01 ||
07362                     CB_FIELD (cb_ref (yyvsp[-2]))->level > 50) {
07363                         cb_error (_("RENAMES may not reference a level 01 or > 50"));
07364                 } else if (CB_FIELD (cb_ref (yyvsp[0]))->level == 01 ||
07365                     CB_FIELD (cb_ref (yyvsp[0]))->level > 50) {
07366                         cb_error (_("RENAMES may not reference a level 01 or > 50"));
07367                 } else {
07368                         current_field->redefines = CB_FIELD (cb_ref (yyvsp[-2]));
07369                         current_field->rename_thru = CB_FIELD (cb_ref (yyvsp[0]));
07370                 }
07371         }
07372   ;}
07373     break;
07374 
07375   case 422:
07376 #line 2840 "parser.y"
07377     {
07378         if (current_field->flag_item_based) {
07379                 cb_error (_("BASED and ANY LENGTH are mutually exclusive"));
07380         } else {
07381                 current_field->flag_any_length = 1;
07382         }
07383   ;}
07384     break;
07385 
07386   case 424:
07387 #line 2855 "parser.y"
07388     {
07389         current_storage = CB_STORAGE_LOCAL;
07390         if (current_program->nested_level) {
07391                 cb_error (_("LOCAL-STORAGE not allowed in nested programs"));
07392         }
07393   ;}
07394     break;
07395 
07396   case 425:
07397 #line 2862 "parser.y"
07398     {
07399         if (yyvsp[0]) {
07400                 current_program->local_storage = CB_FIELD (yyvsp[0]);
07401         }
07402   ;}
07403     break;
07404 
07405   case 427:
07406 #line 2875 "parser.y"
07407     { current_storage = CB_STORAGE_LINKAGE; ;}
07408     break;
07409 
07410   case 428:
07411 #line 2877 "parser.y"
07412     {
07413         if (yyvsp[0]) {
07414                 current_program->linkage_storage = CB_FIELD (yyvsp[0]);
07415         }
07416   ;}
07417     break;
07418 
07419   case 430:
07420 #line 2890 "parser.y"
07421     {
07422         cb_error (_("REPORT SECTION not supported"));
07423         current_storage = CB_STORAGE_REPORT;
07424   ;}
07425     break;
07426 
07427   case 437:
07428 #line 2923 "parser.y"
07429     {
07430         cb_warning (_("Report description using defaults"));
07431   ;}
07432     break;
07433 
07434   case 439:
07435 #line 2931 "parser.y"
07436     {
07437         cb_error (_("GLOBAL is not allowed with RD"));
07438   ;}
07439     break;
07440 
07441   case 471:
07442 #line 3011 "parser.y"
07443     { cb_warning (_("looking for Report line TYPE")); ;}
07444     break;
07445 
07446   case 522:
07447 #line 3116 "parser.y"
07448     { current_storage = CB_STORAGE_SCREEN; ;}
07449     break;
07450 
07451   case 523:
07452 #line 3117 "parser.y"
07453     {
07454         current_field = NULL;
07455         description_field = NULL;
07456         cb_clear_real_field ();
07457   ;}
07458     break;
07459 
07460   case 524:
07461 #line 3123 "parser.y"
07462     {
07463         struct cb_field *p;
07464 
07465         for (p = description_field; p; p = p->sister) {
07466                 cb_validate_field (p);
07467         }
07468         current_program->screen_storage = description_field;
07469         current_program->flag_screen = 1;
07470   ;}
07471     break;
07472 
07473   case 530:
07474 #line 3147 "parser.y"
07475     {
07476         cb_tree x;
07477 
07478         x = cb_build_field_tree (yyvsp[-1], yyvsp[0], current_field, current_storage, current_file);
07479         if (x == cb_error_node) {
07480                 YYERROR;
07481         }
07482 
07483         current_field = CB_FIELD (x);
07484         if (current_field->parent) {
07485                 current_field->screen_flag |= current_field->parent->screen_flag;
07486                 current_field->screen_foreg = current_field->parent->screen_foreg;
07487                 current_field->screen_backg = current_field->parent->screen_backg;
07488         }
07489   ;}
07490     break;
07491 
07492   case 531:
07493 #line 3163 "parser.y"
07494     {
07495         if (!qualifier && (current_field->level == 88 ||
07496             current_field->level == 77 || current_field->level == 66 ||
07497             current_field->flag_item_78)) {
07498                 cb_error (_("Item requires a data name"));
07499         }
07500         if (current_field->level == 88) {
07501                 cb_validate_88_item (current_field);
07502         }
07503         if (current_field->flag_item_78) {
07504                 /* Reset to last non-78 item */
07505                 current_field = cb_validate_78_item (current_field);
07506         }
07507         if (!description_field) {
07508                 description_field = current_field;
07509         }
07510   ;}
07511     break;
07512 
07513   case 534:
07514 #line 3187 "parser.y"
07515     { current_field->screen_flag |= COB_SCREEN_BLANK_LINE; ;}
07516     break;
07517 
07518   case 535:
07519 #line 3188 "parser.y"
07520     { current_field->screen_flag |= COB_SCREEN_BLANK_SCREEN; ;}
07521     break;
07522 
07523   case 536:
07524 #line 3189 "parser.y"
07525     { current_field->screen_flag |= COB_SCREEN_BELL; ;}
07526     break;
07527 
07528   case 537:
07529 #line 3190 "parser.y"
07530     { current_field->screen_flag |= COB_SCREEN_BLINK; ;}
07531     break;
07532 
07533   case 538:
07534 #line 3191 "parser.y"
07535     { current_field->screen_flag |= COB_SCREEN_ERASE_EOL; ;}
07536     break;
07537 
07538   case 539:
07539 #line 3192 "parser.y"
07540     { current_field->screen_flag |= COB_SCREEN_ERASE_EOS; ;}
07541     break;
07542 
07543   case 540:
07544 #line 3193 "parser.y"
07545     { current_field->screen_flag |= COB_SCREEN_HIGHLIGHT; ;}
07546     break;
07547 
07548   case 541:
07549 #line 3194 "parser.y"
07550     { current_field->screen_flag |= COB_SCREEN_LOWLIGHT; ;}
07551     break;
07552 
07553   case 542:
07554 #line 3195 "parser.y"
07555     { current_field->screen_flag |= COB_SCREEN_REVERSE; ;}
07556     break;
07557 
07558   case 543:
07559 #line 3196 "parser.y"
07560     { current_field->screen_flag |= COB_SCREEN_UNDERLINE; ;}
07561     break;
07562 
07563   case 544:
07564 #line 3197 "parser.y"
07565     { current_field->screen_flag |= COB_SCREEN_OVERLINE; ;}
07566     break;
07567 
07568   case 545:
07569 #line 3198 "parser.y"
07570     { current_field->screen_flag |= COB_SCREEN_AUTO; ;}
07571     break;
07572 
07573   case 546:
07574 #line 3199 "parser.y"
07575     { current_field->screen_flag |= COB_SCREEN_SECURE; ;}
07576     break;
07577 
07578   case 547:
07579 #line 3200 "parser.y"
07580     { current_field->screen_flag |= COB_SCREEN_REQUIRED; ;}
07581     break;
07582 
07583   case 548:
07584 #line 3201 "parser.y"
07585     { current_field->screen_flag |= COB_SCREEN_FULL; ;}
07586     break;
07587 
07588   case 549:
07589 #line 3202 "parser.y"
07590     { current_field->screen_flag |= COB_SCREEN_PROMPT; ;}
07591     break;
07592 
07593   case 550:
07594 #line 3204 "parser.y"
07595     {
07596         current_field->screen_line = yyvsp[0];
07597   ;}
07598     break;
07599 
07600   case 551:
07601 #line 3208 "parser.y"
07602     {
07603         current_field->screen_column = yyvsp[0];
07604   ;}
07605     break;
07606 
07607   case 552:
07608 #line 3212 "parser.y"
07609     {
07610         current_field->screen_foreg = yyvsp[0];
07611   ;}
07612     break;
07613 
07614   case 553:
07615 #line 3216 "parser.y"
07616     {
07617         current_field->screen_backg = yyvsp[0];
07618   ;}
07619     break;
07620 
07621   case 561:
07622 #line 3227 "parser.y"
07623     {
07624         current_field->screen_from = yyvsp[0];
07625         current_field->screen_to = yyvsp[0];
07626         current_field->screen_flag |= COB_SCREEN_PROMPT;
07627         current_field->screen_flag |= COB_SCREEN_INPUT;
07628   ;}
07629     break;
07630 
07631   case 562:
07632 #line 3234 "parser.y"
07633     {
07634         current_field->screen_from = yyvsp[0];
07635   ;}
07636     break;
07637 
07638   case 563:
07639 #line 3238 "parser.y"
07640     {
07641         current_field->screen_to = yyvsp[0];
07642         current_field->screen_flag |= COB_SCREEN_PROMPT;
07643         current_field->screen_flag |= COB_SCREEN_INPUT;
07644   ;}
07645     break;
07646 
07647   case 564:
07648 #line 3247 "parser.y"
07649     {
07650         /* Nothing */
07651   ;}
07652     break;
07653 
07654   case 565:
07655 #line 3251 "parser.y"
07656     {
07657         current_field->screen_flag |= COB_SCREEN_LINE_PLUS;
07658   ;}
07659     break;
07660 
07661   case 566:
07662 #line 3255 "parser.y"
07663     {
07664         current_field->screen_flag |= COB_SCREEN_LINE_PLUS;
07665   ;}
07666     break;
07667 
07668   case 567:
07669 #line 3259 "parser.y"
07670     {
07671         current_field->screen_flag |= COB_SCREEN_LINE_MINUS;
07672   ;}
07673     break;
07674 
07675   case 568:
07676 #line 3263 "parser.y"
07677     {
07678         current_field->screen_flag |= COB_SCREEN_LINE_MINUS;
07679   ;}
07680     break;
07681 
07682   case 569:
07683 #line 3270 "parser.y"
07684     {
07685         /* Nothing */
07686   ;}
07687     break;
07688 
07689   case 570:
07690 #line 3274 "parser.y"
07691     {
07692         current_field->screen_flag |= COB_SCREEN_COLUMN_PLUS;
07693   ;}
07694     break;
07695 
07696   case 571:
07697 #line 3278 "parser.y"
07698     {
07699         current_field->screen_flag |= COB_SCREEN_COLUMN_PLUS;
07700   ;}
07701     break;
07702 
07703   case 572:
07704 #line 3282 "parser.y"
07705     {
07706         current_field->screen_flag |= COB_SCREEN_COLUMN_MINUS;
07707   ;}
07708     break;
07709 
07710   case 573:
07711 #line 3286 "parser.y"
07712     {
07713         current_field->screen_flag |= COB_SCREEN_COLUMN_MINUS;
07714   ;}
07715     break;
07716 
07717   case 574:
07718 #line 3294 "parser.y"
07719     {
07720         current_field->occurs_max = cb_get_int (yyvsp[-1]);
07721         current_field->occurs_min = current_field->occurs_max;
07722         current_field->indexes++;
07723         current_field->flag_occurs = 1;
07724   ;}
07725     break;
07726 
07727   case 576:
07728 #line 3308 "parser.y"
07729     {
07730         current_section = NULL;
07731         current_paragraph = NULL;
07732         cb_define_system_name ("CONSOLE");
07733         cb_define_system_name ("SYSIN");
07734         cb_define_system_name ("SYSOUT");
07735         cb_define_system_name ("SYSERR");
07736         cb_set_in_procedure ();
07737   ;}
07738     break;
07739 
07740   case 577:
07741 #line 3318 "parser.y"
07742     {
07743         if (current_program->flag_main && !current_program->flag_chained && yyvsp[-4]) {
07744                 cb_error (_("Executable program requested but PROCEDURE/ENTRY has USING clause"));
07745         }
07746         emit_entry (current_program->program_id, 0, yyvsp[-4]); /* main entry point */
07747         if (current_program->source_name) {
07748                 emit_entry (current_program->source_name, 1, yyvsp[-4]);
07749         }
07750   ;}
07751     break;
07752 
07753   case 578:
07754 #line 3328 "parser.y"
07755     {
07756         if (current_paragraph) {
07757                 if (current_paragraph->exit_label) {
07758                         emit_statement (current_paragraph->exit_label);
07759                 }
07760                 emit_statement (cb_build_perform_exit (current_paragraph));
07761         }
07762         if (current_section) {
07763                 if (current_section->exit_label) {
07764                         emit_statement (current_section->exit_label);
07765                 }
07766                 emit_statement (cb_build_perform_exit (current_section));
07767         }
07768   ;}
07769     break;
07770 
07771   case 579:
07772 #line 3345 "parser.y"
07773     { yyval = NULL; ;}
07774     break;
07775 
07776   case 580:
07777 #line 3347 "parser.y"
07778     {
07779         call_mode = CB_CALL_BY_REFERENCE;
07780         size_mode = CB_SIZE_4;
07781   ;}
07782     break;
07783 
07784   case 581:
07785 #line 3351 "parser.y"
07786     { yyval = yyvsp[0]; ;}
07787     break;
07788 
07789   case 582:
07790 #line 3353 "parser.y"
07791     {
07792         call_mode = CB_CALL_BY_REFERENCE;
07793         current_program->flag_chained = 1;
07794   ;}
07795     break;
07796 
07797   case 583:
07798 #line 3357 "parser.y"
07799     { yyval = yyvsp[0]; ;}
07800     break;
07801 
07802   case 584:
07803 #line 3361 "parser.y"
07804     { yyval = yyvsp[0]; ;}
07805     break;
07806 
07807   case 585:
07808 #line 3363 "parser.y"
07809     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
07810     break;
07811 
07812   case 586:
07813 #line 3368 "parser.y"
07814     {
07815         yyval = cb_build_pair (cb_int (call_mode), cb_build_identifier (yyvsp[0]));
07816         CB_SIZES (yyval) = size_mode;
07817   ;}
07818     break;
07819 
07820   case 588:
07821 #line 3377 "parser.y"
07822     {
07823         call_mode = CB_CALL_BY_REFERENCE;
07824   ;}
07825     break;
07826 
07827   case 589:
07828 #line 3381 "parser.y"
07829     {
07830         if (current_program->flag_chained) {
07831                 cb_error (_("BY VALUE not allowed in CHAINED program"));
07832         } else {
07833                 call_mode = CB_CALL_BY_VALUE;
07834         }
07835   ;}
07836     break;
07837 
07838   case 591:
07839 #line 3393 "parser.y"
07840     {
07841         if (call_mode != CB_CALL_BY_VALUE) {
07842                 cb_error (_("SIZE only allowed for BY VALUE items"));
07843         } else {
07844                 size_mode = CB_SIZE_AUTO;
07845         }
07846   ;}
07847     break;
07848 
07849   case 592:
07850 #line 3401 "parser.y"
07851     {
07852         if (call_mode != CB_CALL_BY_VALUE) {
07853                 cb_error (_("SIZE only allowed for BY VALUE items"));
07854         } else {
07855                 size_mode = CB_SIZE_4;
07856         }
07857   ;}
07858     break;
07859 
07860   case 593:
07861 #line 3409 "parser.y"
07862     {
07863         unsigned char *s = CB_LITERAL (yyvsp[0])->data;
07864 
07865         if (call_mode != CB_CALL_BY_VALUE) {
07866                 cb_error (_("SIZE only allowed for BY VALUE items"));
07867         } else if (CB_LITERAL (yyvsp[0])->size != 1) {
07868                 cb_error_x (yyvsp[0], _("Invalid value for SIZE"));
07869         } else {
07870                 size_mode = CB_SIZE_UNSIGNED;
07871                 switch (*s) {
07872                 case '1':
07873                         size_mode |= CB_SIZE_1;
07874                         break;
07875                 case '2':
07876                         size_mode |= CB_SIZE_2;
07877                         break;
07878                 case '4':
07879                         size_mode |= CB_SIZE_4;
07880                         break;
07881                 case '8':
07882                         size_mode |= CB_SIZE_8;
07883                         break;
07884                 default:
07885                         cb_error_x (yyvsp[0], _("Invalid value for SIZE"));
07886                         break;
07887                 }
07888         }
07889   ;}
07890     break;
07891 
07892   case 594:
07893 #line 3438 "parser.y"
07894     {
07895         unsigned char *s = CB_LITERAL (yyvsp[0])->data;
07896 
07897         if (call_mode != CB_CALL_BY_VALUE) {
07898                 cb_error (_("SIZE only allowed for BY VALUE items"));
07899         } else if (CB_LITERAL (yyvsp[0])->size != 1) {
07900                 cb_error_x (yyvsp[0], _("Invalid value for SIZE"));
07901         } else {
07902                 size_mode = 0;
07903                 switch (*s) {
07904                 case '1':
07905                         size_mode = CB_SIZE_1;
07906                         break;
07907                 case '2':
07908                         size_mode = CB_SIZE_2;
07909                         break;
07910                 case '4':
07911                         size_mode = CB_SIZE_4;
07912                         break;
07913                 case '8':
07914                         size_mode = CB_SIZE_8;
07915                         break;
07916                 default:
07917                         cb_error_x (yyvsp[0], _("Invalid value for SIZE"));
07918                         break;
07919                 }
07920         }
07921   ;}
07922     break;
07923 
07924   case 596:
07925 #line 3471 "parser.y"
07926     {
07927         if (call_mode != CB_CALL_BY_REFERENCE) {
07928                 cb_error (_("OPTIONAL only allowed for BY REFERENCE items"));
07929         }
07930   ;}
07931     break;
07932 
07933   case 597:
07934 #line 3480 "parser.y"
07935     {
07936         if (current_program->prog_type == CB_FUNCTION_TYPE) {
07937                 cb_error (_("RETURNING clause is required for a FUNCTION"));
07938         }
07939   ;}
07940     break;
07941 
07942   case 598:
07943 #line 3486 "parser.y"
07944     {
07945         if (cb_ref (yyvsp[0]) != cb_error_node) {
07946                 current_program->returning = yyvsp[0];
07947                 if (cb_field (yyvsp[0])->storage != CB_STORAGE_LINKAGE) {
07948                         cb_error (_("RETURNING item is not defined in LINKAGE SECTION"));
07949                 }
07950         }
07951   ;}
07952     break;
07953 
07954   case 600:
07955 #line 3497 "parser.y"
07956     { in_declaratives = 1; ;}
07957     break;
07958 
07959   case 601:
07960 #line 3500 "parser.y"
07961     {
07962         in_declaratives = 0;
07963         if (current_paragraph) {
07964                 if (current_paragraph->exit_label) {
07965                         emit_statement (current_paragraph->exit_label);
07966                 }
07967                 emit_statement (cb_build_perform_exit (current_paragraph));
07968                 current_paragraph = NULL;
07969         }
07970         if (current_section) {
07971                 if (current_section->exit_label) {
07972                         emit_statement (current_section->exit_label);
07973                 }
07974                 emit_statement (cb_build_perform_exit (current_section));
07975                 current_section = NULL;
07976         }
07977   ;}
07978     break;
07979 
07980   case 607:
07981 #line 3533 "parser.y"
07982     {
07983         if (next_label_list) {
07984                 cb_tree label;
07985                 char name[16];
07986 
07987                 sprintf (name, "L$%d", next_label_id);
07988                 label = cb_build_reference (name);
07989                 emit_statement (cb_build_label (label, NULL));
07990                 current_program->label_list =
07991                         cb_list_append (current_program->label_list, next_label_list);
07992                 next_label_list = NULL;
07993                 next_label_id++;
07994         }
07995         /* check_unreached = 0; */
07996   ;}
07997     break;
07998 
07999   case 608:
08000 #line 3549 "parser.y"
08001     {
08002         check_unreached = 0;
08003   ;}
08004     break;
08005 
08006   case 609:
08007 #line 3553 "parser.y"
08008     {
08009         /* check_unreached = 0; */
08010   ;}
08011     break;
08012 
08013   case 610:
08014 #line 3565 "parser.y"
08015     {
08016         non_const_word = 0;
08017         check_unreached = 0;
08018         if (yyvsp[-3] == cb_error_node) {
08019                 YYERROR;
08020         }
08021 
08022         /* Exit the last section */
08023         if (current_paragraph) {
08024                 if (current_paragraph->exit_label) {
08025                         emit_statement (current_paragraph->exit_label);
08026                 }
08027                 emit_statement (cb_build_perform_exit (current_paragraph));
08028         }
08029         if (current_section) {
08030                 if (current_section->exit_label) {
08031                         emit_statement (current_section->exit_label);
08032                 }
08033                 emit_statement (cb_build_perform_exit (current_section));
08034         }
08035 
08036         /* Begin a new section */
08037         current_section = CB_LABEL (cb_build_label (yyvsp[-3], NULL));
08038         current_section->is_section = 1;
08039         current_paragraph = NULL;
08040         emit_statement (CB_TREE (current_section));
08041   ;}
08042     break;
08043 
08044   case 611:
08045 #line 3596 "parser.y"
08046     {
08047         cb_tree label;
08048 
08049         non_const_word = 0;
08050         check_unreached = 0;
08051         yyval = cb_build_section_name (yyvsp[-1], 1);
08052         /* if ($1 == cb_error_node) */
08053         if (yyval == cb_error_node) {
08054                 YYERROR;
08055         }
08056 
08057         /* Exit the last paragraph */
08058         if (current_paragraph) {
08059                 if (current_paragraph->exit_label) {
08060                         emit_statement (current_paragraph->exit_label);
08061                 }
08062                 emit_statement (cb_build_perform_exit (current_paragraph));
08063         }
08064 
08065         /* Begin a new paragraph */
08066         if (!current_section) {
08067                 label = cb_build_reference ("MAIN SECTION");
08068                 current_section = CB_LABEL (cb_build_label (label, NULL));
08069                 current_section->is_section = 1;
08070                 emit_statement (CB_TREE (current_section));
08071         }
08072         current_paragraph = CB_LABEL (cb_build_label (yyval, current_section));
08073         if (current_section) {
08074                 current_section->children =
08075                         cb_cons (CB_TREE (current_paragraph), current_section->children);
08076         }
08077         emit_statement (CB_TREE (current_paragraph));
08078   ;}
08079     break;
08080 
08081   case 612:
08082 #line 3633 "parser.y"
08083     {
08084         non_const_word = 0;
08085         check_unreached = 0;
08086         if (yyvsp[0] != cb_error_node) {
08087                 cb_error_x (yyvsp[0], _("Unknown statement '%s'"), CB_NAME (yyvsp[0]));
08088         }
08089         YYERROR;
08090   ;}
08091     break;
08092 
08093   case 613:
08094 #line 3644 "parser.y"
08095     { yyval = cb_build_section_name (yyvsp[0], 0); ;}
08096     break;
08097 
08098   case 615:
08099 #line 3648 "parser.y"
08100     { /* ignore */ ;}
08101     break;
08102 
08103   case 616:
08104 #line 3657 "parser.y"
08105     {
08106         yyval = current_program->exec_list;
08107         current_program->exec_list = NULL;
08108   ;}
08109     break;
08110 
08111   case 617:
08112 #line 3661 "parser.y"
08113     {
08114         yyval = CB_TREE (current_statement);
08115         current_statement = NULL;
08116   ;}
08117     break;
08118 
08119   case 618:
08120 #line 3666 "parser.y"
08121     {
08122         yyval = cb_list_reverse (current_program->exec_list);
08123         current_program->exec_list = yyvsp[-2];
08124         current_statement = CB_STATEMENT (yyvsp[-1]);
08125   ;}
08126     break;
08127 
08128   case 619:
08129 #line 3674 "parser.y"
08130     {
08131         cb_tree label;
08132 
08133         if (!current_section) {
08134                 label = cb_build_reference ("MAIN SECTION");
08135                 current_section = CB_LABEL (cb_build_label (label, NULL));
08136                 current_section->is_section = 1;
08137                 emit_statement (CB_TREE (current_section));
08138         }
08139         if (!current_paragraph) {
08140                 label = cb_build_reference ("MAIN PARAGRAPH");
08141                 current_paragraph = CB_LABEL (cb_build_label (label, NULL));
08142                 emit_statement (CB_TREE (current_paragraph));
08143                 current_section->children =
08144                         cb_cons (CB_TREE (current_paragraph), current_section->children);
08145         }
08146   ;}
08147     break;
08148 
08149   case 670:
08150 #line 3745 "parser.y"
08151     {
08152         if (cb_verify (cb_next_sentence_phrase, "NEXT SENTENCE")) {
08153                 cb_tree label;
08154                 char    name[16];
08155 
08156                 BEGIN_STATEMENT ("NEXT SENTENCE", 0);
08157                 sprintf (name, "L$%d", next_label_id);
08158                 label = cb_build_reference (name);
08159                 next_label_list = cb_list_add (next_label_list, label);
08160                 emit_statement (cb_build_goto (label, NULL));
08161         }
08162         check_unreached = 0;
08163   ;}
08164     break;
08165 
08166   case 671:
08167 #line 3767 "parser.y"
08168     {
08169         BEGIN_STATEMENT ("ACCEPT", TERM_ACCEPT);
08170         dispattrs = 0;
08171         fgc = NULL;
08172         bgc = NULL;
08173         scroll = NULL;
08174   ;}
08175     break;
08176 
08177   case 673:
08178 #line 3780 "parser.y"
08179     {
08180         cb_emit_accept (yyvsp[-3], yyvsp[-2], fgc, bgc, scroll, dispattrs);
08181   ;}
08182     break;
08183 
08184   case 674:
08185 #line 3784 "parser.y"
08186     {
08187         PENDING ("ACCEPT .. FROM ESCAPE KEY");
08188   ;}
08189     break;
08190 
08191   case 675:
08192 #line 3788 "parser.y"
08193     {
08194         cb_emit_accept_line_or_col (yyvsp[-2], 0);
08195   ;}
08196     break;
08197 
08198   case 676:
08199 #line 3792 "parser.y"
08200     {
08201         cb_emit_accept_line_or_col (yyvsp[-2], 1);
08202   ;}
08203     break;
08204 
08205   case 677:
08206 #line 3796 "parser.y"
08207     {
08208         cb_emit_accept_date (yyvsp[-2]);
08209   ;}
08210     break;
08211 
08212   case 678:
08213 #line 3800 "parser.y"
08214     {
08215         cb_emit_accept_date_yyyymmdd (yyvsp[-3]);
08216   ;}
08217     break;
08218 
08219   case 679:
08220 #line 3804 "parser.y"
08221     {
08222         cb_emit_accept_day (yyvsp[-2]);
08223   ;}
08224     break;
08225 
08226   case 680:
08227 #line 3808 "parser.y"
08228     {
08229         cb_emit_accept_day_yyyyddd (yyvsp[-3]);
08230   ;}
08231     break;
08232 
08233   case 681:
08234 #line 3812 "parser.y"
08235     {
08236         cb_emit_accept_day_of_week (yyvsp[-2]);
08237   ;}
08238     break;
08239 
08240   case 682:
08241 #line 3816 "parser.y"
08242     {
08243         cb_emit_accept_time (yyvsp[-2]);
08244   ;}
08245     break;
08246 
08247   case 683:
08248 #line 3820 "parser.y"
08249     {
08250         cb_emit_accept_command_line (yyvsp[-2]);
08251   ;}
08252     break;
08253 
08254   case 684:
08255 #line 3824 "parser.y"
08256     {
08257         cb_emit_accept_environment (yyvsp[-3]);
08258   ;}
08259     break;
08260 
08261   case 685:
08262 #line 3828 "parser.y"
08263     { 
08264         cb_emit_get_environment (yyvsp[-1], yyvsp[-4]);
08265   ;}
08266     break;
08267 
08268   case 686:
08269 #line 3832 "parser.y"
08270     {
08271         cb_emit_accept_arg_number (yyvsp[-2]);
08272   ;}
08273     break;
08274 
08275   case 687:
08276 #line 3836 "parser.y"
08277     {
08278         cb_emit_accept_arg_value (yyvsp[-3]);
08279   ;}
08280     break;
08281 
08282   case 688:
08283 #line 3840 "parser.y"
08284     {
08285         cb_emit_accept_mnemonic (yyvsp[-2], yyvsp[0]);
08286   ;}
08287     break;
08288 
08289   case 689:
08290 #line 3844 "parser.y"
08291     {
08292         cb_emit_accept_name (yyvsp[-2], yyvsp[0]);
08293   ;}
08294     break;
08295 
08296   case 690:
08297 #line 3850 "parser.y"
08298     { yyval = NULL; ;}
08299     break;
08300 
08301   case 691:
08302 #line 3851 "parser.y"
08303     { yyval = cb_build_pair (yyvsp[-1], yyvsp[0]); ;}
08304     break;
08305 
08306   case 692:
08307 #line 3852 "parser.y"
08308     { yyval = cb_build_pair (yyvsp[0], yyvsp[-1]); ;}
08309     break;
08310 
08311   case 693:
08312 #line 3853 "parser.y"
08313     { yyval = cb_build_pair (yyvsp[0], NULL); ;}
08314     break;
08315 
08316   case 694:
08317 #line 3854 "parser.y"
08318     { yyval = cb_build_pair (NULL, yyvsp[0]); ;}
08319     break;
08320 
08321   case 695:
08322 #line 3855 "parser.y"
08323     { yyval = yyvsp[0]; ;}
08324     break;
08325 
08326   case 696:
08327 #line 3859 "parser.y"
08328     { yyval = yyvsp[0]; ;}
08329     break;
08330 
08331   case 697:
08332 #line 3863 "parser.y"
08333     { yyval = yyvsp[0]; ;}
08334     break;
08335 
08336   case 698:
08337 #line 3864 "parser.y"
08338     { yyval = yyvsp[0]; ;}
08339     break;
08340 
08341   case 703:
08342 #line 3877 "parser.y"
08343     { dispattrs |= COB_SCREEN_BELL; ;}
08344     break;
08345 
08346   case 704:
08347 #line 3878 "parser.y"
08348     { dispattrs |= COB_SCREEN_BLINK; ;}
08349     break;
08350 
08351   case 705:
08352 #line 3879 "parser.y"
08353     { dispattrs |= COB_SCREEN_HIGHLIGHT; ;}
08354     break;
08355 
08356   case 706:
08357 #line 3880 "parser.y"
08358     { dispattrs |= COB_SCREEN_LOWLIGHT; ;}
08359     break;
08360 
08361   case 707:
08362 #line 3881 "parser.y"
08363     { dispattrs |= COB_SCREEN_REVERSE; ;}
08364     break;
08365 
08366   case 708:
08367 #line 3882 "parser.y"
08368     { dispattrs |= COB_SCREEN_UNDERLINE; ;}
08369     break;
08370 
08371   case 709:
08372 #line 3883 "parser.y"
08373     { dispattrs |= COB_SCREEN_OVERLINE; ;}
08374     break;
08375 
08376   case 710:
08377 #line 3885 "parser.y"
08378     {
08379         fgc = yyvsp[0];
08380   ;}
08381     break;
08382 
08383   case 711:
08384 #line 3889 "parser.y"
08385     {
08386         bgc = yyvsp[0];
08387   ;}
08388     break;
08389 
08390   case 712:
08391 #line 3893 "parser.y"
08392     {
08393         scroll = yyvsp[0];
08394   ;}
08395     break;
08396 
08397   case 713:
08398 #line 3897 "parser.y"
08399     {
08400         dispattrs |= COB_SCREEN_SCROLL_DOWN;
08401         scroll = yyvsp[0];
08402   ;}
08403     break;
08404 
08405   case 714:
08406 #line 3901 "parser.y"
08407     { dispattrs |= COB_SCREEN_AUTO; ;}
08408     break;
08409 
08410   case 715:
08411 #line 3902 "parser.y"
08412     { dispattrs |= COB_SCREEN_FULL; ;}
08413     break;
08414 
08415   case 716:
08416 #line 3903 "parser.y"
08417     { dispattrs |= COB_SCREEN_REQUIRED; ;}
08418     break;
08419 
08420   case 717:
08421 #line 3904 "parser.y"
08422     { dispattrs |= COB_SCREEN_SECURE; ;}
08423     break;
08424 
08425   case 718:
08426 #line 3905 "parser.y"
08427     { dispattrs |= COB_SCREEN_UPDATE; ;}
08428     break;
08429 
08430   case 719:
08431 #line 3906 "parser.y"
08432     { dispattrs |= COB_SCREEN_PROMPT; ;}
08433     break;
08434 
08435   case 720:
08436 #line 3910 "parser.y"
08437     { terminator_warning (TERM_ACCEPT); ;}
08438     break;
08439 
08440   case 721:
08441 #line 3911 "parser.y"
08442     { terminator_clear (TERM_ACCEPT); ;}
08443     break;
08444 
08445   case 722:
08446 #line 3920 "parser.y"
08447     { BEGIN_STATEMENT ("ADD", TERM_ADD); ;}
08448     break;
08449 
08450   case 724:
08451 #line 3927 "parser.y"
08452     {
08453         cb_emit_arithmetic (yyvsp[-1], '+', cb_build_binary_list (yyvsp[-3], '+'));
08454   ;}
08455     break;
08456 
08457   case 725:
08458 #line 3931 "parser.y"
08459     {
08460         cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_list (yyvsp[-4], '+'));
08461   ;}
08462     break;
08463 
08464   case 726:
08465 #line 3935 "parser.y"
08466     {
08467         cb_emit_corresponding (cb_build_add, yyvsp[-2], yyvsp[-4], yyvsp[-1]);
08468   ;}
08469     break;
08470 
08471   case 728:
08472 #line 3941 "parser.y"
08473     { cb_list_add (yyvsp[-2], yyvsp[0]); ;}
08474     break;
08475 
08476   case 729:
08477 #line 3945 "parser.y"
08478     { terminator_warning (TERM_ADD); ;}
08479     break;
08480 
08481   case 730:
08482 #line 3946 "parser.y"
08483     { terminator_clear (TERM_ADD); ;}
08484     break;
08485 
08486   case 731:
08487 #line 3955 "parser.y"
08488     { BEGIN_STATEMENT ("ALLOCATE", 0); ;}
08489     break;
08490 
08491   case 733:
08492 #line 3961 "parser.y"
08493     {
08494         cb_emit_allocate (yyvsp[-2], yyvsp[0], NULL, yyvsp[-1]);
08495   ;}
08496     break;
08497 
08498   case 734:
08499 #line 3965 "parser.y"
08500     {
08501         cb_emit_allocate (NULL, yyvsp[0], yyvsp[-4], yyvsp[-2]);
08502   ;}
08503     break;
08504 
08505   case 735:
08506 #line 3971 "parser.y"
08507     { yyval = NULL; ;}
08508     break;
08509 
08510   case 736:
08511 #line 3972 "parser.y"
08512     { yyval = yyvsp[0]; ;}
08513     break;
08514 
08515   case 737:
08516 #line 3982 "parser.y"
08517     {
08518         cb_error (_("ALTER statement is obsolete and unsupported"));
08519   ;}
08520     break;
08521 
08522   case 742:
08523 #line 4000 "parser.y"
08524     { BEGIN_STATEMENT ("CALL", TERM_CALL); ;}
08525     break;
08526 
08527   case 743:
08528 #line 4004 "parser.y"
08529     {
08530         cb_emit_call (yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1]);
08531   ;}
08532     break;
08533 
08534   case 744:
08535 #line 4010 "parser.y"
08536     { yyval = NULL; ;}
08537     break;
08538 
08539   case 745:
08540 #line 4012 "parser.y"
08541     {
08542         call_mode = CB_CALL_BY_REFERENCE;
08543         size_mode = CB_SIZE_4;
08544   ;}
08545     break;
08546 
08547   case 746:
08548 #line 4016 "parser.y"
08549     { yyval = yyvsp[0]; ;}
08550     break;
08551 
08552   case 747:
08553 #line 4020 "parser.y"
08554     { yyval = yyvsp[0]; ;}
08555     break;
08556 
08557   case 748:
08558 #line 4022 "parser.y"
08559     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
08560     break;
08561 
08562   case 749:
08563 #line 4027 "parser.y"
08564     {
08565         if (call_mode != CB_CALL_BY_REFERENCE) {
08566                 cb_error (_("OMITTED only allowed with BY REFERENCE"));
08567         }
08568         yyval = cb_build_pair (cb_int (call_mode), cb_null);
08569   ;}
08570     break;
08571 
08572   case 750:
08573 #line 4034 "parser.y"
08574     {
08575         yyval = cb_build_pair (cb_int (call_mode), yyvsp[0]);
08576         CB_SIZES (yyval) = size_mode;
08577   ;}
08578     break;
08579 
08580   case 752:
08581 #line 4043 "parser.y"
08582     {
08583         call_mode = CB_CALL_BY_REFERENCE;
08584   ;}
08585     break;
08586 
08587   case 753:
08588 #line 4047 "parser.y"
08589     {
08590         if (current_program->flag_chained) {
08591                 cb_error (_("BY CONTENT not allowed in CHAINED program"));
08592         } else {
08593                 call_mode = CB_CALL_BY_CONTENT;
08594         }
08595   ;}
08596     break;
08597 
08598   case 754:
08599 #line 4055 "parser.y"
08600     {
08601         if (current_program->flag_chained) {
08602                 cb_error (_("BY VALUE not allowed in CHAINED program"));
08603         } else {
08604                 call_mode = CB_CALL_BY_VALUE;
08605         }
08606   ;}
08607     break;
08608 
08609   case 755:
08610 #line 4065 "parser.y"
08611     { yyval = NULL; ;}
08612     break;
08613 
08614   case 756:
08615 #line 4066 "parser.y"
08616     { yyval = yyvsp[0]; ;}
08617     break;
08618 
08619   case 757:
08620 #line 4067 "parser.y"
08621     { yyval = yyvsp[0]; ;}
08622     break;
08623 
08624   case 758:
08625 #line 4072 "parser.y"
08626     {
08627         yyval = NULL;
08628   ;}
08629     break;
08630 
08631   case 759:
08632 #line 4076 "parser.y"
08633     {
08634         check_unreached = 0;
08635   ;}
08636     break;
08637 
08638   case 760:
08639 #line 4080 "parser.y"
08640     {
08641         yyval = yyvsp[0];
08642   ;}
08643     break;
08644 
08645   case 761:
08646 #line 4087 "parser.y"
08647     {
08648         yyval = NULL;
08649   ;}
08650     break;
08651 
08652   case 762:
08653 #line 4091 "parser.y"
08654     {
08655         check_unreached = 0;
08656   ;}
08657     break;
08658 
08659   case 763:
08660 #line 4095 "parser.y"
08661     {
08662         yyval = yyvsp[0];
08663   ;}
08664     break;
08665 
08666   case 764:
08667 #line 4101 "parser.y"
08668     { terminator_warning (TERM_CALL); ;}
08669     break;
08670 
08671   case 765:
08672 #line 4102 "parser.y"
08673     { terminator_clear (TERM_CALL); ;}
08674     break;
08675 
08676   case 766:
08677 #line 4111 "parser.y"
08678     { BEGIN_STATEMENT ("CANCEL", 0); ;}
08679     break;
08680 
08681   case 769:
08682 #line 4117 "parser.y"
08683     {
08684         cb_emit_cancel (yyvsp[0]);
08685   ;}
08686     break;
08687 
08688   case 770:
08689 #line 4128 "parser.y"
08690     { BEGIN_STATEMENT ("CLOSE", 0); ;}
08691     break;
08692 
08693   case 773:
08694 #line 4135 "parser.y"
08695     {
08696         BEGIN_IMPLICIT_STATEMENT ();
08697         if (yyvsp[-1] != cb_error_node) {
08698                 cb_emit_close (yyvsp[-1], yyvsp[0]);
08699         }
08700   ;}
08701     break;
08702 
08703   case 774:
08704 #line 4144 "parser.y"
08705     { yyval = cb_int (COB_CLOSE_NORMAL); ;}
08706     break;
08707 
08708   case 775:
08709 #line 4145 "parser.y"
08710     { yyval = cb_int (COB_CLOSE_UNIT); ;}
08711     break;
08712 
08713   case 776:
08714 #line 4146 "parser.y"
08715     { yyval = cb_int (COB_CLOSE_UNIT_REMOVAL); ;}
08716     break;
08717 
08718   case 777:
08719 #line 4147 "parser.y"
08720     { yyval = cb_int (COB_CLOSE_NO_REWIND); ;}
08721     break;
08722 
08723   case 778:
08724 #line 4148 "parser.y"
08725     { yyval = cb_int (COB_CLOSE_LOCK); ;}
08726     break;
08727 
08728   case 781:
08729 #line 4159 "parser.y"
08730     { BEGIN_STATEMENT ("COMPUTE", TERM_COMPUTE); ;}
08731     break;
08732 
08733   case 783:
08734 #line 4166 "parser.y"
08735     {
08736         cb_emit_arithmetic (yyvsp[-3], 0, yyvsp[-1]);
08737   ;}
08738     break;
08739 
08740   case 784:
08741 #line 4172 "parser.y"
08742     { terminator_warning (TERM_COMPUTE); ;}
08743     break;
08744 
08745   case 785:
08746 #line 4173 "parser.y"
08747     { terminator_clear (TERM_COMPUTE); ;}
08748     break;
08749 
08750   case 788:
08751 #line 4184 "parser.y"
08752     {
08753         BEGIN_STATEMENT ("COMMIT", 0);
08754         cb_emit_commit ();
08755   ;}
08756     break;
08757 
08758   case 789:
08759 #line 4197 "parser.y"
08760     {
08761         BEGIN_STATEMENT ("CONTINUE", 0);
08762         cb_emit_continue ();
08763   ;}
08764     break;
08765 
08766   case 790:
08767 #line 4209 "parser.y"
08768     { BEGIN_STATEMENT ("DELETE", TERM_DELETE); ;}
08769     break;
08770 
08771   case 791:
08772 #line 4212 "parser.y"
08773     {
08774         if (yyvsp[-3] != cb_error_node) {
08775                 cb_emit_delete (yyvsp[-3]);
08776         }
08777   ;}
08778     break;
08779 
08780   case 792:
08781 #line 4220 "parser.y"
08782     { terminator_warning (TERM_DELETE); ;}
08783     break;
08784 
08785   case 793:
08786 #line 4221 "parser.y"
08787     { terminator_clear (TERM_DELETE); ;}
08788     break;
08789 
08790   case 794:
08791 #line 4231 "parser.y"
08792     {
08793         BEGIN_STATEMENT ("DISPLAY", TERM_DISPLAY);
08794         dispattrs = 0;
08795         fgc = NULL;
08796         bgc = NULL;
08797         scroll = NULL;
08798   ;}
08799     break;
08800 
08801   case 796:
08802 #line 4244 "parser.y"
08803     {
08804         cb_emit_env_name (yyvsp[-2]);
08805   ;}
08806     break;
08807 
08808   case 797:
08809 #line 4248 "parser.y"
08810     {
08811         cb_emit_env_value (yyvsp[-2]);
08812   ;}
08813     break;
08814 
08815   case 798:
08816 #line 4252 "parser.y"
08817     {
08818         cb_emit_arg_number (yyvsp[-2]);
08819   ;}
08820     break;
08821 
08822   case 799:
08823 #line 4256 "parser.y"
08824     {
08825         cb_emit_command_line (yyvsp[-2]);
08826   ;}
08827     break;
08828 
08829   case 800:
08830 #line 4260 "parser.y"
08831     {
08832         cb_emit_display (yyvsp[-4], yyvsp[-2], yyvsp[-1], yyvsp[-3], fgc, bgc, scroll, dispattrs);
08833   ;}
08834     break;
08835 
08836   case 801:
08837 #line 4266 "parser.y"
08838     { yyval = cb_int0; ;}
08839     break;
08840 
08841   case 802:
08842 #line 4267 "parser.y"
08843     { yyval = cb_build_display_upon (yyvsp[0]); ;}
08844     break;
08845 
08846   case 803:
08847 #line 4268 "parser.y"
08848     { yyval = cb_build_display_upon_direct (yyvsp[0]); ;}
08849     break;
08850 
08851   case 804:
08852 #line 4269 "parser.y"
08853     { yyval = cb_int0; ;}
08854     break;
08855 
08856   case 805:
08857 #line 4270 "parser.y"
08858     { yyval = cb_int0; ;}
08859     break;
08860 
08861   case 806:
08862 #line 4274 "parser.y"
08863     { yyval = cb_int1; ;}
08864     break;
08865 
08866   case 807:
08867 #line 4275 "parser.y"
08868     { yyval = cb_int0; ;}
08869     break;
08870 
08871   case 808:
08872 #line 4276 "parser.y"
08873     { yyval = cb_int1; ;}
08874     break;
08875 
08876   case 811:
08877 #line 4286 "parser.y"
08878     { dispattrs |= COB_SCREEN_BELL; ;}
08879     break;
08880 
08881   case 812:
08882 #line 4287 "parser.y"
08883     { dispattrs |= COB_SCREEN_BLINK; ;}
08884     break;
08885 
08886   case 813:
08887 #line 4288 "parser.y"
08888     { dispattrs |= COB_SCREEN_ERASE_EOL; ;}
08889     break;
08890 
08891   case 814:
08892 #line 4289 "parser.y"
08893     { dispattrs |= COB_SCREEN_ERASE_EOS; ;}
08894     break;
08895 
08896   case 815:
08897 #line 4290 "parser.y"
08898     { dispattrs |= COB_SCREEN_HIGHLIGHT; ;}
08899     break;
08900 
08901   case 816:
08902 #line 4291 "parser.y"
08903     { dispattrs |= COB_SCREEN_LOWLIGHT; ;}
08904     break;
08905 
08906   case 817:
08907 #line 4292 "parser.y"
08908     { dispattrs |= COB_SCREEN_REVERSE; ;}
08909     break;
08910 
08911   case 818:
08912 #line 4293 "parser.y"
08913     { dispattrs |= COB_SCREEN_UNDERLINE; ;}
08914     break;
08915 
08916   case 819:
08917 #line 4294 "parser.y"
08918     { dispattrs |= COB_SCREEN_OVERLINE; ;}
08919     break;
08920 
08921   case 820:
08922 #line 4296 "parser.y"
08923     {
08924         fgc = yyvsp[0];
08925   ;}
08926     break;
08927 
08928   case 821:
08929 #line 4300 "parser.y"
08930     {
08931         bgc = yyvsp[0];
08932   ;}
08933     break;
08934 
08935   case 822:
08936 #line 4304 "parser.y"
08937     {
08938         scroll = yyvsp[0];
08939   ;}
08940     break;
08941 
08942   case 823:
08943 #line 4308 "parser.y"
08944     {
08945         dispattrs |= COB_SCREEN_SCROLL_DOWN;
08946         scroll = yyvsp[0];
08947   ;}
08948     break;
08949 
08950   case 824:
08951 #line 4312 "parser.y"
08952     { dispattrs |= COB_SCREEN_BLANK_LINE; ;}
08953     break;
08954 
08955   case 825:
08956 #line 4313 "parser.y"
08957     { dispattrs |= COB_SCREEN_BLANK_SCREEN; ;}
08958     break;
08959 
08960   case 826:
08961 #line 4317 "parser.y"
08962     { terminator_warning (TERM_DISPLAY); ;}
08963     break;
08964 
08965   case 827:
08966 #line 4318 "parser.y"
08967     { terminator_clear (TERM_DISPLAY); ;}
08968     break;
08969 
08970   case 828:
08971 #line 4327 "parser.y"
08972     { BEGIN_STATEMENT ("DIVIDE", TERM_DIVIDE); ;}
08973     break;
08974 
08975   case 830:
08976 #line 4334 "parser.y"
08977     {
08978         cb_emit_arithmetic (yyvsp[-1], '/', yyvsp[-3]);
08979   ;}
08980     break;
08981 
08982   case 831:
08983 #line 4338 "parser.y"
08984     {
08985         cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-3], '/', yyvsp[-5]));
08986   ;}
08987     break;
08988 
08989   case 832:
08990 #line 4342 "parser.y"
08991     {
08992         cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-5], '/', yyvsp[-3]));
08993   ;}
08994     break;
08995 
08996   case 833:
08997 #line 4346 "parser.y"
08998     {
08999         cb_emit_divide (yyvsp[-5], yyvsp[-7], yyvsp[-3], yyvsp[-1]);
09000   ;}
09001     break;
09002 
09003   case 834:
09004 #line 4350 "parser.y"
09005     {
09006         cb_emit_divide (yyvsp[-7], yyvsp[-5], yyvsp[-3], yyvsp[-1]);
09007   ;}
09008     break;
09009 
09010   case 835:
09011 #line 4356 "parser.y"
09012     { terminator_warning (TERM_DIVIDE); ;}
09013     break;
09014 
09015   case 836:
09016 #line 4357 "parser.y"
09017     { terminator_clear (TERM_DIVIDE); ;}
09018     break;
09019 
09020   case 837:
09021 #line 4366 "parser.y"
09022     { BEGIN_STATEMENT ("ENTRY", 0); ;}
09023     break;
09024 
09025   case 838:
09026 #line 4368 "parser.y"
09027     {
09028         if (current_program->nested_level) {
09029                 cb_error (_("ENTRY is invalid in nested program"));
09030         } else if (cb_verify (cb_entry_statement, "ENTRY")) {
09031                 if (cobc_check_valid_name ((char *)(CB_LITERAL (yyvsp[-1])->data))) {
09032                         cb_error (_("ENTRY '%s' invalid"), (char *)(CB_LITERAL (yyvsp[-1])->data));
09033                 }
09034                 emit_entry ((char *)(CB_LITERAL (yyvsp[-1])->data), 1, yyvsp[0]);
09035         }
09036         check_unreached = 0;
09037   ;}
09038     break;
09039 
09040   case 839:
09041 #line 4388 "parser.y"
09042     {
09043         BEGIN_STATEMENT ("EVALUATE", TERM_EVALUATE);
09044         eval_level++;
09045         for (eval_inc = 0; eval_inc < 64; eval_inc++) {
09046                 eval_check[eval_level][eval_inc] = 0;
09047         }
09048         eval_inc = 0;
09049         eval_inc2 = 0;
09050   ;}
09051     break;
09052 
09053   case 840:
09054 #line 4399 "parser.y"
09055     {
09056         cb_emit_evaluate (yyvsp[-2], yyvsp[-1]);
09057         eval_level--;
09058   ;}
09059     break;
09060 
09061   case 841:
09062 #line 4406 "parser.y"
09063     { yyval = cb_list_init (yyvsp[0]); ;}
09064     break;
09065 
09066   case 842:
09067 #line 4408 "parser.y"
09068     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
09069     break;
09070 
09071   case 843:
09072 #line 4413 "parser.y"
09073     {
09074         yyval = yyvsp[0];
09075         if (CB_REFERENCE_P (yyvsp[0])) {
09076                 eval_check[eval_level][eval_inc++] = 0;
09077         } else {
09078                 eval_check[eval_level][eval_inc++] = 1;
09079         }
09080   ;}
09081     break;
09082 
09083   case 844:
09084 #line 4422 "parser.y"
09085     {
09086         yyval = cb_true;
09087         eval_check[eval_level][eval_inc++] = 2;
09088   ;}
09089     break;
09090 
09091   case 845:
09092 #line 4427 "parser.y"
09093     {
09094         yyval = cb_false;
09095         eval_check[eval_level][eval_inc++] = 3;
09096   ;}
09097     break;
09098 
09099   case 846:
09100 #line 4435 "parser.y"
09101     {
09102         yyval = yyvsp[-1];
09103         if (yyvsp[0]) {
09104                 yyval = cb_list_add (yyval, yyvsp[0]);
09105         }
09106   ;}
09107     break;
09108 
09109   case 847:
09110 #line 4444 "parser.y"
09111     { yyval = cb_list_init (yyvsp[0]); ;}
09112     break;
09113 
09114   case 848:
09115 #line 4446 "parser.y"
09116     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
09117     break;
09118 
09119   case 849:
09120 #line 4451 "parser.y"
09121     {
09122         check_unreached = 0;
09123   ;}
09124     break;
09125 
09126   case 850:
09127 #line 4455 "parser.y"
09128     {
09129         yyval = cb_cons (yyvsp[0], yyvsp[-2]);
09130         eval_inc2 = 0;
09131   ;}
09132     break;
09133 
09134   case 851:
09135 #line 4463 "parser.y"
09136     {
09137         yyval = NULL;
09138   ;}
09139     break;
09140 
09141   case 852:
09142 #line 4467 "parser.y"
09143     {
09144         check_unreached = 0;
09145   ;}
09146     break;
09147 
09148   case 853:
09149 #line 4471 "parser.y"
09150     {
09151         yyval = cb_cons (yyvsp[0], NULL);
09152         eval_inc2 = 0;
09153   ;}
09154     break;
09155 
09156   case 854:
09157 #line 4478 "parser.y"
09158     { yyval = cb_list_init (yyvsp[0]); ;}
09159     break;
09160 
09161   case 855:
09162 #line 4480 "parser.y"
09163     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
09164     break;
09165 
09166   case 856:
09167 #line 4484 "parser.y"
09168     { yyval = cb_list_init (yyvsp[0]); ;}
09169     break;
09170 
09171   case 857:
09172 #line 4486 "parser.y"
09173     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
09174     break;
09175 
09176   case 858:
09177 #line 4491 "parser.y"
09178     {
09179         cb_tree not;
09180         cb_tree e1;
09181         cb_tree e2;
09182 
09183         not = cb_int0;
09184         e2 = yyvsp[0];
09185         /* in case the first token is NOT */
09186         if (CB_PURPOSE_INT (yyvsp[-1]) == '!') {
09187                 if (eval_check[eval_level][eval_inc2] < 2) {
09188                         not = cb_int1;
09189                         yyvsp[-1] = CB_CHAIN (yyvsp[-1]);
09190                 }
09191         }
09192 
09193         /* build expr now */
09194         e1 = cb_build_expr (yyvsp[-1]);
09195 
09196         if (e2 == NULL) {
09197                 /* WHEN expr */
09198                 eval_inc2++;
09199                 yyval = cb_build_pair (not, cb_build_pair (e1, NULL));
09200         } else {
09201                 /* WHEN expr THRU expr */
09202                 yyval = cb_build_pair (not, cb_build_pair (e1, e2));
09203                 eval_inc2++;
09204         }
09205   ;}
09206     break;
09207 
09208   case 859:
09209 #line 4519 "parser.y"
09210     { yyval = cb_any; eval_inc2++; ;}
09211     break;
09212 
09213   case 860:
09214 #line 4520 "parser.y"
09215     { yyval = cb_true; eval_inc2++; ;}
09216     break;
09217 
09218   case 861:
09219 #line 4521 "parser.y"
09220     { yyval = cb_false; eval_inc2++; ;}
09221     break;
09222 
09223   case 862:
09224 #line 4524 "parser.y"
09225     { yyval = NULL; ;}
09226     break;
09227 
09228   case 863:
09229 #line 4525 "parser.y"
09230     { yyval = yyvsp[0]; ;}
09231     break;
09232 
09233   case 864:
09234 #line 4529 "parser.y"
09235     { terminator_warning (TERM_EVALUATE); ;}
09236     break;
09237 
09238   case 865:
09239 #line 4530 "parser.y"
09240     { terminator_clear (TERM_EVALUATE); ;}
09241     break;
09242 
09243   case 866:
09244 #line 4539 "parser.y"
09245     { BEGIN_STATEMENT ("EXIT", 0); ;}
09246     break;
09247 
09248   case 868:
09249 #line 4544 "parser.y"
09250     { /* nothing */ ;}
09251     break;
09252 
09253   case 869:
09254 #line 4546 "parser.y"
09255     {
09256         if (in_declaratives && use_global_ind) {
09257                 cb_error (_("EXIT PROGRAM is not allowed within a USE GLOBAL procedure"));
09258         }
09259         check_unreached = 1;
09260         cb_emit_exit (0);
09261   ;}
09262     break;
09263 
09264   case 870:
09265 #line 4554 "parser.y"
09266     {
09267         struct cb_perform       *p;
09268         char                    name[64];
09269 
09270         if (!perform_stack) {
09271                 cb_error (_("EXIT PERFORM is only valid with inline PERFORM"));
09272         } else {
09273                 p = CB_PERFORM (CB_VALUE (perform_stack));
09274                 if (!p->exit_label) {
09275                         sprintf (name, "EXIT PERFORM %d", cb_id);
09276                         p->exit_label = cb_build_reference (name);
09277                         CB_LABEL (cb_build_label (p->exit_label, NULL))->need_begin = 1;
09278                 }
09279                 cb_emit_goto (cb_list_init (p->exit_label), NULL);
09280         }
09281   ;}
09282     break;
09283 
09284   case 871:
09285 #line 4571 "parser.y"
09286     {
09287         struct cb_perform       *p;
09288         char                    name[64];
09289 
09290         if (!perform_stack) {
09291                 cb_error (_("EXIT PERFORM is only valid with inline PERFORM"));
09292         } else {
09293                 p = CB_PERFORM (CB_VALUE (perform_stack));
09294                 if (!p->cycle_label) {
09295                         sprintf (name, "EXIT PERFORM CYCLE %d", cb_id);
09296                         p->cycle_label = cb_build_reference (name);
09297                         CB_LABEL (cb_build_label (p->cycle_label, NULL))->need_begin = 1;
09298                 }
09299                 cb_emit_goto (cb_list_init (p->cycle_label), NULL);
09300         }
09301   ;}
09302     break;
09303 
09304   case 872:
09305 #line 4588 "parser.y"
09306     {
09307         cb_tree plabel;
09308         char    name[64];
09309 
09310         if (!current_section) {
09311                 cb_error (_("EXIT SECTION is only valid with an active SECTION"));
09312         } else {
09313                 if (!current_section->exit_label) {
09314                         sprintf (name, "EXIT SECTION %d", cb_id);
09315                         plabel = cb_build_reference (name);
09316                         current_section->exit_label = cb_build_label (plabel, NULL);
09317                         current_section->exit_label_ref = plabel;
09318                         CB_LABEL (current_section->exit_label)->need_begin = 1;
09319                 }
09320                 cb_emit_goto (cb_list_init (current_section->exit_label_ref), NULL);
09321         }
09322   ;}
09323     break;
09324 
09325   case 873:
09326 #line 4606 "parser.y"
09327     {
09328         cb_tree plabel;
09329         char    name[64];
09330 
09331         if (!current_paragraph) {
09332                 cb_error (_("EXIT PARAGRAPH is only valid with an active PARAGRAPH"));
09333         } else {
09334                 if (!current_paragraph->exit_label) {
09335                         sprintf (name, "EXIT PARAGRAPH %d", cb_id);
09336                         plabel = cb_build_reference (name);
09337                         current_paragraph->exit_label = cb_build_label (plabel, NULL);
09338                         current_paragraph->exit_label_ref = plabel;
09339                         CB_LABEL (current_paragraph->exit_label)->need_begin = 1;
09340                 }
09341                 cb_emit_goto (cb_list_init (current_paragraph->exit_label_ref), NULL);
09342         }
09343   ;}
09344     break;
09345 
09346   case 874:
09347 #line 4630 "parser.y"
09348     { BEGIN_STATEMENT ("FREE", 0); ;}
09349     break;
09350 
09351   case 875:
09352 #line 4632 "parser.y"
09353     {
09354         cb_emit_free (yyvsp[0])
09355   ;}
09356     break;
09357 
09358   case 876:
09359 #line 4643 "parser.y"
09360     { BEGIN_STATEMENT ("GENERATE", 0); ;}
09361     break;
09362 
09363   case 877:
09364 #line 4645 "parser.y"
09365     {
09366         PENDING("GENERATE");
09367   ;}
09368     break;
09369 
09370   case 878:
09371 #line 4656 "parser.y"
09372     { BEGIN_STATEMENT ("GO TO", 0); ;}
09373     break;
09374 
09375   case 879:
09376 #line 4658 "parser.y"
09377     {
09378         cb_emit_goto (yyvsp[-1], yyvsp[0]);
09379   ;}
09380     break;
09381 
09382   case 880:
09383 #line 4665 "parser.y"
09384     {
09385         check_unreached = 1;
09386         yyval = NULL;
09387   ;}
09388     break;
09389 
09390   case 881:
09391 #line 4670 "parser.y"
09392     {
09393         check_unreached = 0;
09394         yyval = yyvsp[0];
09395   ;}
09396     break;
09397 
09398   case 882:
09399 #line 4682 "parser.y"
09400     { BEGIN_STATEMENT ("GOBACK", 0); ;}
09401     break;
09402 
09403   case 883:
09404 #line 4683 "parser.y"
09405     {
09406         check_unreached = 1;
09407         cb_emit_exit (1);
09408   ;}
09409     break;
09410 
09411   case 884:
09412 #line 4695 "parser.y"
09413     { BEGIN_STATEMENT ("IF", TERM_IF); ;}
09414     break;
09415 
09416   case 885:
09417 #line 4697 "parser.y"
09418     {
09419         check_unreached = 0;
09420   ;}
09421     break;
09422 
09423   case 886:
09424 #line 4702 "parser.y"
09425     {
09426         cb_emit_if (yyvsp[-5], yyvsp[-2], yyvsp[-1]);
09427   ;}
09428     break;
09429 
09430   case 888:
09431 #line 4710 "parser.y"
09432     {
09433         yyval = NULL;
09434   ;}
09435     break;
09436 
09437   case 889:
09438 #line 4714 "parser.y"
09439     {
09440         check_unreached = 0;
09441   ;}
09442     break;
09443 
09444   case 890:
09445 #line 4718 "parser.y"
09446     {
09447         yyval = yyvsp[0];
09448   ;}
09449     break;
09450 
09451   case 891:
09452 #line 4724 "parser.y"
09453     { terminator_warning (TERM_IF); ;}
09454     break;
09455 
09456   case 892:
09457 #line 4725 "parser.y"
09458     { terminator_clear (TERM_IF); ;}
09459     break;
09460 
09461   case 893:
09462 #line 4734 "parser.y"
09463     { BEGIN_STATEMENT ("INITIALIZE", 0); ;}
09464     break;
09465 
09466   case 894:
09467 #line 4736 "parser.y"
09468     {
09469         cb_emit_initialize (yyvsp[-4], yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]);
09470   ;}
09471     break;
09472 
09473   case 895:
09474 #line 4742 "parser.y"
09475     { yyval = NULL; ;}
09476     break;
09477 
09478   case 896:
09479 #line 4743 "parser.y"
09480     { yyval = cb_true; ;}
09481     break;
09482 
09483   case 897:
09484 #line 4747 "parser.y"
09485     { yyval = NULL; ;}
09486     break;
09487 
09488   case 898:
09489 #line 4748 "parser.y"
09490     { yyval = cb_true; ;}
09491     break;
09492 
09493   case 899:
09494 #line 4749 "parser.y"
09495     { yyval = yyvsp[-2]; ;}
09496     break;
09497 
09498   case 900:
09499 #line 4753 "parser.y"
09500     { yyval = NULL; ;}
09501     break;
09502 
09503   case 901:
09504 #line 4755 "parser.y"
09505     { yyval = yyvsp[0]; ;}
09506     break;
09507 
09508   case 902:
09509 #line 4759 "parser.y"
09510     { yyval = yyvsp[0]; ;}
09511     break;
09512 
09513   case 903:
09514 #line 4761 "parser.y"
09515     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
09516     break;
09517 
09518   case 904:
09519 #line 4765 "parser.y"
09520     { yyval = cb_build_pair (yyvsp[-3], yyvsp[0]); ;}
09521     break;
09522 
09523   case 905:
09524 #line 4769 "parser.y"
09525     { yyval = cb_int (CB_CATEGORY_ALPHABETIC); ;}
09526     break;
09527 
09528   case 906:
09529 #line 4770 "parser.y"
09530     { yyval = cb_int (CB_CATEGORY_ALPHANUMERIC); ;}
09531     break;
09532 
09533   case 907:
09534 #line 4771 "parser.y"
09535     { yyval = cb_int (CB_CATEGORY_NUMERIC); ;}
09536     break;
09537 
09538   case 908:
09539 #line 4772 "parser.y"
09540     { yyval = cb_int (CB_CATEGORY_ALPHANUMERIC_EDITED); ;}
09541     break;
09542 
09543   case 909:
09544 #line 4773 "parser.y"
09545     { yyval = cb_int (CB_CATEGORY_NUMERIC_EDITED); ;}
09546     break;
09547 
09548   case 910:
09549 #line 4774 "parser.y"
09550     { yyval = cb_int (CB_CATEGORY_NATIONAL); ;}
09551     break;
09552 
09553   case 911:
09554 #line 4775 "parser.y"
09555     { yyval = cb_int (CB_CATEGORY_NATIONAL_EDITED); ;}
09556     break;
09557 
09558   case 912:
09559 #line 4779 "parser.y"
09560     { yyval = NULL; ;}
09561     break;
09562 
09563   case 913:
09564 #line 4780 "parser.y"
09565     { yyval = cb_true; ;}
09566     break;
09567 
09568   case 914:
09569 #line 4789 "parser.y"
09570     { BEGIN_STATEMENT ("INITIATE", 0); ;}
09571     break;
09572 
09573   case 915:
09574 #line 4791 "parser.y"
09575     {
09576         PENDING("INITIATE");
09577   ;}
09578     break;
09579 
09580   case 916:
09581 #line 4802 "parser.y"
09582     {
09583         BEGIN_STATEMENT ("INSPECT", 0);
09584         sending_id = 0;
09585         inspect_keyword = 0;
09586   ;}
09587     break;
09588 
09589   case 918:
09590 #line 4811 "parser.y"
09591     { save_tree_1 = yyvsp[0]; sending_id = 0; ;}
09592     break;
09593 
09594   case 919:
09595 #line 4812 "parser.y"
09596     { save_tree_1 = yyvsp[0]; sending_id = 1; ;}
09597     break;
09598 
09599   case 920:
09600 #line 4813 "parser.y"
09601     { save_tree_1 = yyvsp[0]; sending_id = 1; ;}
09602     break;
09603 
09604   case 923:
09605 #line 4822 "parser.y"
09606     { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int0, 0); ;}
09607     break;
09608 
09609   case 924:
09610 #line 4823 "parser.y"
09611     { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int1, 1); ;}
09612     break;
09613 
09614   case 925:
09615 #line 4824 "parser.y"
09616     { cb_emit_inspect (save_tree_1, yyvsp[0], cb_int0, 2); ;}
09617     break;
09618 
09619   case 926:
09620 #line 4830 "parser.y"
09621     { cb_init_tarrying (); ;}
09622     break;
09623 
09624   case 927:
09625 #line 4831 "parser.y"
09626     { yyval = yyvsp[0]; ;}
09627     break;
09628 
09629   case 928:
09630 #line 4835 "parser.y"
09631     { yyval = yyvsp[0]; ;}
09632     break;
09633 
09634   case 929:
09635 #line 4836 "parser.y"
09636     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
09637     break;
09638 
09639   case 930:
09640 #line 4840 "parser.y"
09641     { yyval = cb_build_tarrying_data (yyvsp[-1]); ;}
09642     break;
09643 
09644   case 931:
09645 #line 4841 "parser.y"
09646     { yyval = cb_build_tarrying_characters (yyvsp[0]); ;}
09647     break;
09648 
09649   case 932:
09650 #line 4842 "parser.y"
09651     { yyval = cb_build_tarrying_all (); ;}
09652     break;
09653 
09654   case 933:
09655 #line 4843 "parser.y"
09656     { yyval = cb_build_tarrying_leading (); ;}
09657     break;
09658 
09659   case 934:
09660 #line 4844 "parser.y"
09661     { yyval = cb_build_tarrying_trailing (); ;}
09662     break;
09663 
09664   case 935:
09665 #line 4845 "parser.y"
09666     { yyval = cb_build_tarrying_value (yyvsp[-1], yyvsp[0]); ;}
09667     break;
09668 
09669   case 936:
09670 #line 4851 "parser.y"
09671     { yyval = yyvsp[0]; inspect_keyword = 0; ;}
09672     break;
09673 
09674   case 937:
09675 #line 4855 "parser.y"
09676     { yyval = yyvsp[0]; ;}
09677     break;
09678 
09679   case 938:
09680 #line 4856 "parser.y"
09681     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
09682     break;
09683 
09684   case 939:
09685 #line 4861 "parser.y"
09686     {
09687         yyval = cb_build_replacing_characters (yyvsp[-1], yyvsp[0]);
09688         inspect_keyword = 0;
09689   ;}
09690     break;
09691 
09692   case 940:
09693 #line 4865 "parser.y"
09694     { yyval = yyvsp[0]; ;}
09695     break;
09696 
09697   case 941:
09698 #line 4869 "parser.y"
09699     { /* Nothing */ ;}
09700     break;
09701 
09702   case 942:
09703 #line 4870 "parser.y"
09704     { inspect_keyword = 1; ;}
09705     break;
09706 
09707   case 943:
09708 #line 4871 "parser.y"
09709     { inspect_keyword = 2; ;}
09710     break;
09711 
09712   case 944:
09713 #line 4872 "parser.y"
09714     { inspect_keyword = 3; ;}
09715     break;
09716 
09717   case 945:
09718 #line 4873 "parser.y"
09719     { inspect_keyword = 4; ;}
09720     break;
09721 
09722   case 946:
09723 #line 4878 "parser.y"
09724     {
09725         switch (inspect_keyword) {
09726                 case 1:
09727                         yyval = cb_build_replacing_all (yyvsp[-3], yyvsp[-1], yyvsp[0]);
09728                         break;
09729                 case 2:
09730                         yyval = cb_build_replacing_leading (yyvsp[-3], yyvsp[-1], yyvsp[0]);
09731                         break;
09732                 case 3:
09733                         yyval = cb_build_replacing_first (yyvsp[-3], yyvsp[-1], yyvsp[0]);
09734                         break;
09735                 case 4:
09736                         yyval = cb_build_replacing_trailing (yyvsp[-3], yyvsp[-1], yyvsp[0]);
09737                         break;
09738                 default:
09739                         cb_error (_("INSPECT missing a keyword"));
09740                         yyval = cb_error_node;
09741                         break;
09742         }
09743   ;}
09744     break;
09745 
09746   case 947:
09747 #line 4904 "parser.y"
09748     {
09749         yyval = cb_build_converting (yyvsp[-3], yyvsp[-1], yyvsp[0]);
09750   ;}
09751     break;
09752 
09753   case 948:
09754 #line 4912 "parser.y"
09755     { yyval = cb_build_inspect_region_start (); ;}
09756     break;
09757 
09758   case 949:
09759 #line 4914 "parser.y"
09760     { yyval = cb_build_inspect_region (yyvsp[-3], yyvsp[-2], yyvsp[0]); ;}
09761     break;
09762 
09763   case 952:
09764 #line 4925 "parser.y"
09765     { BEGIN_STATEMENT ("MERGE", 0); ;}
09766     break;
09767 
09768   case 954:
09769 #line 4935 "parser.y"
09770     { BEGIN_STATEMENT ("MOVE", 0); ;}
09771     break;
09772 
09773   case 956:
09774 #line 4941 "parser.y"
09775     {
09776         cb_emit_move (yyvsp[-2], yyvsp[0]);
09777   ;}
09778     break;
09779 
09780   case 957:
09781 #line 4945 "parser.y"
09782     {
09783         cb_emit_move_corresponding (yyvsp[-2], yyvsp[0]);
09784   ;}
09785     break;
09786 
09787   case 958:
09788 #line 4956 "parser.y"
09789     { BEGIN_STATEMENT ("MULTIPLY", TERM_MULTIPLY); ;}
09790     break;
09791 
09792   case 960:
09793 #line 4963 "parser.y"
09794     {
09795         cb_emit_arithmetic (yyvsp[-1], '*', yyvsp[-3]);
09796   ;}
09797     break;
09798 
09799   case 961:
09800 #line 4967 "parser.y"
09801     {
09802         cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_op (yyvsp[-5], '*', yyvsp[-3]));
09803   ;}
09804     break;
09805 
09806   case 962:
09807 #line 4973 "parser.y"
09808     { terminator_warning (TERM_MULTIPLY); ;}
09809     break;
09810 
09811   case 963:
09812 #line 4974 "parser.y"
09813     { terminator_clear (TERM_MULTIPLY); ;}
09814     break;
09815 
09816   case 964:
09817 #line 4983 "parser.y"
09818     { BEGIN_STATEMENT ("OPEN", 0); ;}
09819     break;
09820 
09821   case 967:
09822 #line 4990 "parser.y"
09823     {
09824         cb_tree l;
09825         for (l = yyvsp[-1]; l; l = CB_CHAIN (l)) {
09826                 if (CB_VALUE (l) != cb_error_node) {
09827                         BEGIN_IMPLICIT_STATEMENT ();
09828                         cb_emit_open (CB_VALUE (l), yyvsp[-3], yyvsp[-2]);
09829                 }
09830         }
09831   ;}
09832     break;
09833 
09834   case 968:
09835 #line 5002 "parser.y"
09836     { yyval = cb_int (COB_OPEN_INPUT); ;}
09837     break;
09838 
09839   case 969:
09840 #line 5003 "parser.y"
09841     { yyval = cb_int (COB_OPEN_OUTPUT); ;}
09842     break;
09843 
09844   case 970:
09845 #line 5004 "parser.y"
09846     { yyval = cb_int (COB_OPEN_I_O); ;}
09847     break;
09848 
09849   case 971:
09850 #line 5005 "parser.y"
09851     { yyval = cb_int (COB_OPEN_EXTEND); ;}
09852     break;
09853 
09854   case 972:
09855 #line 5009 "parser.y"
09856     { yyval = NULL; ;}
09857     break;
09858 
09859   case 973:
09860 #line 5010 "parser.y"
09861     { yyval = yyvsp[0]; ;}
09862     break;
09863 
09864   case 974:
09865 #line 5014 "parser.y"
09866     { yyval = NULL; ;}
09867     break;
09868 
09869   case 975:
09870 #line 5015 "parser.y"
09871     { yyval = NULL; ;}
09872     break;
09873 
09874   case 976:
09875 #line 5016 "parser.y"
09876     { PENDING ("OPEN ... WITH LOCK"); ;}
09877     break;
09878 
09879   case 977:
09880 #line 5028 "parser.y"
09881     { BEGIN_STATEMENT ("PERFORM", TERM_PERFORM); ;}
09882     break;
09883 
09884   case 979:
09885 #line 5034 "parser.y"
09886     {
09887         cb_emit_perform (yyvsp[0], yyvsp[-1]);
09888   ;}
09889     break;
09890 
09891   case 980:
09892 #line 5038 "parser.y"
09893     {
09894         perform_stack = cb_cons (yyvsp[0], perform_stack);
09895         check_unreached = 0;
09896   ;}
09897     break;
09898 
09899   case 981:
09900 #line 5043 "parser.y"
09901     {
09902         perform_stack = CB_CHAIN (perform_stack);
09903         cb_emit_perform (yyvsp[-3], yyvsp[-1]);
09904   ;}
09905     break;
09906 
09907   case 982:
09908 #line 5048 "parser.y"
09909     {
09910         cb_emit_perform (yyvsp[-1], NULL);
09911   ;}
09912     break;
09913 
09914   case 983:
09915 #line 5054 "parser.y"
09916     { terminator_error (); ;}
09917     break;
09918 
09919   case 984:
09920 #line 5055 "parser.y"
09921     { terminator_clear (TERM_PERFORM); ;}
09922     break;
09923 
09924   case 985:
09925 #line 5060 "parser.y"
09926     {
09927         CB_REFERENCE (yyvsp[0])->length = cb_true; /* return from $1 */
09928         yyval = cb_build_pair (yyvsp[0], yyvsp[0]);
09929   ;}
09930     break;
09931 
09932   case 986:
09933 #line 5065 "parser.y"
09934     {
09935         CB_REFERENCE (yyvsp[0])->length = cb_true; /* return from $3 */
09936         yyval = cb_build_pair (yyvsp[-2], yyvsp[0]);
09937   ;}
09938     break;
09939 
09940   case 987:
09941 #line 5073 "parser.y"
09942     {
09943         yyval = cb_build_perform_once (NULL);
09944   ;}
09945     break;
09946 
09947   case 988:
09948 #line 5077 "parser.y"
09949     {
09950         yyval = cb_build_perform_forever (NULL);
09951   ;}
09952     break;
09953 
09954   case 989:
09955 #line 5081 "parser.y"
09956     {
09957         yyval = cb_build_perform_times (yyvsp[-1]);
09958         current_program->loop_counter++;
09959   ;}
09960     break;
09961 
09962   case 990:
09963 #line 5086 "parser.y"
09964     {
09965         cb_tree varying;
09966 
09967         varying = cb_list_init (cb_build_perform_varying (NULL, NULL, NULL, yyvsp[0]));
09968         yyval = cb_build_perform_until (yyvsp[-2], varying);
09969   ;}
09970     break;
09971 
09972   case 991:
09973 #line 5093 "parser.y"
09974     {
09975         yyval = cb_build_perform_until (yyvsp[-2], yyvsp[0]);
09976   ;}
09977     break;
09978 
09979   case 992:
09980 #line 5099 "parser.y"
09981     { yyval = CB_BEFORE; ;}
09982     break;
09983 
09984   case 993:
09985 #line 5100 "parser.y"
09986     { yyval = yyvsp[0]; ;}
09987     break;
09988 
09989   case 994:
09990 #line 5104 "parser.y"
09991     { yyval = cb_list_init (yyvsp[0]); ;}
09992     break;
09993 
09994   case 995:
09995 #line 5106 "parser.y"
09996     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
09997     break;
09998 
09999   case 996:
10000 #line 5111 "parser.y"
10001     {
10002         yyval = cb_build_perform_varying (yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[0]);
10003   ;}
10004     break;
10005 
10006   case 997:
10007 #line 5122 "parser.y"
10008     { BEGIN_STATEMENT ("READ", TERM_READ); ;}
10009     break;
10010 
10011   case 998:
10012 #line 5125 "parser.y"
10013     {
10014         if (yyvsp[-7] != cb_error_node) {
10015                 if (yyvsp[-3] && (CB_FILE(cb_ref (yyvsp[-7]))->lock_mode & COB_LOCK_AUTOMATIC)) {
10016                         cb_error (_("LOCK clause invalid with file LOCK AUTOMATIC"));
10017                 } else if (yyvsp[-2] &&
10018                       (CB_FILE(cb_ref (yyvsp[-7]))->organization != COB_ORG_RELATIVE &&
10019                        CB_FILE(cb_ref (yyvsp[-7]))->organization != COB_ORG_INDEXED)) {
10020                         cb_error (_("KEY clause invalid with this file type"));
10021                 } else if (current_statement->handler_id == COB_EC_I_O_INVALID_KEY &&
10022                       (CB_FILE(cb_ref (yyvsp[-7]))->organization != COB_ORG_RELATIVE &&
10023                        CB_FILE(cb_ref (yyvsp[-7]))->organization != COB_ORG_INDEXED)) {
10024                         cb_error (_("INVALID KEY clause invalid with this file type"));
10025                 } else {
10026                         cb_emit_read (yyvsp[-7], yyvsp[-6], yyvsp[-4], yyvsp[-2], yyvsp[-3]);
10027                 }
10028         }
10029   ;}
10030     break;
10031 
10032   case 999:
10033 #line 5145 "parser.y"
10034     { yyval = NULL; ;}
10035     break;
10036 
10037   case 1000:
10038 #line 5146 "parser.y"
10039     { yyval = yyvsp[0]; ;}
10040     break;
10041 
10042   case 1001:
10043 #line 5150 "parser.y"
10044     { yyval = NULL; ;}
10045     break;
10046 
10047   case 1002:
10048 #line 5152 "parser.y"
10049     {
10050         yyval = cb_int3;
10051   ;}
10052     break;
10053 
10054   case 1003:
10055 #line 5156 "parser.y"
10056     {
10057         yyval = cb_int1;
10058   ;}
10059     break;
10060 
10061   case 1004:
10062 #line 5160 "parser.y"
10063     {
10064         yyval = cb_int2;
10065   ;}
10066     break;
10067 
10068   case 1005:
10069 #line 5164 "parser.y"
10070     {
10071         yyval = cb_int3;
10072   ;}
10073     break;
10074 
10075   case 1006:
10076 #line 5168 "parser.y"
10077     {
10078         yyval = cb_int4;
10079   ;}
10080     break;
10081 
10082   case 1007:
10083 #line 5174 "parser.y"
10084     { yyval = NULL; ;}
10085     break;
10086 
10087   case 1008:
10088 #line 5175 "parser.y"
10089     { yyval = yyvsp[0]; ;}
10090     break;
10091 
10092   case 1012:
10093 #line 5184 "parser.y"
10094     { terminator_warning (TERM_READ); ;}
10095     break;
10096 
10097   case 1013:
10098 #line 5185 "parser.y"
10099     { terminator_clear (TERM_READ); ;}
10100     break;
10101 
10102   case 1014:
10103 #line 5194 "parser.y"
10104     { BEGIN_STATEMENT ("RELEASE", 0); ;}
10105     break;
10106 
10107   case 1015:
10108 #line 5196 "parser.y"
10109     {
10110         if (yyvsp[-1] != cb_error_node) {
10111                 cb_emit_release (yyvsp[-1], yyvsp[0]);
10112         }
10113   ;}
10114     break;
10115 
10116   case 1016:
10117 #line 5209 "parser.y"
10118     { BEGIN_STATEMENT ("RETURN", TERM_RETURN); ;}
10119     break;
10120 
10121   case 1017:
10122 #line 5212 "parser.y"
10123     {
10124         if (yyvsp[-4] != cb_error_node) {
10125                 cb_emit_return (yyvsp[-4], yyvsp[-2]);
10126         }
10127   ;}
10128     break;
10129 
10130   case 1018:
10131 #line 5220 "parser.y"
10132     { terminator_warning (TERM_RETURN); ;}
10133     break;
10134 
10135   case 1019:
10136 #line 5221 "parser.y"
10137     { terminator_clear (TERM_RETURN); ;}
10138     break;
10139 
10140   case 1020:
10141 #line 5230 "parser.y"
10142     { BEGIN_STATEMENT ("REWRITE", TERM_REWRITE); ;}
10143     break;
10144 
10145   case 1021:
10146 #line 5233 "parser.y"
10147     {
10148         if (yyvsp[-4] != cb_error_node) {
10149                 cb_emit_rewrite (yyvsp[-4], yyvsp[-3], yyvsp[-2]);
10150         }
10151   ;}
10152     break;
10153 
10154   case 1022:
10155 #line 5241 "parser.y"
10156     { yyval = NULL; ;}
10157     break;
10158 
10159   case 1023:
10160 #line 5243 "parser.y"
10161     {
10162         yyval = cb_int1;
10163   ;}
10164     break;
10165 
10166   case 1024:
10167 #line 5247 "parser.y"
10168     {
10169         yyval = cb_int2;
10170   ;}
10171     break;
10172 
10173   case 1025:
10174 #line 5253 "parser.y"
10175     { terminator_warning (TERM_REWRITE); ;}
10176     break;
10177 
10178   case 1026:
10179 #line 5254 "parser.y"
10180     { terminator_clear (TERM_REWRITE); ;}
10181     break;
10182 
10183   case 1027:
10184 #line 5264 "parser.y"
10185     {
10186         BEGIN_STATEMENT ("ROLLBACK", 0);
10187         cb_emit_rollback ();
10188   ;}
10189     break;
10190 
10191   case 1028:
10192 #line 5276 "parser.y"
10193     { BEGIN_STATEMENT ("SEARCH", TERM_SEARCH); ;}
10194     break;
10195 
10196   case 1030:
10197 #line 5283 "parser.y"
10198     {
10199         cb_emit_search (yyvsp[-3], yyvsp[-2], yyvsp[-1], yyvsp[0]);
10200   ;}
10201     break;
10202 
10203   case 1031:
10204 #line 5287 "parser.y"
10205     {
10206         check_unreached = 0;
10207   ;}
10208     break;
10209 
10210   case 1032:
10211 #line 5291 "parser.y"
10212     {
10213         cb_emit_search_all (yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[0]);
10214   ;}
10215     break;
10216 
10217   case 1033:
10218 #line 5297 "parser.y"
10219     { yyval = NULL; ;}
10220     break;
10221 
10222   case 1034:
10223 #line 5298 "parser.y"
10224     { yyval = yyvsp[0]; ;}
10225     break;
10226 
10227   case 1035:
10228 #line 5302 "parser.y"
10229     { yyval = NULL; ;}
10230     break;
10231 
10232   case 1036:
10233 #line 5304 "parser.y"
10234     {
10235         check_unreached = 0;
10236   ;}
10237     break;
10238 
10239   case 1037:
10240 #line 5308 "parser.y"
10241     {
10242         yyval = yyvsp[0];
10243   ;}
10244     break;
10245 
10246   case 1038:
10247 #line 5314 "parser.y"
10248     { yyval = yyvsp[0]; ;}
10249     break;
10250 
10251   case 1039:
10252 #line 5315 "parser.y"
10253     { yyval = yyvsp[-1]; CB_IF (yyvsp[-1])->stmt2 = yyvsp[0]; ;}
10254     break;
10255 
10256   case 1040:
10257 #line 5320 "parser.y"
10258     {
10259         check_unreached = 0;
10260   ;}
10261     break;
10262 
10263   case 1041:
10264 #line 5324 "parser.y"
10265     {
10266         yyval = cb_build_if (yyvsp[-2], yyvsp[0], NULL);
10267   ;}
10268     break;
10269 
10270   case 1042:
10271 #line 5330 "parser.y"
10272     { terminator_warning (TERM_SEARCH); ;}
10273     break;
10274 
10275   case 1043:
10276 #line 5331 "parser.y"
10277     { terminator_clear (TERM_SEARCH); ;}
10278     break;
10279 
10280   case 1044:
10281 #line 5340 "parser.y"
10282     { BEGIN_STATEMENT ("SET", 0); ;}
10283     break;
10284 
10285   case 1051:
10286 #line 5356 "parser.y"
10287     {
10288         cb_emit_setenv (yyvsp[-2], yyvsp[0]);
10289   ;}
10290     break;
10291 
10292   case 1052:
10293 #line 5365 "parser.y"
10294     {
10295         cb_emit_set_to (yyvsp[-3], cb_build_ppointer (yyvsp[0]));
10296   ;}
10297     break;
10298 
10299   case 1053:
10300 #line 5369 "parser.y"
10301     {
10302         cb_emit_set_to (yyvsp[-2], yyvsp[0]);
10303   ;}
10304     break;
10305 
10306   case 1054:
10307 #line 5378 "parser.y"
10308     {
10309         cb_emit_set_up_down (yyvsp[-3], yyvsp[-2], yyvsp[0]);
10310   ;}
10311     break;
10312 
10313   case 1055:
10314 #line 5384 "parser.y"
10315     { yyval = cb_int0; ;}
10316     break;
10317 
10318   case 1056:
10319 #line 5385 "parser.y"
10320     { yyval = cb_int1; ;}
10321     break;
10322 
10323   case 1059:
10324 #line 5397 "parser.y"
10325     {
10326         cb_emit_set_on_off (yyvsp[-2], yyvsp[0]);
10327   ;}
10328     break;
10329 
10330   case 1062:
10331 #line 5411 "parser.y"
10332     {
10333         cb_emit_set_true (yyvsp[-2]);
10334   ;}
10335     break;
10336 
10337   case 1063:
10338 #line 5415 "parser.y"
10339     {
10340         cb_emit_set_false (yyvsp[-2]);
10341   ;}
10342     break;
10343 
10344   case 1064:
10345 #line 5426 "parser.y"
10346     { BEGIN_STATEMENT ("SORT", 0); ;}
10347     break;
10348 
10349   case 1066:
10350 #line 5432 "parser.y"
10351     {
10352         cb_emit_sort_init (yyvsp[-3], yyvsp[-2], yyvsp[0]);
10353         if (CB_FILE_P (cb_ref (yyvsp[-3])) && yyvsp[-2] == NULL) {
10354                 cb_error (_("File sort requires KEY phrase"));
10355         }
10356         /* used in sort_input/sort_output */
10357         save_tree_1 = yyvsp[-3];
10358   ;}
10359     break;
10360 
10361   case 1067:
10362 #line 5441 "parser.y"
10363     {
10364         cb_emit_sort_finish (yyvsp[-6]);
10365   ;}
10366     break;
10367 
10368   case 1068:
10369 #line 5448 "parser.y"
10370     {
10371         yyval = NULL;
10372   ;}
10373     break;
10374 
10375   case 1069:
10376 #line 5453 "parser.y"
10377     {
10378         cb_tree l;
10379 
10380         if (yyvsp[0] == NULL) {
10381                 yyvsp[0] = cb_list_init (NULL);
10382         }
10383         for (l = yyvsp[0]; l; l = CB_CHAIN (l)) {
10384                 CB_PURPOSE (l) = yyvsp[-2];
10385         }
10386         yyval = cb_list_append (yyvsp[-4], yyvsp[0]);
10387   ;}
10388     break;
10389 
10390   case 1070:
10391 #line 5467 "parser.y"
10392     { yyval = NULL; ;}
10393     break;
10394 
10395   case 1071:
10396 #line 5468 "parser.y"
10397     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
10398     break;
10399 
10400   case 1073:
10401 #line 5472 "parser.y"
10402     { /* nothing */ ;}
10403     break;
10404 
10405   case 1074:
10406 #line 5476 "parser.y"
10407     { yyval = cb_null; ;}
10408     break;
10409 
10410   case 1075:
10411 #line 5477 "parser.y"
10412     { yyval = cb_ref (yyvsp[0]); ;}
10413     break;
10414 
10415   case 1076:
10416 #line 5482 "parser.y"
10417     {
10418         if (CB_FILE_P (cb_ref (save_tree_1))) {
10419                 cb_error (_("File sort requires USING or INPUT PROCEDURE"));
10420         }
10421   ;}
10422     break;
10423 
10424   case 1077:
10425 #line 5488 "parser.y"
10426     {
10427         if (!CB_FILE_P (cb_ref (save_tree_1))) {
10428                 cb_error (_("USING invalid with table SORT"));
10429         } else {
10430                 cb_emit_sort_using (save_tree_1, yyvsp[0]);
10431         }
10432   ;}
10433     break;
10434 
10435   case 1078:
10436 #line 5496 "parser.y"
10437     {
10438         if (!CB_FILE_P (cb_ref (save_tree_1))) {
10439                 cb_error (_("INPUT PROCEDURE invalid with table SORT"));
10440         } else {
10441                 cb_emit_sort_input (yyvsp[0]);
10442         }
10443   ;}
10444     break;
10445 
10446   case 1079:
10447 #line 5507 "parser.y"
10448     {
10449         if (CB_FILE_P (cb_ref (save_tree_1))) {
10450                 cb_error (_("File sort requires GIVING or OUTPUT PROCEDURE"));
10451         }
10452   ;}
10453     break;
10454 
10455   case 1080:
10456 #line 5513 "parser.y"
10457     {
10458         if (!CB_FILE_P (cb_ref (save_tree_1))) {
10459                 cb_error (_("GIVING invalid with table SORT"));
10460         } else {
10461                 cb_emit_sort_giving (save_tree_1, yyvsp[0]);
10462         }
10463   ;}
10464     break;
10465 
10466   case 1081:
10467 #line 5521 "parser.y"
10468     {
10469         if (!CB_FILE_P (cb_ref (save_tree_1))) {
10470                 cb_error (_("OUTPUT PROCEDURE invalid with table SORT"));
10471         } else {
10472                 cb_emit_sort_output (yyvsp[0]);
10473         }
10474   ;}
10475     break;
10476 
10477   case 1082:
10478 #line 5536 "parser.y"
10479     { BEGIN_STATEMENT ("START", TERM_START); ;}
10480     break;
10481 
10482   case 1083:
10483 #line 5537 "parser.y"
10484     { yyval = cb_int (COB_EQ); ;}
10485     break;
10486 
10487   case 1084:
10488 #line 5540 "parser.y"
10489     {
10490         if (CB_FILE_P (cb_ref (yyvsp[-4]))) {
10491                 if (CB_FILE (cb_ref (yyvsp[-4]))->organization != COB_ORG_INDEXED &&
10492                      CB_FILE (cb_ref (yyvsp[-4]))->organization != COB_ORG_RELATIVE) {
10493                         cb_error (_("START not allowed on SEQUENTIAL files"));
10494                         yyval = cb_error_node;
10495                 } else {
10496                         cb_emit_start (yyvsp[-4], yyvsp[-3], yyvsp[-2]);
10497                 }
10498         } else {
10499                 cb_error_x (yyvsp[-4], _("'%s' is not a file name"), CB_NAME (yyvsp[-4]));
10500                 yyval = cb_error_node;
10501         }
10502   ;}
10503     break;
10504 
10505   case 1085:
10506 #line 5557 "parser.y"
10507     { yyval = NULL; ;}
10508     break;
10509 
10510   case 1086:
10511 #line 5558 "parser.y"
10512     { yyvsp[-4] = yyvsp[-1]; yyval = yyvsp[0]; ;}
10513     break;
10514 
10515   case 1087:
10516 #line 5562 "parser.y"
10517     { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_NE : COB_EQ); ;}
10518     break;
10519 
10520   case 1088:
10521 #line 5563 "parser.y"
10522     { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_LE : COB_GT); ;}
10523     break;
10524 
10525   case 1089:
10526 #line 5564 "parser.y"
10527     { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_GE : COB_LT); ;}
10528     break;
10529 
10530   case 1090:
10531 #line 5565 "parser.y"
10532     { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_LT : COB_GE); ;}
10533     break;
10534 
10535   case 1091:
10536 #line 5566 "parser.y"
10537     { yyval = cb_int ((yyvsp[-1] == cb_int1) ? COB_GT : COB_LE); ;}
10538     break;
10539 
10540   case 1092:
10541 #line 5570 "parser.y"
10542     { terminator_warning (TERM_START); ;}
10543     break;
10544 
10545   case 1093:
10546 #line 5571 "parser.y"
10547     { terminator_clear (TERM_START); ;}
10548     break;
10549 
10550   case 1094:
10551 #line 5580 "parser.y"
10552     { BEGIN_STATEMENT ("STOP", 0); ;}
10553     break;
10554 
10555   case 1095:
10556 #line 5582 "parser.y"
10557     {
10558         cb_emit_stop_run (yyvsp[0]);
10559   ;}
10560     break;
10561 
10562   case 1096:
10563 #line 5586 "parser.y"
10564     {
10565         cb_verify (cb_stop_literal_statement, "STOP literal");
10566   ;}
10567     break;
10568 
10569   case 1097:
10570 #line 5592 "parser.y"
10571     { yyval = current_program->cb_return_code; ;}
10572     break;
10573 
10574   case 1098:
10575 #line 5593 "parser.y"
10576     { yyval = yyvsp[0]; ;}
10577     break;
10578 
10579   case 1099:
10580 #line 5594 "parser.y"
10581     { yyval = yyvsp[0]; ;}
10582     break;
10583 
10584   case 1100:
10585 #line 5603 "parser.y"
10586     { BEGIN_STATEMENT ("STRING", TERM_STRING); ;}
10587     break;
10588 
10589   case 1101:
10590 #line 5606 "parser.y"
10591     {
10592         cb_emit_string (yyvsp[-5], yyvsp[-3], yyvsp[-2]);
10593   ;}
10594     break;
10595 
10596   case 1102:
10597 #line 5612 "parser.y"
10598     { yyval = cb_list_init (yyvsp[0]); ;}
10599     break;
10600 
10601   case 1103:
10602 #line 5613 "parser.y"
10603     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
10604     break;
10605 
10606   case 1104:
10607 #line 5617 "parser.y"
10608     { yyval = yyvsp[0]; ;}
10609     break;
10610 
10611   case 1105:
10612 #line 5618 "parser.y"
10613     { yyval = cb_build_pair (cb_int0, NULL); ;}
10614     break;
10615 
10616   case 1106:
10617 #line 5619 "parser.y"
10618     { yyval = cb_build_pair (yyvsp[0], NULL); ;}
10619     break;
10620 
10621   case 1107:
10622 #line 5623 "parser.y"
10623     { yyval = cb_int0; ;}
10624     break;
10625 
10626   case 1108:
10627 #line 5624 "parser.y"
10628     { yyval = yyvsp[0]; ;}
10629     break;
10630 
10631   case 1109:
10632 #line 5628 "parser.y"
10633     { terminator_warning (TERM_STRING); ;}
10634     break;
10635 
10636   case 1110:
10637 #line 5629 "parser.y"
10638     { terminator_clear (TERM_STRING); ;}
10639     break;
10640 
10641   case 1111:
10642 #line 5638 "parser.y"
10643     { BEGIN_STATEMENT ("SUBTRACT", TERM_SUBTRACT); ;}
10644     break;
10645 
10646   case 1113:
10647 #line 5645 "parser.y"
10648     {
10649         cb_emit_arithmetic (yyvsp[-1], '-', cb_build_binary_list (yyvsp[-3], '+'));
10650   ;}
10651     break;
10652 
10653   case 1114:
10654 #line 5649 "parser.y"
10655     {
10656         cb_emit_arithmetic (yyvsp[-1], 0, cb_build_binary_list (cb_cons (yyvsp[-3], yyvsp[-5]), '-'));
10657   ;}
10658     break;
10659 
10660   case 1115:
10661 #line 5653 "parser.y"
10662     {
10663         cb_emit_corresponding (cb_build_sub, yyvsp[-2], yyvsp[-4], yyvsp[-1]);
10664   ;}
10665     break;
10666 
10667   case 1116:
10668 #line 5659 "parser.y"
10669     { terminator_warning (TERM_SUBTRACT); ;}
10670     break;
10671 
10672   case 1117:
10673 #line 5660 "parser.y"
10674     { terminator_clear (TERM_SUBTRACT); ;}
10675     break;
10676 
10677   case 1118:
10678 #line 5670 "parser.y"
10679     {
10680         BEGIN_STATEMENT ("SUPPRESS", 0);
10681         PENDING("SUPPRESS");
10682   ;}
10683     break;
10684 
10685   case 1121:
10686 #line 5685 "parser.y"
10687     { BEGIN_STATEMENT ("TERMINATE", 0); ;}
10688     break;
10689 
10690   case 1122:
10691 #line 5687 "parser.y"
10692     {
10693         PENDING("TERMINATE");
10694   ;}
10695     break;
10696 
10697   case 1123:
10698 #line 5698 "parser.y"
10699     { BEGIN_STATEMENT ("TRANSFORM", 0); ;}
10700     break;
10701 
10702   case 1124:
10703 #line 5700 "parser.y"
10704     {
10705         cb_tree         x;
10706 
10707         x = cb_build_converting (yyvsp[-2], yyvsp[0], cb_build_inspect_region_start ());
10708         cb_emit_inspect (yyvsp[-4], x, cb_int0, 2);
10709   ;}
10710     break;
10711 
10712   case 1125:
10713 #line 5714 "parser.y"
10714     { BEGIN_STATEMENT ("UNLOCK", 0); ;}
10715     break;
10716 
10717   case 1126:
10718 #line 5716 "parser.y"
10719     {
10720         if (yyvsp[-1] != cb_error_node) {
10721                 cb_emit_unlock (yyvsp[-1]);
10722         }
10723   ;}
10724     break;
10725 
10726   case 1130:
10727 #line 5735 "parser.y"
10728     { BEGIN_STATEMENT ("UNSTRING", TERM_UNSTRING); ;}
10729     break;
10730 
10731   case 1131:
10732 #line 5739 "parser.y"
10733     {
10734         cb_emit_unstring (yyvsp[-6], yyvsp[-5], yyvsp[-4], yyvsp[-3], yyvsp[-2]);
10735   ;}
10736     break;
10737 
10738   case 1132:
10739 #line 5745 "parser.y"
10740     { yyval = NULL; ;}
10741     break;
10742 
10743   case 1133:
10744 #line 5747 "parser.y"
10745     { yyval = yyvsp[0]; ;}
10746     break;
10747 
10748   case 1134:
10749 #line 5751 "parser.y"
10750     { yyval = cb_list_init (yyvsp[0]); ;}
10751     break;
10752 
10753   case 1135:
10754 #line 5753 "parser.y"
10755     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
10756     break;
10757 
10758   case 1136:
10759 #line 5758 "parser.y"
10760     {
10761         yyval = cb_build_unstring_delimited (yyvsp[-1], yyvsp[0]);
10762   ;}
10763     break;
10764 
10765   case 1137:
10766 #line 5764 "parser.y"
10767     { yyval = cb_list_init (yyvsp[0]); ;}
10768     break;
10769 
10770   case 1138:
10771 #line 5766 "parser.y"
10772     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
10773     break;
10774 
10775   case 1139:
10776 #line 5771 "parser.y"
10777     {
10778         yyval = cb_build_unstring_into (yyvsp[-2], yyvsp[-1], yyvsp[0]);
10779   ;}
10780     break;
10781 
10782   case 1140:
10783 #line 5777 "parser.y"
10784     { yyval = NULL; ;}
10785     break;
10786 
10787   case 1141:
10788 #line 5778 "parser.y"
10789     { yyval = yyvsp[0]; ;}
10790     break;
10791 
10792   case 1142:
10793 #line 5782 "parser.y"
10794     { yyval = NULL; ;}
10795     break;
10796 
10797   case 1143:
10798 #line 5783 "parser.y"
10799     { yyval = yyvsp[0]; ;}
10800     break;
10801 
10802   case 1144:
10803 #line 5787 "parser.y"
10804     { yyval = NULL; ;}
10805     break;
10806 
10807   case 1145:
10808 #line 5788 "parser.y"
10809     { yyval = yyvsp[0]; ;}
10810     break;
10811 
10812   case 1146:
10813 #line 5792 "parser.y"
10814     { terminator_warning (TERM_UNSTRING); ;}
10815     break;
10816 
10817   case 1147:
10818 #line 5793 "parser.y"
10819     { terminator_clear (TERM_UNSTRING); ;}
10820     break;
10821 
10822   case 1151:
10823 #line 5811 "parser.y"
10824     {
10825         if (!in_declaratives) {
10826                 cb_error (_("USE statement must be within DECLARATIVES"));
10827         } else if (!current_section) {
10828                 cb_error (_("SECTION header missing before USE statement"));
10829         } else {
10830                 current_section->need_begin = 1;
10831                 current_section->need_return = 1;
10832                 CB_EXCEPTION_ENABLE (COB_EC_I_O) = 1;
10833                 if (use_global_ind) {
10834                         current_section->is_global = 1;
10835                         current_program->global_list =
10836                                 cb_list_add (current_program->global_list,
10837                                              CB_TREE (current_section));
10838                 }
10839         }
10840   ;}
10841     break;
10842 
10843   case 1152:
10844 #line 5832 "parser.y"
10845     {
10846         use_global_ind = 0;
10847   ;}
10848     break;
10849 
10850   case 1153:
10851 #line 5836 "parser.y"
10852     {
10853         use_global_ind = 1;
10854         current_program->flag_global_use = 1;
10855   ;}
10856     break;
10857 
10858   case 1154:
10859 #line 5844 "parser.y"
10860     {
10861         cb_tree         l;
10862 
10863         for (l = yyvsp[0]; l; l = CB_CHAIN (l)) {
10864                 if (CB_VALUE (l) != cb_error_node) {
10865                         setup_use_file (CB_FILE (cb_ref (CB_VALUE (l))));
10866                 }
10867         }
10868   ;}
10869     break;
10870 
10871   case 1155:
10872 #line 5854 "parser.y"
10873     {
10874         current_program->global_handler[COB_OPEN_INPUT].handler_label = current_section;
10875         current_program->global_handler[COB_OPEN_INPUT].handler_prog = current_program;
10876   ;}
10877     break;
10878 
10879   case 1156:
10880 #line 5859 "parser.y"
10881     {
10882         current_program->global_handler[COB_OPEN_OUTPUT].handler_label = current_section;
10883         current_program->global_handler[COB_OPEN_OUTPUT].handler_prog = current_program;
10884   ;}
10885     break;
10886 
10887   case 1157:
10888 #line 5864 "parser.y"
10889     {
10890         current_program->global_handler[COB_OPEN_I_O].handler_label = current_section;
10891         current_program->global_handler[COB_OPEN_I_O].handler_prog = current_program;
10892   ;}
10893     break;
10894 
10895   case 1158:
10896 #line 5869 "parser.y"
10897     {
10898         current_program->global_handler[COB_OPEN_EXTEND].handler_label = current_section;
10899         current_program->global_handler[COB_OPEN_EXTEND].handler_prog = current_program;
10900   ;}
10901     break;
10902 
10903   case 1171:
10904 #line 5901 "parser.y"
10905     {
10906         PENDING ("USE FOR DEBUGGING");
10907   ;}
10908     break;
10909 
10910   case 1174:
10911 #line 5913 "parser.y"
10912     {
10913         PENDING ("USE BEFORE REPORTING");
10914   ;}
10915     break;
10916 
10917   case 1175:
10918 #line 5924 "parser.y"
10919     { BEGIN_STATEMENT ("WRITE", TERM_WRITE); ;}
10920     break;
10921 
10922   case 1176:
10923 #line 5927 "parser.y"
10924     {
10925         if (yyvsp[-5] != cb_error_node) {
10926                 cb_emit_write (yyvsp[-5], yyvsp[-4], yyvsp[-2], yyvsp[-3]);
10927         }
10928   ;}
10929     break;
10930 
10931   case 1177:
10932 #line 5935 "parser.y"
10933     { yyval = NULL; ;}
10934     break;
10935 
10936   case 1178:
10937 #line 5936 "parser.y"
10938     { yyval = yyvsp[0]; ;}
10939     break;
10940 
10941   case 1179:
10942 #line 5941 "parser.y"
10943     {
10944         yyval = cb_int0;
10945   ;}
10946     break;
10947 
10948   case 1180:
10949 #line 5945 "parser.y"
10950     {
10951         yyval = cb_build_write_advancing_lines (yyvsp[-3], yyvsp[-1]);
10952   ;}
10953     break;
10954 
10955   case 1181:
10956 #line 5949 "parser.y"
10957     {
10958         yyval = cb_build_write_advancing_mnemonic (yyvsp[-2], yyvsp[0]);
10959   ;}
10960     break;
10961 
10962   case 1182:
10963 #line 5953 "parser.y"
10964     {
10965         yyval = cb_build_write_advancing_page (yyvsp[-2]);
10966   ;}
10967     break;
10968 
10969   case 1183:
10970 #line 5959 "parser.y"
10971     { yyval = CB_BEFORE; ;}
10972     break;
10973 
10974   case 1184:
10975 #line 5960 "parser.y"
10976     { yyval = CB_AFTER; ;}
10977     break;
10978 
10979   case 1188:
10980 #line 5969 "parser.y"
10981     { terminator_warning (TERM_WRITE); ;}
10982     break;
10983 
10984   case 1189:
10985 #line 5970 "parser.y"
10986     { terminator_clear (TERM_WRITE); ;}
10987     break;
10988 
10989   case 1190:
10990 #line 5985 "parser.y"
10991     {
10992         current_statement->handler_id = COB_EC_IMP_ACCEPT;
10993   ;}
10994     break;
10995 
10996   case 1191:
10997 #line 5993 "parser.y"
10998     {
10999         current_statement->handler_id = COB_EC_IMP_DISPLAY;
11000   ;}
11001     break;
11002 
11003   case 1193:
11004 #line 6000 "parser.y"
11005     {
11006         check_unreached = 0;
11007   ;}
11008     break;
11009 
11010   case 1194:
11011 #line 6004 "parser.y"
11012     {
11013         current_statement->handler1 = yyvsp[0];
11014   ;}
11015     break;
11016 
11017   case 1196:
11018 #line 6011 "parser.y"
11019     {
11020         check_unreached = 0;
11021   ;}
11022     break;
11023 
11024   case 1197:
11025 #line 6015 "parser.y"
11026     {
11027         current_statement->handler2 = yyvsp[0];
11028   ;}
11029     break;
11030 
11031   case 1198:
11032 #line 6027 "parser.y"
11033     {
11034         current_statement->handler_id = COB_EC_SIZE;
11035   ;}
11036     break;
11037 
11038   case 1200:
11039 #line 6034 "parser.y"
11040     {
11041         check_unreached = 0;
11042   ;}
11043     break;
11044 
11045   case 1201:
11046 #line 6038 "parser.y"
11047     {
11048         current_statement->handler1 = yyvsp[0];
11049   ;}
11050     break;
11051 
11052   case 1203:
11053 #line 6045 "parser.y"
11054     {
11055         check_unreached = 0;
11056   ;}
11057     break;
11058 
11059   case 1204:
11060 #line 6049 "parser.y"
11061     {
11062         current_statement->handler2 = yyvsp[0];
11063   ;}
11064     break;
11065 
11066   case 1205:
11067 #line 6061 "parser.y"
11068     {
11069         current_statement->handler_id = COB_EC_OVERFLOW;
11070   ;}
11071     break;
11072 
11073   case 1207:
11074 #line 6068 "parser.y"
11075     {
11076         check_unreached = 0;
11077   ;}
11078     break;
11079 
11080   case 1208:
11081 #line 6072 "parser.y"
11082     {
11083         current_statement->handler1 = yyvsp[0];
11084   ;}
11085     break;
11086 
11087   case 1210:
11088 #line 6079 "parser.y"
11089     {
11090         check_unreached = 0;
11091   ;}
11092     break;
11093 
11094   case 1211:
11095 #line 6083 "parser.y"
11096     {
11097         current_statement->handler2 = yyvsp[0];
11098   ;}
11099     break;
11100 
11101   case 1212:
11102 #line 6095 "parser.y"
11103     {
11104         current_statement->handler_id = COB_EC_I_O_AT_END;
11105         current_statement->handler1 = yyvsp[0];
11106   ;}
11107     break;
11108 
11109   case 1213:
11110 #line 6100 "parser.y"
11111     {
11112         current_statement->handler_id = COB_EC_I_O_AT_END;
11113         current_statement->handler2 = yyvsp[0];
11114   ;}
11115     break;
11116 
11117   case 1214:
11118 #line 6105 "parser.y"
11119     {
11120         current_statement->handler_id = COB_EC_I_O_AT_END;
11121         current_statement->handler1 = yyvsp[-1];
11122         current_statement->handler2 = yyvsp[0];
11123   ;}
11124     break;
11125 
11126   case 1215:
11127 #line 6114 "parser.y"
11128     {
11129         check_unreached = 0;
11130   ;}
11131     break;
11132 
11133   case 1216:
11134 #line 6118 "parser.y"
11135     {
11136         yyval = yyvsp[0];
11137   ;}
11138     break;
11139 
11140   case 1217:
11141 #line 6125 "parser.y"
11142     {
11143         check_unreached = 0;
11144   ;}
11145     break;
11146 
11147   case 1218:
11148 #line 6129 "parser.y"
11149     {
11150         yyval = yyvsp[0];
11151   ;}
11152     break;
11153 
11154   case 1219:
11155 #line 6141 "parser.y"
11156     {
11157         current_statement->handler_id = COB_EC_I_O_EOP;
11158         current_statement->handler1 = yyvsp[0];
11159   ;}
11160     break;
11161 
11162   case 1220:
11163 #line 6146 "parser.y"
11164     {
11165         current_statement->handler_id = COB_EC_I_O_EOP;
11166         current_statement->handler2 = yyvsp[0];
11167   ;}
11168     break;
11169 
11170   case 1221:
11171 #line 6151 "parser.y"
11172     {
11173         current_statement->handler_id = COB_EC_I_O_EOP;
11174         current_statement->handler1 = yyvsp[-1];
11175         current_statement->handler2 = yyvsp[0];
11176   ;}
11177     break;
11178 
11179   case 1222:
11180 #line 6160 "parser.y"
11181     {
11182         check_unreached = 0;
11183   ;}
11184     break;
11185 
11186   case 1223:
11187 #line 6164 "parser.y"
11188     {
11189         yyval = yyvsp[0];
11190   ;}
11191     break;
11192 
11193   case 1224:
11194 #line 6171 "parser.y"
11195     {
11196         check_unreached = 0;
11197   ;}
11198     break;
11199 
11200   case 1225:
11201 #line 6175 "parser.y"
11202     {
11203         yyval = yyvsp[0];
11204   ;}
11205     break;
11206 
11207   case 1228:
11208 #line 6191 "parser.y"
11209     {
11210         current_statement->handler_id = COB_EC_I_O_INVALID_KEY;
11211         current_statement->handler1 = yyvsp[0];
11212   ;}
11213     break;
11214 
11215   case 1229:
11216 #line 6196 "parser.y"
11217     {
11218         current_statement->handler_id = COB_EC_I_O_INVALID_KEY;
11219         current_statement->handler2 = yyvsp[0];
11220   ;}
11221     break;
11222 
11223   case 1230:
11224 #line 6201 "parser.y"
11225     {
11226         current_statement->handler_id = COB_EC_I_O_INVALID_KEY;
11227         current_statement->handler1 = yyvsp[-1];
11228         current_statement->handler2 = yyvsp[0];
11229   ;}
11230     break;
11231 
11232   case 1231:
11233 #line 6210 "parser.y"
11234     {
11235         check_unreached = 0;
11236   ;}
11237     break;
11238 
11239   case 1232:
11240 #line 6214 "parser.y"
11241     {
11242         yyval = yyvsp[0];
11243   ;}
11244     break;
11245 
11246   case 1233:
11247 #line 6221 "parser.y"
11248     {
11249         check_unreached = 0;
11250   ;}
11251     break;
11252 
11253   case 1234:
11254 #line 6225 "parser.y"
11255     {
11256         yyval = yyvsp[0];
11257   ;}
11258     break;
11259 
11260   case 1235:
11261 #line 6237 "parser.y"
11262     {
11263         yyval = cb_one;
11264   ;}
11265     break;
11266 
11267   case 1236:
11268 #line 6241 "parser.y"
11269     {
11270         yyval = yyvsp[-1];
11271   ;}
11272     break;
11273 
11274   case 1237:
11275 #line 6253 "parser.y"
11276     {
11277         yyval = cb_build_cond (yyvsp[0]);
11278   ;}
11279     break;
11280 
11281   case 1238:
11282 #line 6260 "parser.y"
11283     {
11284         yyval = cb_build_expr (yyvsp[0]);
11285   ;}
11286     break;
11287 
11288   case 1239:
11289 #line 6266 "parser.y"
11290     {
11291         current_expr = NULL;
11292   ;}
11293     break;
11294 
11295   case 1240:
11296 #line 6270 "parser.y"
11297     {
11298         yyval = cb_list_reverse (current_expr);
11299   ;}
11300     break;
11301 
11302   case 1244:
11303 #line 6282 "parser.y"
11304     { push_expr ('x', yyvsp[0]); ;}
11305     break;
11306 
11307   case 1245:
11308 #line 6284 "parser.y"
11309     { push_expr ('(', NULL); ;}
11310     break;
11311 
11312   case 1246:
11313 #line 6285 "parser.y"
11314     { push_expr (')', NULL); ;}
11315     break;
11316 
11317   case 1247:
11318 #line 6287 "parser.y"
11319     { push_expr ('+', NULL); ;}
11320     break;
11321 
11322   case 1248:
11323 #line 6288 "parser.y"
11324     { push_expr ('-', NULL); ;}
11325     break;
11326 
11327   case 1249:
11328 #line 6289 "parser.y"
11329     { push_expr ('*', NULL); ;}
11330     break;
11331 
11332   case 1250:
11333 #line 6290 "parser.y"
11334     { push_expr ('/', NULL); ;}
11335     break;
11336 
11337   case 1251:
11338 #line 6291 "parser.y"
11339     { push_expr ('^', NULL); ;}
11340     break;
11341 
11342   case 1252:
11343 #line 6293 "parser.y"
11344     { push_expr ('=', NULL); ;}
11345     break;
11346 
11347   case 1253:
11348 #line 6294 "parser.y"
11349     { push_expr ('>', NULL); ;}
11350     break;
11351 
11352   case 1254:
11353 #line 6295 "parser.y"
11354     { push_expr ('<', NULL); ;}
11355     break;
11356 
11357   case 1255:
11358 #line 6296 "parser.y"
11359     { push_expr (']', NULL); ;}
11360     break;
11361 
11362   case 1256:
11363 #line 6297 "parser.y"
11364     { push_expr ('[', NULL); ;}
11365     break;
11366 
11367   case 1257:
11368 #line 6298 "parser.y"
11369     { push_expr ('~', NULL); ;}
11370     break;
11371 
11372   case 1258:
11373 #line 6300 "parser.y"
11374     { push_expr ('!', NULL); ;}
11375     break;
11376 
11377   case 1259:
11378 #line 6301 "parser.y"
11379     { push_expr ('&', NULL); ;}
11380     break;
11381 
11382   case 1260:
11383 #line 6302 "parser.y"
11384     { push_expr ('|', NULL); ;}
11385     break;
11386 
11387   case 1261:
11388 #line 6304 "parser.y"
11389     { push_expr ('O', NULL); ;}
11390     break;
11391 
11392   case 1262:
11393 #line 6305 "parser.y"
11394     { push_expr ('9', NULL); ;}
11395     break;
11396 
11397   case 1263:
11398 #line 6306 "parser.y"
11399     { push_expr ('A', NULL); ;}
11400     break;
11401 
11402   case 1264:
11403 #line 6307 "parser.y"
11404     { push_expr ('L', NULL); ;}
11405     break;
11406 
11407   case 1265:
11408 #line 6308 "parser.y"
11409     { push_expr ('U', NULL); ;}
11410     break;
11411 
11412   case 1266:
11413 #line 6311 "parser.y"
11414     { push_expr ('P', NULL); ;}
11415     break;
11416 
11417   case 1267:
11418 #line 6312 "parser.y"
11419     { push_expr ('N', NULL); ;}
11420     break;
11421 
11422   case 1279:
11423 #line 6324 "parser.y"
11424     { yyval = cb_list_init (yyvsp[0]); ;}
11425     break;
11426 
11427   case 1280:
11428 #line 6325 "parser.y"
11429     { yyval = cb_list_add (yyvsp[-2], yyvsp[0]); ;}
11430     break;
11431 
11432   case 1284:
11433 #line 6334 "parser.y"
11434     { yyval = yyvsp[0]; ;}
11435     break;
11436 
11437   case 1285:
11438 #line 6335 "parser.y"
11439     { yyval = cb_build_binary_op (yyvsp[-2], '+', yyvsp[0]); ;}
11440     break;
11441 
11442   case 1286:
11443 #line 6336 "parser.y"
11444     { yyval = cb_build_binary_op (yyvsp[-2], '-', yyvsp[0]); ;}
11445     break;
11446 
11447   case 1287:
11448 #line 6337 "parser.y"
11449     { yyval = cb_build_binary_op (yyvsp[-2], '*', yyvsp[0]); ;}
11450     break;
11451 
11452   case 1288:
11453 #line 6338 "parser.y"
11454     { yyval = cb_build_binary_op (yyvsp[-2], '/', yyvsp[0]); ;}
11455     break;
11456 
11457   case 1289:
11458 #line 6339 "parser.y"
11459     { yyval = yyvsp[0]; ;}
11460     break;
11461 
11462   case 1290:
11463 #line 6340 "parser.y"
11464     { yyval = cb_build_binary_op (cb_zero, '-', yyvsp[0]); ;}
11465     break;
11466 
11467   case 1291:
11468 #line 6341 "parser.y"
11469     { yyval = cb_build_binary_op (yyvsp[-2], '^', yyvsp[0]); ;}
11470     break;
11471 
11472   case 1292:
11473 #line 6342 "parser.y"
11474     { yyval = yyvsp[-1]; ;}
11475     break;
11476 
11477   case 1293:
11478 #line 6354 "parser.y"
11479     {
11480         if (current_linage > 1) {
11481                 cb_error (_("LINAGE-COUNTER must be qualified here"));
11482                 yyval = cb_error_node;
11483         } else if (current_linage == 0) {
11484                 cb_error (_("Invalid LINAGE-COUNTER usage"));
11485                 yyval = cb_error_node;
11486         } else {
11487                 yyval = linage_file->linage_ctr;
11488         }
11489   ;}
11490     break;
11491 
11492   case 1294:
11493 #line 6366 "parser.y"
11494     {
11495         if (CB_FILE_P (cb_ref (yyvsp[0]))) {
11496                 yyval = CB_FILE (cb_ref (yyvsp[0]))->linage_ctr;
11497         } else {
11498                 cb_error_x (yyvsp[0], _("'%s' is not a file name"), CB_NAME (yyvsp[0]));
11499                 yyval = cb_error_node;
11500         }
11501   ;}
11502     break;
11503 
11504   case 1295:
11505 #line 6380 "parser.y"
11506     { yyval = yyvsp[0]; ;}
11507     break;
11508 
11509   case 1296:
11510 #line 6382 "parser.y"
11511     { yyval = cb_list_append (yyvsp[-1], yyvsp[0]); ;}
11512     break;
11513 
11514   case 1297:
11515 #line 6386 "parser.y"
11516     { yyval = cb_build_pair (yyvsp[0], yyvsp[-1]); ;}
11517     break;
11518 
11519   case 1298:
11520 #line 6392 "parser.y"
11521     { cb_build_identifier (yyvsp[0]); ;}
11522     break;
11523 
11524   case 1299:
11525 #line 6399 "parser.y"
11526     {
11527         cb_tree x;
11528 
11529         x = cb_ref (yyvsp[0]);
11530         if (!CB_FIELD_P (x)) {
11531                 yyval = cb_error_node;
11532         } else if (!CB_FIELD (x)->index_list) {
11533                 cb_error_x (yyvsp[0], _("'%s' not indexed"), cb_name (yyvsp[0]));
11534                 cb_error_x (x, _("'%s' defined here"), cb_name (x));
11535                 yyval = cb_error_node;
11536         } else {
11537                 yyval = yyvsp[0];
11538         }
11539   ;}
11540     break;
11541 
11542   case 1300:
11543 #line 6419 "parser.y"
11544     {
11545         yyval = cb_list_init (yyvsp[0]);
11546   ;}
11547     break;
11548 
11549   case 1301:
11550 #line 6423 "parser.y"
11551     {
11552         cb_tree         l;
11553 
11554         if (yyvsp[0] != cb_error_node) {
11555                 for (l = yyvsp[-1]; l; l = CB_CHAIN (l)) {
11556                         if (!strcasecmp (CB_NAME (yyvsp[0]), CB_NAME (CB_VALUE (l)))) {
11557                                 cb_error_x (yyvsp[0], _("Multiple reference to '%s' "), CB_NAME (yyvsp[0]));
11558                         }
11559                 }
11560                 yyval = cb_list_add (yyvsp[-1], yyvsp[0]);
11561         }
11562   ;}
11563     break;
11564 
11565   case 1302:
11566 #line 6439 "parser.y"
11567     {
11568         if (CB_FILE_P (cb_ref (yyvsp[0]))) {
11569                 yyval = yyvsp[0];
11570         } else {
11571                 cb_error_x (yyvsp[0], _("'%s' is not a file name"), CB_NAME (yyvsp[0]));
11572                 yyval = cb_error_node;
11573         }
11574   ;}
11575     break;
11576 
11577   case 1303:
11578 #line 6452 "parser.y"
11579     { yyval = cb_list_init (yyvsp[0]); ;}
11580     break;
11581 
11582   case 1304:
11583 #line 6454 "parser.y"
11584     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
11585     break;
11586 
11587   case 1305:
11588 #line 6458 "parser.y"
11589     { yyval = yyvsp[0]; ;}
11590     break;
11591 
11592   case 1306:
11593 #line 6464 "parser.y"
11594     { yyval = NULL; ;}
11595     break;
11596 
11597   case 1307:
11598 #line 6466 "parser.y"
11599     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
11600     break;
11601 
11602   case 1308:
11603 #line 6471 "parser.y"
11604     {
11605         yyval = yyvsp[0];
11606         CB_REFERENCE (yyval)->offset = CB_TREE (current_section);
11607         current_program->label_list = cb_cons (yyval, current_program->label_list);
11608   ;}
11609     break;
11610 
11611   case 1312:
11612 #line 6486 "parser.y"
11613     {
11614         yyval = cb_build_reference ((char *)(CB_LITERAL (yyvsp[0])->data));
11615         yyval->source_file = yyvsp[0]->source_file;
11616         yyval->source_line = yyvsp[0]->source_line;
11617   ;}
11618     break;
11619 
11620   case 1313:
11621 #line 6496 "parser.y"
11622     { yyval = cb_list_init (yyvsp[0]); ;}
11623     break;
11624 
11625   case 1314:
11626 #line 6497 "parser.y"
11627     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
11628     break;
11629 
11630   case 1315:
11631 #line 6502 "parser.y"
11632     {
11633         yyval = yyvsp[0];
11634         current_program->reference_list = cb_cons (yyval, current_program->reference_list);
11635   ;}
11636     break;
11637 
11638   case 1316:
11639 #line 6509 "parser.y"
11640     { yyval = NULL; ;}
11641     break;
11642 
11643   case 1317:
11644 #line 6510 "parser.y"
11645     { yyval = yyvsp[0]; ;}
11646     break;
11647 
11648   case 1320:
11649 #line 6522 "parser.y"
11650     {
11651         yyval = yyvsp[0];
11652         if (CB_REFERENCE (yyval)->word->count > 0) {
11653                 redefinition_error (yyval);
11654                 yyval = cb_error_node;
11655         }
11656   ;}
11657     break;
11658 
11659   case 1321:
11660 #line 6541 "parser.y"
11661     { yyval = cb_list_init (yyvsp[0]); ;}
11662     break;
11663 
11664   case 1322:
11665 #line 6542 "parser.y"
11666     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
11667     break;
11668 
11669   case 1324:
11670 #line 6547 "parser.y"
11671     { yyval = cb_build_address (yyvsp[0]); ;}
11672     break;
11673 
11674   case 1325:
11675 #line 6551 "parser.y"
11676     { yyval = cb_list_init (yyvsp[0]); ;}
11677     break;
11678 
11679   case 1326:
11680 #line 6552 "parser.y"
11681     { yyval = cb_list_add (yyvsp[-1], yyvsp[0]); ;}
11682     break;
11683 
11684   case 1328:
11685 #line 6557 "parser.y"
11686     { yyval = cb_build_length (yyvsp[0]); ;}
11687     break;
11688 
11689   case 1329:
11690 #line 6558 "parser.y"
11691     { yyval = cb_build_length (yyvsp[0]); ;}
11692     break;
11693 
11694   case 1330:
11695 #line 6559 "parser.y"
11696     { yyval = cb_build_length (yyvsp[0]); ;}
11697     break;
11698 
11699   case 1331:
11700 #line 6560 "parser.y"
11701     { yyval = cb_build_ppointer (yyvsp[0]); ;}
11702     break;
11703 
11704   case 1332:
11705 #line 6561 "parser.y"
11706     { yyval = cb_build_address (yyvsp[0]); ;}
11707     break;
11708 
11709   case 1337:
11710 #line 6569 "parser.y"
11711     { yyval = cb_build_length (yyvsp[0]); ;}
11712     break;
11713 
11714   case 1338:
11715 #line 6570 "parser.y"
11716     { yyval = cb_build_length (yyvsp[0]); ;}
11717     break;
11718 
11719   case 1339:
11720 #line 6571 "parser.y"
11721     { yyval = cb_build_length (yyvsp[0]); ;}
11722     break;
11723 
11724   case 1345:
11725 #line 6583 "parser.y"
11726     { yyval = yyvsp[0]; ;}
11727     break;
11728 
11729   case 1346:
11730 #line 6584 "parser.y"
11731     { yyval = yyvsp[0]; ;}
11732     break;
11733 
11734   case 1358:
11735 #line 6618 "parser.y"
11736     { yyval = cb_zero; ;}
11737     break;
11738 
11739   case 1359:
11740 #line 6626 "parser.y"
11741     { yyval = cb_build_identifier (yyvsp[0]); ;}
11742     break;
11743 
11744   case 1360:
11745 #line 6630 "parser.y"
11746     { yyval = yyvsp[0]; ;}
11747     break;
11748 
11749   case 1361:
11750 #line 6631 "parser.y"
11751     { yyval = yyvsp[-1]; ;}
11752     break;
11753 
11754   case 1362:
11755 #line 6632 "parser.y"
11756     { yyval = yyvsp[-1]; ;}
11757     break;
11758 
11759   case 1363:
11760 #line 6633 "parser.y"
11761     { yyval = yyvsp[-2]; ;}
11762     break;
11763 
11764   case 1364:
11765 #line 6637 "parser.y"
11766     { yyval = yyvsp[0]; ;}
11767     break;
11768 
11769   case 1365:
11770 #line 6638 "parser.y"
11771     { yyval = yyvsp[-2]; CB_REFERENCE (yyvsp[-2])->chain = yyvsp[0]; ;}
11772     break;
11773 
11774   case 1366:
11775 #line 6643 "parser.y"
11776     {
11777         yyval = yyvsp[-3];
11778         CB_REFERENCE (yyvsp[-3])->subs = cb_list_reverse (yyvsp[-1]);
11779   ;}
11780     break;
11781 
11782   case 1367:
11783 #line 6651 "parser.y"
11784     {
11785         CB_REFERENCE (yyvsp[-4])->offset = yyvsp[-2];
11786   ;}
11787     break;
11788 
11789   case 1368:
11790 #line 6655 "parser.y"
11791     {
11792         CB_REFERENCE (yyvsp[-5])->offset = yyvsp[-3];
11793         CB_REFERENCE (yyvsp[-5])->length = yyvsp[-1];
11794   ;}
11795     break;
11796 
11797   case 1369:
11798 #line 6667 "parser.y"
11799     {
11800         if (cb_tree_category (yyvsp[0]) != CB_CATEGORY_NUMERIC) {
11801                 cb_error (_("Integer value expected"));
11802         } else if (CB_LITERAL (yyvsp[0])->sign < 0 || CB_LITERAL (yyvsp[0])->scale) {
11803                 cb_error (_("Integer value expected"));
11804         }
11805         yyval = yyvsp[0];
11806   ;}
11807     break;
11808 
11809   case 1370:
11810 #line 6678 "parser.y"
11811     { yyval = yyvsp[0]; ;}
11812     break;
11813 
11814   case 1371:
11815 #line 6680 "parser.y"
11816     {
11817         yyval = yyvsp[0];
11818         if (CB_LITERAL_P (yyvsp[0])) {
11819                 CB_LITERAL (yyvsp[0])->all = 1;
11820         }
11821   ;}
11822     break;
11823 
11824   case 1372:
11825 #line 6689 "parser.y"
11826     { yyval = yyvsp[0]; ;}
11827     break;
11828 
11829   case 1373:
11830 #line 6690 "parser.y"
11831     { yyval = cb_concat_literals (yyvsp[-2], yyvsp[0]); ;}
11832     break;
11833 
11834   case 1374:
11835 #line 6694 "parser.y"
11836     { yyval = yyvsp[0]; ;}
11837     break;
11838 
11839   case 1375:
11840 #line 6695 "parser.y"
11841     { yyval = cb_space; ;}
11842     break;
11843 
11844   case 1376:
11845 #line 6696 "parser.y"
11846     { yyval = cb_zero; ;}
11847     break;
11848 
11849   case 1377:
11850 #line 6697 "parser.y"
11851     { yyval = cb_quote; ;}
11852     break;
11853 
11854   case 1378:
11855 #line 6698 "parser.y"
11856     { yyval = cb_high; ;}
11857     break;
11858 
11859   case 1379:
11860 #line 6699 "parser.y"
11861     { yyval = cb_low; ;}
11862     break;
11863 
11864   case 1380:
11865 #line 6700 "parser.y"
11866     { yyval = cb_null; ;}
11867     break;
11868 
11869   case 1381:
11870 #line 6709 "parser.y"
11871     {
11872         yyval = cb_build_intrinsic (yyvsp[-1], NULL, yyvsp[0]);
11873   ;}
11874     break;
11875 
11876   case 1382:
11877 #line 6713 "parser.y"
11878     {
11879         yyval = cb_build_intrinsic (yyvsp[-1], NULL, yyvsp[0]);
11880   ;}
11881     break;
11882 
11883   case 1383:
11884 #line 6717 "parser.y"
11885     {
11886         yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]);
11887   ;}
11888     break;
11889 
11890   case 1384:
11891 #line 6721 "parser.y"
11892     {
11893         yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]);
11894   ;}
11895     break;
11896 
11897   case 1385:
11898 #line 6725 "parser.y"
11899     {
11900         yyval = cb_build_intrinsic (yyvsp[-4], cb_list_init (yyvsp[-2]), yyvsp[0]);
11901   ;}
11902     break;
11903 
11904   case 1386:
11905 #line 6729 "parser.y"
11906     {
11907         yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]);
11908   ;}
11909     break;
11910 
11911   case 1387:
11912 #line 6733 "parser.y"
11913     {
11914         yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]);
11915   ;}
11916     break;
11917 
11918   case 1388:
11919 #line 6737 "parser.y"
11920     {
11921         yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]);
11922   ;}
11923     break;
11924 
11925   case 1389:
11926 #line 6741 "parser.y"
11927     {
11928         yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]);
11929   ;}
11930     break;
11931 
11932   case 1390:
11933 #line 6745 "parser.y"
11934     {
11935         yyval = cb_build_intrinsic (yyvsp[-3], yyvsp[-1], NULL);
11936   ;}
11937     break;
11938 
11939   case 1391:
11940 #line 6749 "parser.y"
11941     {
11942         yyval = cb_build_intrinsic (yyvsp[-4], yyvsp[-2], yyvsp[0]);
11943   ;}
11944     break;
11945 
11946   case 1392:
11947 #line 6753 "parser.y"
11948     {
11949         yyval = cb_build_intrinsic (yyvsp[-1], yyvsp[0], NULL);
11950   ;}
11951     break;
11952 
11953   case 1393:
11954 #line 6759 "parser.y"
11955     { yyval = NULL; ;}
11956     break;
11957 
11958   case 1394:
11959 #line 6760 "parser.y"
11960     { yyval = cb_build_pair (yyvsp[-2], NULL); ;}
11961     break;
11962 
11963   case 1395:
11964 #line 6761 "parser.y"
11965     { yyval = cb_build_pair (yyvsp[-3], yyvsp[-1]); ;}
11966     break;
11967 
11968   case 1396:
11969 #line 6765 "parser.y"
11970     { yyval = NULL; ;}
11971     break;
11972 
11973   case 1397:
11974 #line 6766 "parser.y"
11975     { yyval = yyvsp[-1]; ;}
11976     break;
11977 
11978   case 1398:
11979 #line 6770 "parser.y"
11980     { yyval = NULL; ;}
11981     break;
11982 
11983   case 1399:
11984 #line 6771 "parser.y"
11985     { yyval = yyvsp[0]; ;}
11986     break;
11987 
11988   case 1400:
11989 #line 6777 "parser.y"
11990     {
11991         cb_tree x;
11992 
11993         x = cb_list_init (yyvsp[0]);
11994         yyval = cb_list_add (x, cb_int0);
11995   ;}
11996     break;
11997 
11998   case 1401:
11999 #line 6784 "parser.y"
12000     {
12001         cb_tree x;
12002 
12003         x = cb_list_init (yyvsp[-2]);
12004         yyval = cb_list_add (x, cb_int1);
12005   ;}
12006     break;
12007 
12008   case 1402:
12009 #line 6791 "parser.y"
12010     {
12011         cb_tree x;
12012 
12013         x = cb_list_init (yyvsp[-2]);
12014         yyval = cb_list_add (x, cb_int2);
12015   ;}
12016     break;
12017 
12018   case 1403:
12019 #line 6801 "parser.y"
12020     {
12021         cb_tree x;
12022 
12023         x = cb_list_init (yyvsp[0]);
12024         yyval = cb_list_add (x, cb_null);
12025   ;}
12026     break;
12027 
12028   case 1404:
12029 #line 6808 "parser.y"
12030     {
12031         cb_tree x;
12032 
12033         x = cb_list_init (yyvsp[-2]);
12034         yyval = cb_list_add (x, yyvsp[0]);
12035   ;}
12036     break;
12037 
12038   case 1405:
12039 #line 6818 "parser.y"
12040     {
12041         cb_tree x;
12042 
12043         x = cb_list_init (yyvsp[0]);
12044         yyval = cb_list_add (x, cb_null);
12045   ;}
12046     break;
12047 
12048   case 1406:
12049 #line 6825 "parser.y"
12050     {
12051         cb_tree x;
12052 
12053         x = cb_list_init (yyvsp[-2]);
12054         yyval = cb_list_add (x, cb_ref (yyvsp[0]));
12055   ;}
12056     break;
12057 
12058   case 1407:
12059 #line 6838 "parser.y"
12060     {
12061         non_const_word = 1;
12062   ;}
12063     break;
12064 
12065   case 1408:
12066 #line 6848 "parser.y"
12067     { yyval = cb_int0; ;}
12068     break;
12069 
12070   case 1409:
12071 #line 6849 "parser.y"
12072     { yyval = cb_int1; ;}
12073     break;
12074 
12075   case 1410:
12076 #line 6853 "parser.y"
12077     { yyval = cb_int0; ;}
12078     break;
12079 
12080   case 1411:
12081 #line 6854 "parser.y"
12082     { yyval = cb_int1; ;}
12083     break;
12084 
12085   case 1412:
12086 #line 6858 "parser.y"
12087     { yyval = NULL; ;}
12088     break;
12089 
12090   case 1413:
12091 #line 6859 "parser.y"
12092     { yyval = cb_int1; ;}
12093     break;
12094 
12095   case 1414:
12096 #line 6863 "parser.y"
12097     { yyval = cb_int0; ;}
12098     break;
12099 
12100   case 1415:
12101 #line 6864 "parser.y"
12102     { yyval = cb_int1; ;}
12103     break;
12104 
12105   case 1416:
12106 #line 6865 "parser.y"
12107     { yyval = cb_int2; ;}
12108     break;
12109 
12110   case 1417:
12111 #line 6869 "parser.y"
12112     { yyval = cb_int0; ;}
12113     break;
12114 
12115   case 1418:
12116 #line 6870 "parser.y"
12117     { yyval = cb_int1; ;}
12118     break;
12119 
12120   case 1419:
12121 #line 6874 "parser.y"
12122     { yyval = cb_int0; ;}
12123     break;
12124 
12125   case 1420:
12126 #line 6875 "parser.y"
12127     { yyval = cb_int1; ;}
12128     break;
12129 
12130   case 1421:
12131 #line 6879 "parser.y"
12132     { yyval = cb_int0; ;}
12133     break;
12134 
12135   case 1422:
12136 #line 6880 "parser.y"
12137     { yyval = cb_int1; ;}
12138     break;
12139 
12140   case 1423:
12141 #line 6884 "parser.y"
12142     { yyval = cb_int0; ;}
12143     break;
12144 
12145   case 1424:
12146 #line 6885 "parser.y"
12147     { yyval = cb_int1; ;}
12148     break;
12149 
12150 
12151     }
12152 
12153 /* Line 991 of yacc.c.  */
12154 #line 12154 "parser.c"
12155 
12156   yyvsp -= yylen;
12157   yyssp -= yylen;
12158 
12159 
12160   YY_STACK_PRINT (yyss, yyssp);
12161 
12162   *++yyvsp = yyval;
12163 
12164 
12165   /* Now `shift' the result of the reduction.  Determine what state
12166      that goes to, based on the state we popped back to and the rule
12167      number reduced by.  */
12168 
12169   yyn = yyr1[yyn];
12170 
12171   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
12172   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
12173     yystate = yytable[yystate];
12174   else
12175     yystate = yydefgoto[yyn - YYNTOKENS];
12176 
12177   goto yynewstate;
12178 
12179 
12180 /*------------------------------------.
12181 | yyerrlab -- here on detecting error |
12182 `------------------------------------*/
12183 yyerrlab:
12184   /* If not already recovering from an error, report this error.  */
12185   if (!yyerrstatus)
12186     {
12187       ++yynerrs;
12188 #if YYERROR_VERBOSE
12189       yyn = yypact[yystate];
12190 
12191       if (YYPACT_NINF < yyn && yyn < YYLAST)
12192         {
12193           YYSIZE_T yysize = 0;
12194           int yytype = YYTRANSLATE (yychar);
12195           char *yymsg;
12196           int yyx, yycount;
12197 
12198           yycount = 0;
12199           /* Start YYX at -YYN if negative to avoid negative indexes in
12200              YYCHECK.  */
12201           for (yyx = yyn < 0 ? -yyn : 0;
12202                yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
12203             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
12204               yysize += yystrlen (yytname[yyx]) + 15, yycount++;
12205           yysize += yystrlen ("syntax error, unexpected ") + 1;
12206           yysize += yystrlen (yytname[yytype]);
12207           yymsg = (char *) YYSTACK_ALLOC (yysize);
12208           if (yymsg != 0)
12209             {
12210               char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
12211               yyp = yystpcpy (yyp, yytname[yytype]);
12212 
12213               if (yycount < 5)
12214                 {
12215                   yycount = 0;
12216                   for (yyx = yyn < 0 ? -yyn : 0;
12217                        yyx < (int) (sizeof (yytname) / sizeof (char *));
12218                        yyx++)
12219                     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
12220                       {
12221                         const char *yyq = ! yycount ? ", expecting " : " or ";
12222                         yyp = yystpcpy (yyp, yyq);
12223                         yyp = yystpcpy (yyp, yytname[yyx]);
12224                         yycount++;
12225                       }
12226                 }
12227               yyerror (yymsg);
12228               YYSTACK_FREE (yymsg);
12229             }
12230           else
12231             yyerror ("syntax error; also virtual memory exhausted");
12232         }
12233       else
12234 #endif /* YYERROR_VERBOSE */
12235         yyerror ("syntax error");
12236     }
12237 
12238 
12239 
12240   if (yyerrstatus == 3)
12241     {
12242       /* If just tried and failed to reuse lookahead token after an
12243          error, discard it.  */
12244 
12245       /* Return failure if at end of input.  */
12246       if (yychar == YYEOF)
12247         {
12248           /* Pop the error token.  */
12249           YYPOPSTACK;
12250           /* Pop the rest of the stack.  */
12251           while (yyss < yyssp)
12252             {
12253               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
12254               yydestruct (yystos[*yyssp], yyvsp);
12255               YYPOPSTACK;
12256             }
12257           YYABORT;
12258         }
12259 
12260       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
12261       yydestruct (yytoken, &yylval);
12262       yychar = YYEMPTY;
12263 
12264     }
12265 
12266   /* Else will try to reuse lookahead token after shifting the error
12267      token.  */
12268   goto yyerrlab2;
12269 
12270 
12271 /*----------------------------------------------------.
12272 | yyerrlab1 -- error raised explicitly by an action.  |
12273 `----------------------------------------------------*/
12274 yyerrlab1:
12275 
12276   /* Suppress GCC warning that yyerrlab1 is unused when no action
12277      invokes YYERROR.  */
12278 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
12279     && !defined __cplusplus
12280   __attribute__ ((__unused__))
12281 #endif
12282 
12283 
12284   goto yyerrlab2;
12285 
12286 
12287 /*---------------------------------------------------------------.
12288 | yyerrlab2 -- pop states until the error token can be shifted.  |
12289 `---------------------------------------------------------------*/
12290 yyerrlab2:
12291   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
12292 
12293   for (;;)
12294     {
12295       yyn = yypact[yystate];
12296       if (yyn != YYPACT_NINF)
12297         {
12298           yyn += YYTERROR;
12299           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
12300             {
12301               yyn = yytable[yyn];
12302               if (0 < yyn)
12303                 break;
12304             }
12305         }
12306 
12307       /* Pop the current state because it cannot handle the error token.  */
12308       if (yyssp == yyss)
12309         YYABORT;
12310 
12311       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
12312       yydestruct (yystos[yystate], yyvsp);
12313       yyvsp--;
12314       yystate = *--yyssp;
12315 
12316       YY_STACK_PRINT (yyss, yyssp);
12317     }
12318 
12319   if (yyn == YYFINAL)
12320     YYACCEPT;
12321 
12322   YYDPRINTF ((stderr, "Shifting error token, "));
12323 
12324   *++yyvsp = yylval;
12325 
12326 
12327   yystate = yyn;
12328   goto yynewstate;
12329 
12330 
12331 /*-------------------------------------.
12332 | yyacceptlab -- YYACCEPT comes here.  |
12333 `-------------------------------------*/
12334 yyacceptlab:
12335   yyresult = 0;
12336   goto yyreturn;
12337 
12338 /*-----------------------------------.
12339 | yyabortlab -- YYABORT comes here.  |
12340 `-----------------------------------*/
12341 yyabortlab:
12342   yyresult = 1;
12343   goto yyreturn;
12344 
12345 #ifndef yyoverflow
12346 /*----------------------------------------------.
12347 | yyoverflowlab -- parser overflow comes here.  |
12348 `----------------------------------------------*/
12349 yyoverflowlab:
12350   yyerror ("parser stack overflow");
12351   yyresult = 2;
12352   /* Fall through.  */
12353 #endif
12354 
12355 yyreturn:
12356 #ifndef yyoverflow
12357   if (yyss != yyssa)
12358     YYSTACK_FREE (yyss);
12359 #endif
12360   return yyresult;
12361 }
12362 
12363 
12364 #line 6941 "parser.y"
12365 
12366 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines