OpenCOBOL 1.1pre-rel
|
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