GnuCOBOL  2.0
A free COBOL compiler
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
parser.c File Reference
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include "cobc.h"
#include "tree.h"
Include dependency graph for parser.c:

Data Structures

union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "2.6.4"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   0
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define COB_IN_PARSER   1
 
#define _STDLIB_H   1
 
#define YYSTYPE   cb_tree
 
#define yyerror   cb_error
 
#define PENDING(x)   cb_warning (_("'%s' not implemented"), x)
 
#define emit_statement(x)
 
#define push_expr(type, node)   current_expr = cb_build_list (cb_int (type), node, current_expr)
 
#define TERM_NONE   0
 
#define TERM_ACCEPT   1U
 
#define TERM_ADD   2U
 
#define TERM_CALL   3U
 
#define TERM_COMPUTE   4U
 
#define TERM_DELETE   5U
 
#define TERM_DISPLAY   6U
 
#define TERM_DIVIDE   7U
 
#define TERM_EVALUATE   8U
 
#define TERM_IF   9U
 
#define TERM_MULTIPLY   10U
 
#define TERM_PERFORM   11U
 
#define TERM_READ   12U
 
#define TERM_RECEIVE   13U
 
#define TERM_RETURN   14U
 
#define TERM_REWRITE   15U
 
#define TERM_SEARCH   16U
 
#define TERM_START   17U
 
#define TERM_STRING   18U
 
#define TERM_SUBTRACT   19U
 
#define TERM_UNSTRING   20U
 
#define TERM_WRITE   21U
 
#define TERM_MAX   22U
 
#define TERMINATOR_WARNING(x, z)   terminator_warning (x, TERM_##z, #z)
 
#define TERMINATOR_ERROR(x, z)   terminator_error (x, TERM_##z, #z)
 
#define TERMINATOR_CLEAR(x, z)   terminator_clear (x, TERM_##z)
 
#define SYN_CLAUSE_1   (1U << 0)
 
#define SYN_CLAUSE_2   (1U << 1)
 
#define SYN_CLAUSE_3   (1U << 2)
 
#define SYN_CLAUSE_4   (1U << 3)
 
#define SYN_CLAUSE_5   (1U << 4)
 
#define SYN_CLAUSE_6   (1U << 5)
 
#define SYN_CLAUSE_7   (1U << 6)
 
#define SYN_CLAUSE_8   (1U << 7)
 
#define SYN_CLAUSE_9   (1U << 8)
 
#define SYN_CLAUSE_10   (1U << 9)
 
#define SYN_CLAUSE_11   (1U << 10)
 
#define SYN_CLAUSE_12   (1U << 11)
 
#define SYN_CLAUSE_13   (1U << 12)
 
#define SYN_CLAUSE_14   (1U << 13)
 
#define SYN_CLAUSE_15   (1U << 14)
 
#define SYN_CLAUSE_16   (1U << 15)
 
#define SYN_CLAUSE_17   (1U << 16)
 
#define SYN_CLAUSE_18   (1U << 17)
 
#define SYN_CLAUSE_19   (1U << 18)
 
#define SYN_CLAUSE_20   (1U << 19)
 
#define SYN_CLAUSE_21   (1U << 20)
 
#define SYN_CLAUSE_22   (1U << 21)
 
#define SYN_CLAUSE_23   (1U << 22)
 
#define SYN_CLAUSE_24   (1U << 23)
 
#define SYN_CLAUSE_25   (1U << 24)
 
#define SYN_CLAUSE_26   (1U << 25)
 
#define SYN_CLAUSE_27   (1U << 26)
 
#define SYN_CLAUSE_28   (1U << 27)
 
#define SYN_CLAUSE_29   (1U << 28)
 
#define SYN_CLAUSE_30   (1U << 29)
 
#define SYN_CLAUSE_31   (1U << 30)
 
#define SYN_CLAUSE_32   (1U << 31)
 
#define EVAL_DEPTH   32
 
#define PROG_DEPTH   16
 
#define COBC_HD_ENVIRONMENT_DIVISION   (1U << 0)
 
#define COBC_HD_CONFIGURATION_SECTION   (1U << 1)
 
#define COBC_HD_SPECIAL_NAMES   (1U << 2)
 
#define COBC_HD_INPUT_OUTPUT_SECTION   (1U << 3)
 
#define COBC_HD_FILE_CONTROL   (1U << 4)
 
#define COBC_HD_I_O_CONTROL   (1U << 5)
 
#define COBC_HD_DATA_DIVISION   (1U << 6)
 
#define COBC_HD_FILE_SECTION   (1U << 7)
 
#define COBC_HD_WORKING_STORAGE_SECTION   (1U << 8)
 
#define COBC_HD_LOCAL_STORAGE_SECTION   (1U << 9)
 
#define COBC_HD_LINKAGE_SECTION   (1U << 10)
 
#define COBC_HD_COMMUNICATIONS_SECTION   (1U << 11)
 
#define COBC_HD_REPORT_SECTION   (1U << 12)
 
#define COBC_HD_SCREEN_SECTION   (1U << 13)
 
#define COBC_HD_PROCEDURE_DIVISION   (1U << 14)
 
#define COBC_HD_PROGRAM_ID   (1U << 15)
 
#define YY_NULL   0
 
#define YYERROR_VERBOSE   1
 
#define YY_YY_PARSER_H_INCLUDED
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define YYSIZE_T   unsigned int
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define YYUSE(E)   ((void) (E))
 
#define YYID(N)   (N)
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   malloc
 
#define YYFREE   free
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   3
 
#define YYLAST   8083
 
#define YYNTOKENS   513
 
#define YYNNTS   817
 
#define YYNRULES   1905
 
#define YYNSTATES   2725
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   767
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -2357
 
#define YYTABLE_NINF   -1854
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-2357)))
 
#define yytable_value_is_error(Yytable_value)   YYID (0)
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYFAIL   goto yyerrlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYLLOC_DEFAULT(Current, Rhs, N)
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#define YY_LOCATION_PRINT(File, Loc)   ((void) 0)
 
#define YYLEX   yylex ()
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYCASE_(N, S)
 
#define YYLVAL_INITIALIZE()
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
#define YYSYNTAX_ERROR
 

Typedefs

typedef unsigned char yytype_uint8
 
typedef short int yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  yytokentype {
  TOKEN_EOF = 0, ACCEPT = 258, ACCESS = 259, ADD = 260,
  ADDRESS = 261, ADVANCING = 262, AFTER = 263, ALL = 264,
  ALLOCATE = 265, ALPHABET = 266, ALPHABETIC = 267, ALPHABETIC_LOWER = 268,
  ALPHABETIC_UPPER = 269, ALPHANUMERIC = 270, ALPHANUMERIC_EDITED = 271, ALSO = 272,
  ALTER = 273, ALTERNATE = 274, AND = 275, ANY = 276,
  ARE = 277, AREA = 278, ARGUMENT_NUMBER = 279, ARGUMENT_VALUE = 280,
  AS = 281, ASCENDING = 282, ASCII = 283, ASSIGN = 284,
  AT = 285, ATTRIBUTE = 286, AUTO = 287, AUTOMATIC = 288,
  AWAY_FROM_ZERO = 289, BACKGROUND_COLOR = 290, BASED = 291, BEFORE = 292,
  BELL = 293, BINARY = 294, BINARY_C_LONG = 295, BINARY_CHAR = 296,
  BINARY_DOUBLE = 297, BINARY_LONG = 298, BINARY_SHORT = 299, BLANK = 300,
  BLINK = 301, BLOCK = 302, BOTTOM = 303, BY = 304,
  BYTE_LENGTH = 305, CALL = 306, CANCEL = 307, CAPACITY = 308,
  CF = 309, CH = 310, CHAINING = 311, CHARACTER = 312,
  CHARACTERS = 313, CLASS = 314, CLASSIFICATION = 315, CLOSE = 316,
  CODE = 317, CODE_SET = 318, COLLATING = 319, COL = 320,
  COLS = 321, COLUMN = 322, COLUMNS = 323, COMMA = 324,
  COMMAND_LINE = 325, COMMA_DELIM = 326, COMMIT = 327, COMMON = 328,
  COMP = 329, COMPUTE = 330, COMP_1 = 331, COMP_2 = 332,
  COMP_3 = 333, COMP_4 = 334, COMP_5 = 335, COMP_6 = 336,
  COMP_X = 337, CONCATENATE_FUNC = 338, CONDITION = 339, CONFIGURATION = 340,
  CONSTANT = 341, CONTAINS = 342, CONTENT = 343, CONTINUE = 344,
  CONTROL = 345, CONTROLS = 346, CONVERSION = 347, CONVERTING = 348,
  COPY = 349, CORRESPONDING = 350, COUNT = 351, CRT = 352,
  CRT_UNDER = 353, CURRENCY = 354, CURRENT_DATE_FUNC = 355, CURSOR = 356,
  CYCLE = 357, DATA = 358, DATE = 359, DAY = 360,
  DAY_OF_WEEK = 361, DE = 362, DEBUGGING = 363, DECIMAL_POINT = 364,
  DECLARATIVES = 365, DEFAULT = 366, DELETE = 367, DELIMITED = 368,
  DELIMITER = 369, DEPENDING = 370, DESCENDING = 371, DETAIL = 372,
  DISC = 373, DISK = 374, DISPLAY = 375, DISPLAY_OF_FUNC = 376,
  DIVIDE = 377, DIVISION = 378, DOWN = 379, DUPLICATES = 380,
  DYNAMIC = 381, EBCDIC = 382, EC = 383, ELSE = 384,
  END = 385, END_ACCEPT = 386, END_ADD = 387, END_CALL = 388,
  END_COMPUTE = 389, END_DELETE = 390, END_DISPLAY = 391, END_DIVIDE = 392,
  END_EVALUATE = 393, END_FUNCTION = 394, END_IF = 395, END_MULTIPLY = 396,
  END_PERFORM = 397, END_PROGRAM = 398, END_READ = 399, END_RETURN = 400,
  END_REWRITE = 401, END_SEARCH = 402, END_START = 403, END_STRING = 404,
  END_SUBTRACT = 405, END_UNSTRING = 406, END_WRITE = 407, ENTRY = 408,
  ENVIRONMENT = 409, ENVIRONMENT_NAME = 410, ENVIRONMENT_VALUE = 411, EOL = 412,
  EOP = 413, EOS = 414, EQUAL = 415, ERASE = 416,
  ERROR = 417, ESCAPE = 418, EVALUATE = 419, EVENT_STATUS = 420,
  EXCEPTION = 421, EXCEPTION_CONDITION = 422, EXCLUSIVE = 423, EXIT = 424,
  EXPONENTIATION = 425, EXTEND = 426, EXTERNAL = 427, FD = 428,
  FILE_CONTROL = 429, FILE_ID = 430, FILLER = 431, FINAL = 432,
  FIRST = 433, FLOAT_BINARY_128 = 434, FLOAT_BINARY_32 = 435, FLOAT_BINARY_64 = 436,
  FLOAT_DECIMAL_16 = 437, FLOAT_DECIMAL_34 = 438, FLOAT_DECIMAL_7 = 439, FLOAT_EXTENDED = 440,
  FLOAT_LONG = 441, FLOAT_SHORT = 442, FOOTING = 443, FOR = 444,
  FOREGROUND_COLOR = 445, FOREVER = 446, FORMATTED_DATE_FUNC = 447, FORMATTED_DATETIME_FUNC = 448,
  FORMATTED_TIME_FUNC = 449, FREE = 450, FROM = 451, FROM_CRT = 452,
  FULL = 453, FUNCTION = 454, FUNCTION_ID = 455, FUNCTION_NAME = 456,
  GENERATE = 457, GIVING = 458, GLOBAL = 459, GO = 460,
  GOBACK = 461, GREATER = 462, GREATER_OR_EQUAL = 463, GROUP = 464,
  HEADING = 465, HIGHLIGHT = 466, HIGH_VALUE = 467, ID = 468,
  IDENTIFICATION = 469, IF = 470, IGNORE = 471, IGNORING = 472,
  IN = 473, INDEX = 474, INDEXED = 475, INDICATE = 476,
  INITIALIZE = 477, INITIALIZED = 478, INITIATE = 479, INPUT = 480,
  INPUT_OUTPUT = 481, INSPECT = 482, INTO = 483, INTRINSIC = 484,
  INVALID = 485, INVALID_KEY = 486, IS = 487, I_O = 488,
  I_O_CONTROL = 489, JUSTIFIED = 490, KEPT = 491, KEY = 492,
  KEYBOARD = 493, LABEL = 494, LAST = 495, LEADING = 496,
  LEFT = 497, LEFTLINE = 498, LENGTH = 499, LENGTH_OF = 500,
  LESS = 501, LESS_OR_EQUAL = 502, LIMIT = 503, LIMITS = 504,
  LINAGE = 505, LINAGE_COUNTER = 506, LINE = 507, LINE_COUNTER = 508,
  LINES = 509, LINKAGE = 510, LITERAL = 511, LOCALE = 512,
  LOCALE_DATE_FUNC = 513, LOCALE_TIME_FUNC = 514, LOCALE_TIME_FROM_FUNC = 515, LOCAL_STORAGE = 516,
  LOCK = 517, LOWER = 518, LOWER_CASE_FUNC = 519, LOWLIGHT = 520,
  LOW_VALUE = 521, MANUAL = 522, MEMORY = 523, MERGE = 524,
  MINUS = 525, MNEMONIC_NAME = 526, MODE = 527, MOVE = 528,
  MULTIPLE = 529, MULTIPLY = 530, NAME = 531, NATIONAL = 532,
  NATIONAL_EDITED = 533, NATIONAL_OF_FUNC = 534, NATIVE = 535, NEAREST_AWAY_FROM_ZERO = 536,
  NEAREST_EVEN = 537, NEAREST_TOWARD_ZERO = 538, NEGATIVE = 539, NEXT = 540,
  NEXT_PAGE = 541, NO = 542, NO_ECHO = 543, NORMAL = 544,
  NOT = 545, NOT_END = 546, NOT_EOP = 547, NOT_EQUAL = 548,
  NOT_EXCEPTION = 549, NOT_INVALID_KEY = 550, NOT_OVERFLOW = 551, NOT_SIZE_ERROR = 552,
  NO_ADVANCING = 553, NUMBER = 554, NUMBERS = 555, NUMERIC = 556,
  NUMERIC_EDITED = 557, NUMVALC_FUNC = 558, OBJECT_COMPUTER = 559, OCCURS = 560,
  OF = 561, OFF = 562, OMITTED = 563, ON = 564,
  ONLY = 565, OPEN = 566, OPTIONAL = 567, OR = 568,
  ORDER = 569, ORGANIZATION = 570, OTHER = 571, OUTPUT = 572,
  OVERLINE = 573, PACKED_DECIMAL = 574, PADDING = 575, PAGE = 576,
  PAGE_COUNTER = 577, PARAGRAPH = 578, PERFORM = 579, PH = 580,
  PF = 581, PICTURE = 582, PICTURE_SYMBOL = 583, PLUS = 584,
  POINTER = 585, POSITION = 586, POSITIVE = 587, PRESENT = 588,
  PREVIOUS = 589, PRINTER = 590, PRINTING = 591, PROCEDURE = 592,
  PROCEDURES = 593, PROCEED = 594, PROGRAM = 595, PROGRAM_ID = 596,
  PROGRAM_NAME = 597, PROGRAM_POINTER = 598, PROHIBITED = 599, PROMPT = 600,
  QUOTE = 601, RANDOM = 602, RD = 603, READ = 604,
  READY_TRACE = 605, RECORD = 606, RECORDING = 607, RECORDS = 608,
  RECURSIVE = 609, REDEFINES = 610, REEL = 611, REFERENCE = 612,
  REFERENCES = 613, RELATIVE = 614, RELEASE = 615, REMAINDER = 616,
  REMOVAL = 617, RENAMES = 618, REPLACE = 619, REPLACING = 620,
  REPORT = 621, REPORTING = 622, REPORTS = 623, REPOSITORY = 624,
  REPO_FUNCTION = 625, REQUIRED = 626, RESERVE = 627, RESET = 628,
  RESET_TRACE = 629, RETURN = 630, RETURNING = 631, REVERSE_FUNC = 632,
  REVERSE_VIDEO = 633, REVERSED = 634, REWIND = 635, REWRITE = 636,
  RF = 637, RH = 638, RIGHT = 639, ROLLBACK = 640,
  ROUNDED = 641, RUN = 642, SAME = 643, SCREEN = 644,
  SCREEN_CONTROL = 645, SCROLL = 646, SD = 647, SEARCH = 648,
  SECTION = 649, SECURE = 650, SEGMENT_LIMIT = 651, SELECT = 652,
  SEMI_COLON = 653, SENTENCE = 654, SEPARATE = 655, SEQUENCE = 656,
  SEQUENTIAL = 657, SET = 658, SHARING = 659, SIGN = 660,
  SIGNED = 661, SIGNED_INT = 662, SIGNED_LONG = 663, SIGNED_SHORT = 664,
  SIZE = 665, SIZE_ERROR = 666, SORT = 667, SORT_MERGE = 668,
  SOURCE = 669, SOURCE_COMPUTER = 670, SPACE = 671, SPECIAL_NAMES = 672,
  STANDARD = 673, STANDARD_1 = 674, STANDARD_2 = 675, START = 676,
  STATIC = 677, STATUS = 678, STDCALL = 679, STEP = 680,
  STOP = 681, STRING = 682, SUBSTITUTE_FUNC = 683, SUBSTITUTE_CASE_FUNC = 684,
  SUBTRACT = 685, SUM = 686, SUPPRESS = 687, SYMBOLIC = 688,
  SYNCHRONIZED = 689, SYSTEM_DEFAULT = 690, TAB = 691, TALLYING = 692,
  TAPE = 693, TERMINATE = 694, TEST = 695, THAN = 696,
  THEN = 697, THRU = 698, TIME = 699, TIMEOUT = 700,
  TIMES = 701, TO = 702, TOK_AMPER = 703, TOK_CLOSE_PAREN = 704,
  TOK_COLON = 705, TOK_DIV = 706, TOK_DOT = 707, TOK_EQUAL = 708,
  TOK_FALSE = 709, TOK_FILE = 710, TOK_GREATER = 711, TOK_INITIAL = 712,
  TOK_LESS = 713, TOK_MINUS = 714, TOK_MUL = 715, TOK_NULL = 716,
  TOK_OVERFLOW = 717, TOK_OPEN_PAREN = 718, TOK_PLUS = 719, TOK_TRUE = 720,
  TOP = 721, TOWARD_GREATER = 722, TOWARD_LESSER = 723, TRAILING = 724,
  TRANSFORM = 725, TRIM_FUNC = 726, TRUNCATION = 727, TYPE = 728,
  UNDERLINE = 729, UNIT = 730, UNLOCK = 731, UNSIGNED = 732,
  UNSIGNED_INT = 733, UNSIGNED_LONG = 734, UNSIGNED_SHORT = 735, UNSTRING = 736,
  UNTIL = 737, UP = 738, UPDATE = 739, UPON = 740,
  UPON_ARGUMENT_NUMBER = 741, UPON_COMMAND_LINE = 742, UPON_ENVIRONMENT_NAME = 743, UPON_ENVIRONMENT_VALUE = 744,
  UPPER = 745, UPPER_CASE_FUNC = 746, USAGE = 747, USE = 748,
  USER = 749, USER_DEFAULT = 750, USER_FUNCTION_NAME = 751, USER_REPO_FUNCTION = 752,
  USING = 753, VALUE = 754, VARYING = 755, WAIT = 756,
  WHEN = 757, WHEN_COMPILED_FUNC = 758, WITH = 759, WORD = 760,
  WORDS = 761, WORKING_STORAGE = 762, WRITE = 763, YYYYDDD = 764,
  YYYYMMDD = 765, ZERO = 766, SHIFT_PREFER = 767, TOKEN_EOF = 0,
  ACCEPT = 258, ACCESS = 259, ADD = 260, ADDRESS = 261,
  ADVANCING = 262, AFTER = 263, ALL = 264, ALLOCATE = 265,
  ALPHABET = 266, ALPHABETIC = 267, ALPHABETIC_LOWER = 268, ALPHABETIC_UPPER = 269,
  ALPHANUMERIC = 270, ALPHANUMERIC_EDITED = 271, ALSO = 272, ALTER = 273,
  ALTERNATE = 274, AND = 275, ANY = 276, ARE = 277,
  AREA = 278, ARGUMENT_NUMBER = 279, ARGUMENT_VALUE = 280, AS = 281,
  ASCENDING = 282, ASCII = 283, ASSIGN = 284, AT = 285,
  ATTRIBUTE = 286, AUTO = 287, AUTOMATIC = 288, AWAY_FROM_ZERO = 289,
  BACKGROUND_COLOR = 290, BASED = 291, BEFORE = 292, BELL = 293,
  BINARY = 294, BINARY_C_LONG = 295, BINARY_CHAR = 296, BINARY_DOUBLE = 297,
  BINARY_LONG = 298, BINARY_SHORT = 299, BLANK = 300, BLINK = 301,
  BLOCK = 302, BOTTOM = 303, BY = 304, BYTE_LENGTH = 305,
  CALL = 306, CANCEL = 307, CAPACITY = 308, CF = 309,
  CH = 310, CHAINING = 311, CHARACTER = 312, CHARACTERS = 313,
  CLASS = 314, CLASSIFICATION = 315, CLOSE = 316, CODE = 317,
  CODE_SET = 318, COLLATING = 319, COL = 320, COLS = 321,
  COLUMN = 322, COLUMNS = 323, COMMA = 324, COMMAND_LINE = 325,
  COMMA_DELIM = 326, COMMIT = 327, COMMON = 328, COMP = 329,
  COMPUTE = 330, COMP_1 = 331, COMP_2 = 332, COMP_3 = 333,
  COMP_4 = 334, COMP_5 = 335, COMP_6 = 336, COMP_X = 337,
  CONCATENATE_FUNC = 338, CONDITION = 339, CONFIGURATION = 340, CONSTANT = 341,
  CONTAINS = 342, CONTENT = 343, CONTINUE = 344, CONTROL = 345,
  CONTROLS = 346, CONVERSION = 347, CONVERTING = 348, COPY = 349,
  CORRESPONDING = 350, COUNT = 351, CRT = 352, CRT_UNDER = 353,
  CURRENCY = 354, CURRENT_DATE_FUNC = 355, CURSOR = 356, CYCLE = 357,
  DATA = 358, DATE = 359, DAY = 360, DAY_OF_WEEK = 361,
  DE = 362, DEBUGGING = 363, DECIMAL_POINT = 364, DECLARATIVES = 365,
  DEFAULT = 366, DELETE = 367, DELIMITED = 368, DELIMITER = 369,
  DEPENDING = 370, DESCENDING = 371, DETAIL = 372, DISC = 373,
  DISK = 374, DISPLAY = 375, DISPLAY_OF_FUNC = 376, DIVIDE = 377,
  DIVISION = 378, DOWN = 379, DUPLICATES = 380, DYNAMIC = 381,
  EBCDIC = 382, EC = 383, ELSE = 384, END = 385,
  END_ACCEPT = 386, END_ADD = 387, END_CALL = 388, END_COMPUTE = 389,
  END_DELETE = 390, END_DISPLAY = 391, END_DIVIDE = 392, END_EVALUATE = 393,
  END_FUNCTION = 394, END_IF = 395, END_MULTIPLY = 396, END_PERFORM = 397,
  END_PROGRAM = 398, END_READ = 399, END_RETURN = 400, END_REWRITE = 401,
  END_SEARCH = 402, END_START = 403, END_STRING = 404, END_SUBTRACT = 405,
  END_UNSTRING = 406, END_WRITE = 407, ENTRY = 408, ENVIRONMENT = 409,
  ENVIRONMENT_NAME = 410, ENVIRONMENT_VALUE = 411, EOL = 412, EOP = 413,
  EOS = 414, EQUAL = 415, ERASE = 416, ERROR = 417,
  ESCAPE = 418, EVALUATE = 419, EVENT_STATUS = 420, EXCEPTION = 421,
  EXCEPTION_CONDITION = 422, EXCLUSIVE = 423, EXIT = 424, EXPONENTIATION = 425,
  EXTEND = 426, EXTERNAL = 427, FD = 428, FILE_CONTROL = 429,
  FILE_ID = 430, FILLER = 431, FINAL = 432, FIRST = 433,
  FLOAT_BINARY_128 = 434, FLOAT_BINARY_32 = 435, FLOAT_BINARY_64 = 436, FLOAT_DECIMAL_16 = 437,
  FLOAT_DECIMAL_34 = 438, FLOAT_DECIMAL_7 = 439, FLOAT_EXTENDED = 440, FLOAT_LONG = 441,
  FLOAT_SHORT = 442, FOOTING = 443, FOR = 444, FOREGROUND_COLOR = 445,
  FOREVER = 446, FORMATTED_DATE_FUNC = 447, FORMATTED_DATETIME_FUNC = 448, FORMATTED_TIME_FUNC = 449,
  FREE = 450, FROM = 451, FROM_CRT = 452, FULL = 453,
  FUNCTION = 454, FUNCTION_ID = 455, FUNCTION_NAME = 456, GENERATE = 457,
  GIVING = 458, GLOBAL = 459, GO = 460, GOBACK = 461,
  GREATER = 462, GREATER_OR_EQUAL = 463, GROUP = 464, HEADING = 465,
  HIGHLIGHT = 466, HIGH_VALUE = 467, ID = 468, IDENTIFICATION = 469,
  IF = 470, IGNORE = 471, IGNORING = 472, IN = 473,
  INDEX = 474, INDEXED = 475, INDICATE = 476, INITIALIZE = 477,
  INITIALIZED = 478, INITIATE = 479, INPUT = 480, INPUT_OUTPUT = 481,
  INSPECT = 482, INTO = 483, INTRINSIC = 484, INVALID = 485,
  INVALID_KEY = 486, IS = 487, I_O = 488, I_O_CONTROL = 489,
  JUSTIFIED = 490, KEPT = 491, KEY = 492, KEYBOARD = 493,
  LABEL = 494, LAST = 495, LEADING = 496, LEFT = 497,
  LEFTLINE = 498, LENGTH = 499, LENGTH_OF = 500, LESS = 501,
  LESS_OR_EQUAL = 502, LIMIT = 503, LIMITS = 504, LINAGE = 505,
  LINAGE_COUNTER = 506, LINE = 507, LINE_COUNTER = 508, LINES = 509,
  LINKAGE = 510, LITERAL = 511, LOCALE = 512, LOCALE_DATE_FUNC = 513,
  LOCALE_TIME_FUNC = 514, LOCALE_TIME_FROM_FUNC = 515, LOCAL_STORAGE = 516, LOCK = 517,
  LOWER = 518, LOWER_CASE_FUNC = 519, LOWLIGHT = 520, LOW_VALUE = 521,
  MANUAL = 522, MEMORY = 523, MERGE = 524, MINUS = 525,
  MNEMONIC_NAME = 526, MODE = 527, MOVE = 528, MULTIPLE = 529,
  MULTIPLY = 530, NAME = 531, NATIONAL = 532, NATIONAL_EDITED = 533,
  NATIONAL_OF_FUNC = 534, NATIVE = 535, NEAREST_AWAY_FROM_ZERO = 536, NEAREST_EVEN = 537,
  NEAREST_TOWARD_ZERO = 538, NEGATIVE = 539, NEXT = 540, NEXT_PAGE = 541,
  NO = 542, NO_ECHO = 543, NORMAL = 544, NOT = 545,
  NOT_END = 546, NOT_EOP = 547, NOT_EQUAL = 548, NOT_EXCEPTION = 549,
  NOT_INVALID_KEY = 550, NOT_OVERFLOW = 551, NOT_SIZE_ERROR = 552, NO_ADVANCING = 553,
  NUMBER = 554, NUMBERS = 555, NUMERIC = 556, NUMERIC_EDITED = 557,
  NUMVALC_FUNC = 558, OBJECT_COMPUTER = 559, OCCURS = 560, OF = 561,
  OFF = 562, OMITTED = 563, ON = 564, ONLY = 565,
  OPEN = 566, OPTIONAL = 567, OR = 568, ORDER = 569,
  ORGANIZATION = 570, OTHER = 571, OUTPUT = 572, OVERLINE = 573,
  PACKED_DECIMAL = 574, PADDING = 575, PAGE = 576, PAGE_COUNTER = 577,
  PARAGRAPH = 578, PERFORM = 579, PH = 580, PF = 581,
  PICTURE = 582, PICTURE_SYMBOL = 583, PLUS = 584, POINTER = 585,
  POSITION = 586, POSITIVE = 587, PRESENT = 588, PREVIOUS = 589,
  PRINTER = 590, PRINTING = 591, PROCEDURE = 592, PROCEDURES = 593,
  PROCEED = 594, PROGRAM = 595, PROGRAM_ID = 596, PROGRAM_NAME = 597,
  PROGRAM_POINTER = 598, PROHIBITED = 599, PROMPT = 600, QUOTE = 601,
  RANDOM = 602, RD = 603, READ = 604, READY_TRACE = 605,
  RECORD = 606, RECORDING = 607, RECORDS = 608, RECURSIVE = 609,
  REDEFINES = 610, REEL = 611, REFERENCE = 612, REFERENCES = 613,
  RELATIVE = 614, RELEASE = 615, REMAINDER = 616, REMOVAL = 617,
  RENAMES = 618, REPLACE = 619, REPLACING = 620, REPORT = 621,
  REPORTING = 622, REPORTS = 623, REPOSITORY = 624, REPO_FUNCTION = 625,
  REQUIRED = 626, RESERVE = 627, RESET = 628, RESET_TRACE = 629,
  RETURN = 630, RETURNING = 631, REVERSE_FUNC = 632, REVERSE_VIDEO = 633,
  REVERSED = 634, REWIND = 635, REWRITE = 636, RF = 637,
  RH = 638, RIGHT = 639, ROLLBACK = 640, ROUNDED = 641,
  RUN = 642, SAME = 643, SCREEN = 644, SCREEN_CONTROL = 645,
  SCROLL = 646, SD = 647, SEARCH = 648, SECTION = 649,
  SECURE = 650, SEGMENT_LIMIT = 651, SELECT = 652, SEMI_COLON = 653,
  SENTENCE = 654, SEPARATE = 655, SEQUENCE = 656, SEQUENTIAL = 657,
  SET = 658, SHARING = 659, SIGN = 660, SIGNED = 661,
  SIGNED_INT = 662, SIGNED_LONG = 663, SIGNED_SHORT = 664, SIZE = 665,
  SIZE_ERROR = 666, SORT = 667, SORT_MERGE = 668, SOURCE = 669,
  SOURCE_COMPUTER = 670, SPACE = 671, SPECIAL_NAMES = 672, STANDARD = 673,
  STANDARD_1 = 674, STANDARD_2 = 675, START = 676, STATIC = 677,
  STATUS = 678, STDCALL = 679, STEP = 680, STOP = 681,
  STRING = 682, SUBSTITUTE_FUNC = 683, SUBSTITUTE_CASE_FUNC = 684, SUBTRACT = 685,
  SUM = 686, SUPPRESS = 687, SYMBOLIC = 688, SYNCHRONIZED = 689,
  SYSTEM_DEFAULT = 690, TAB = 691, TALLYING = 692, TAPE = 693,
  TERMINATE = 694, TEST = 695, THAN = 696, THEN = 697,
  THRU = 698, TIME = 699, TIMEOUT = 700, TIMES = 701,
  TO = 702, TOK_AMPER = 703, TOK_CLOSE_PAREN = 704, TOK_COLON = 705,
  TOK_DIV = 706, TOK_DOT = 707, TOK_EQUAL = 708, TOK_FALSE = 709,
  TOK_FILE = 710, TOK_GREATER = 711, TOK_INITIAL = 712, TOK_LESS = 713,
  TOK_MINUS = 714, TOK_MUL = 715, TOK_NULL = 716, TOK_OVERFLOW = 717,
  TOK_OPEN_PAREN = 718, TOK_PLUS = 719, TOK_TRUE = 720, TOP = 721,
  TOWARD_GREATER = 722, TOWARD_LESSER = 723, TRAILING = 724, TRANSFORM = 725,
  TRIM_FUNC = 726, TRUNCATION = 727, TYPE = 728, UNDERLINE = 729,
  UNIT = 730, UNLOCK = 731, UNSIGNED = 732, UNSIGNED_INT = 733,
  UNSIGNED_LONG = 734, UNSIGNED_SHORT = 735, UNSTRING = 736, UNTIL = 737,
  UP = 738, UPDATE = 739, UPON = 740, UPON_ARGUMENT_NUMBER = 741,
  UPON_COMMAND_LINE = 742, UPON_ENVIRONMENT_NAME = 743, UPON_ENVIRONMENT_VALUE = 744, UPPER = 745,
  UPPER_CASE_FUNC = 746, USAGE = 747, USE = 748, USER = 749,
  USER_DEFAULT = 750, USER_FUNCTION_NAME = 751, USER_REPO_FUNCTION = 752, USING = 753,
  VALUE = 754, VARYING = 755, WAIT = 756, WHEN = 757,
  WHEN_COMPILED_FUNC = 758, WITH = 759, WORD = 760, WORDS = 761,
  WORKING_STORAGE = 762, WRITE = 763, YYYYDDD = 764, YYYYMMDD = 765,
  ZERO = 766, SHIFT_PREFER = 767, TOKEN_EOF = 0, ALSO = 258,
  BY = 259, COPY = 260, EQEQ = 261, IN = 262,
  LAST = 263, LEADING = 264, OF = 265, OFF = 266,
  PRINTING = 267, REPLACE = 268, REPLACING = 269, SUPPRESS = 270,
  TRAILING = 271, DOT = 272, GARBAGE = 273, SOURCE_DIRECTIVE = 274,
  FORMAT = 275, IS = 276, FIXED = 277, FREE = 278,
  DEFINE_DIRECTIVE = 279, AS = 280, PARAMETER = 281, OVERRIDE = 282,
  SET_DIRECTIVE = 283, CONSTANT = 284, SOURCEFORMAT = 285, FOLDCOPYNAME = 286,
  NOFOLDCOPYNAME = 287, IF_DIRECTIVE = 288, ELSE_DIRECTIVE = 289, ENDIF_DIRECTIVE = 290,
  ELIF_DIRECTIVE = 291, GE = 292, LE = 293, LT = 294,
  GT = 295, EQ = 296, NE = 297, NOT = 298,
  THAN = 299, TO = 300, OR = 301, EQUAL = 302,
  GREATER = 303, LESS = 304, SET = 305, DEFINED = 306,
  TURN_DIRECTIVE = 307, ON = 308, CHECKING = 309, WITH = 310,
  LOCATION = 311, TERMINATOR = 312, TOKEN = 313, VARIABLE = 314,
  LITERAL = 315, TOKEN_EOF = 0, ALSO = 258, BY = 259,
  COPY = 260, EQEQ = 261, IN = 262, LAST = 263,
  LEADING = 264, OF = 265, OFF = 266, PRINTING = 267,
  REPLACE = 268, REPLACING = 269, SUPPRESS = 270, TRAILING = 271,
  DOT = 272, GARBAGE = 273, SOURCE_DIRECTIVE = 274, FORMAT = 275,
  IS = 276, FIXED = 277, FREE = 278, DEFINE_DIRECTIVE = 279,
  AS = 280, PARAMETER = 281, OVERRIDE = 282, SET_DIRECTIVE = 283,
  CONSTANT = 284, SOURCEFORMAT = 285, FOLDCOPYNAME = 286, NOFOLDCOPYNAME = 287,
  IF_DIRECTIVE = 288, ELSE_DIRECTIVE = 289, ENDIF_DIRECTIVE = 290, ELIF_DIRECTIVE = 291,
  GE = 292, LE = 293, LT = 294, GT = 295,
  EQ = 296, NE = 297, NOT = 298, THAN = 299,
  TO = 300, OR = 301, EQUAL = 302, GREATER = 303,
  LESS = 304, SET = 305, DEFINED = 306, TURN_DIRECTIVE = 307,
  ON = 308, CHECKING = 309, WITH = 310, LOCATION = 311,
  TERMINATOR = 312, TOKEN = 313, VARIABLE = 314, LITERAL = 315
}
 

Functions

static void begin_statement (const char *name, const unsigned int term)
 
static void begin_implicit_statement (void)
 
static void emit_entry (const char *name, const int encode, cb_tree using_list)
 
static size_t increment_depth (void)
 
static void terminator_warning (cb_tree stmt, const unsigned int termid, const char *name)
 
static void terminator_error (cb_tree stmt, const unsigned int termid, const char *name)
 
static void terminator_clear (cb_tree stmt, const unsigned int termid)
 
static int literal_value (cb_tree x)
 
static void setup_use_file (struct cb_file *fileptr)
 
static void build_nested_special (const int ndepth)
 
static void clear_initial_values (void)
 
static void check_repeated (const char *clause, const unsigned int bitval)
 
static void check_pic_repeated (const char *clause, const unsigned int bitval)
 
static void check_comp_repeated (const char *clause, const unsigned int bitval)
 
static void check_screen_attr (const char *clause, const int bitval)
 
static void bit_set_attr (const cb_tree onoff, const int attrval)
 
static void check_attribs (cb_tree fgc, cb_tree bgc, cb_tree scroll, cb_tree timeout, cb_tree prompt, int attrib)
 
static void remove_attrib (int attrib)
 
static void check_set_usage (const enum cb_usage usage)
 
static void check_relaxed_syntax (const unsigned int lev)
 
static void check_headers_present (const unsigned int lev1, const unsigned int lev2, const unsigned int lev3, const unsigned int lev4)
 
int yyparse ()
 
static YYSIZE_T yystrlen (char *yystr) const
 
static char * yystpcpy (char *yydest, const char *yysrc)
 
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
 
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
 
static void yydestruct (char *yymsg, int yytype, YYSTYPE *yyvaluep) const
 

Variables

struct cb_programcurrent_program = NULL
 
struct cb_statementcurrent_statement = NULL
 
struct cb_labelcurrent_section = NULL
 
struct cb_labelcurrent_paragraph = NULL
 
char * cobc_glob_line = NULL
 
cb_tree cobc_printer_node = NULL
 
int functions_are_all = 0
 
int non_const_word = 0
 
unsigned int cobc_in_procedure = 0
 
unsigned int cobc_in_repository = 0
 
unsigned int cobc_force_literal = 0
 
unsigned int cobc_cs_check = 0
 
static struct cb_statementmain_statement
 
static cb_tree current_expr
 
static struct cb_fieldcurrent_field
 
static struct cb_fielddescription_field
 
static struct cb_filecurrent_file
 
static struct cb_reportcurrent_report
 
static struct cb_reportreport_instance
 
static struct cb_filelinage_file
 
static cb_tree next_label_list
 
static char * stack_progid [PROG_DEPTH]
 
static enum cb_storage current_storage
 
static cb_tree perform_stack
 
static cb_tree qualifier
 
static cb_tree save_tree
 
static cb_tree start_tree
 
static unsigned int check_unreached
 
static unsigned int in_declaratives
 
static unsigned int in_debugging
 
static unsigned int current_linage
 
static unsigned int report_count
 
static unsigned int prog_end
 
static unsigned int use_global_ind
 
static unsigned int samearea
 
static unsigned int inspect_keyword
 
static unsigned int main_flag_set
 
static int next_label_id
 
static int eval_level
 
static int eval_inc
 
static int eval_inc2
 
static int depth
 
static int call_mode
 
static int size_mode
 
static int setattr_val_on
 
static int setattr_val_off
 
static unsigned int check_duplicate
 
static unsigned int check_pic_duplicate
 
static unsigned int check_comp_duplicate
 
static unsigned int skip_statements
 
static unsigned int start_debug
 
static unsigned int save_debug
 
static unsigned int needs_field_debug
 
static unsigned int needs_debug_item
 
static unsigned int env_div_seen
 
static unsigned int header_check
 
static int term_array [TERM_MAX]
 
static cb_tree eval_check [EVAL_DEPTH][EVAL_DEPTH]
 
YYSTYPE yylval
 
static const yytype_uint16 yytranslate []
 
static const char *const yytname []
 
static const yytype_uint16 yyr1 []
 
static const yytype_uint8 yyr2 []
 
static const yytype_uint16 yydefact []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yypact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint16 yystos []
 
int yychar
 
int yynerrs
 

Macro Definition Documentation

#define _STDLIB_H   1
#define COB_IN_PARSER   1
#define COBC_HD_COMMUNICATIONS_SECTION   (1U << 11)

Referenced by check_relaxed_syntax().

#define COBC_HD_CONFIGURATION_SECTION   (1U << 1)

Referenced by check_relaxed_syntax().

#define COBC_HD_DATA_DIVISION   (1U << 6)

Referenced by check_relaxed_syntax().

#define COBC_HD_ENVIRONMENT_DIVISION   (1U << 0)

Referenced by check_relaxed_syntax().

#define COBC_HD_FILE_CONTROL   (1U << 4)

Referenced by check_relaxed_syntax().

#define COBC_HD_FILE_SECTION   (1U << 7)

Referenced by check_relaxed_syntax().

#define COBC_HD_I_O_CONTROL   (1U << 5)

Referenced by check_relaxed_syntax().

#define COBC_HD_INPUT_OUTPUT_SECTION   (1U << 3)

Referenced by check_relaxed_syntax().

#define COBC_HD_LINKAGE_SECTION   (1U << 10)

Referenced by check_relaxed_syntax().

#define COBC_HD_LOCAL_STORAGE_SECTION   (1U << 9)

Referenced by check_relaxed_syntax().

#define COBC_HD_PROCEDURE_DIVISION   (1U << 14)

Referenced by check_relaxed_syntax().

#define COBC_HD_PROGRAM_ID   (1U << 15)

Referenced by check_relaxed_syntax().

#define COBC_HD_REPORT_SECTION   (1U << 12)

Referenced by check_relaxed_syntax().

#define COBC_HD_SCREEN_SECTION   (1U << 13)

Referenced by check_relaxed_syntax().

#define COBC_HD_SPECIAL_NAMES   (1U << 2)

Referenced by check_relaxed_syntax().

#define COBC_HD_WORKING_STORAGE_SECTION   (1U << 8)

Referenced by check_relaxed_syntax().

#define emit_statement (   x)
Value:
do { \
if (!skip_statements) { \
CB_ADD_TO_CHAIN (x, current_program->exec_list); \
} \
} while (0)

Referenced by begin_statement(), and emit_entry().

#define EVAL_DEPTH   32
#define PENDING (   x)    cb_warning (_("'%s' not implemented"), x)
#define PROG_DEPTH   16

Referenced by increment_depth().

#define push_expr (   type,
  node 
)    current_expr = cb_build_list (cb_int (type), node, current_expr)
#define SYN_CLAUSE_1   (1U << 0)
#define SYN_CLAUSE_10   (1U << 9)
#define SYN_CLAUSE_11   (1U << 10)
#define SYN_CLAUSE_12   (1U << 11)
#define SYN_CLAUSE_13   (1U << 12)
#define SYN_CLAUSE_14   (1U << 13)
#define SYN_CLAUSE_15   (1U << 14)
#define SYN_CLAUSE_16   (1U << 15)
#define SYN_CLAUSE_17   (1U << 16)
#define SYN_CLAUSE_18   (1U << 17)
#define SYN_CLAUSE_19   (1U << 18)
#define SYN_CLAUSE_2   (1U << 1)
#define SYN_CLAUSE_20   (1U << 19)
#define SYN_CLAUSE_21   (1U << 20)
#define SYN_CLAUSE_22   (1U << 21)
#define SYN_CLAUSE_23   (1U << 22)
#define SYN_CLAUSE_24   (1U << 23)
#define SYN_CLAUSE_25   (1U << 24)
#define SYN_CLAUSE_26   (1U << 25)
#define SYN_CLAUSE_27   (1U << 26)
#define SYN_CLAUSE_28   (1U << 27)
#define SYN_CLAUSE_29   (1U << 28)
#define SYN_CLAUSE_3   (1U << 2)
#define SYN_CLAUSE_30   (1U << 29)
#define SYN_CLAUSE_31   (1U << 30)
#define SYN_CLAUSE_32   (1U << 31)
#define SYN_CLAUSE_4   (1U << 3)
#define SYN_CLAUSE_5   (1U << 4)

Referenced by check_set_usage().

#define SYN_CLAUSE_6   (1U << 5)
#define SYN_CLAUSE_7   (1U << 6)
#define SYN_CLAUSE_8   (1U << 7)
#define SYN_CLAUSE_9   (1U << 8)
#define TERM_ACCEPT   1U
#define TERM_ADD   2U
#define TERM_CALL   3U
#define TERM_COMPUTE   4U
#define TERM_DELETE   5U
#define TERM_DISPLAY   6U
#define TERM_DIVIDE   7U
#define TERM_EVALUATE   8U
#define TERM_IF   9U
#define TERM_MAX   22U
#define TERM_MULTIPLY   10U
#define TERM_NONE   0
#define TERM_PERFORM   11U
#define TERM_READ   12U
#define TERM_RECEIVE   13U
#define TERM_RETURN   14U
#define TERM_REWRITE   15U
#define TERM_SEARCH   16U
#define TERM_START   17U
#define TERM_STRING   18U
#define TERM_SUBTRACT   19U
#define TERM_UNSTRING   20U
#define TERM_WRITE   21U
#define TERMINATOR_CLEAR (   x,
 
)    terminator_clear (x, TERM_##z)
#define TERMINATOR_ERROR (   x,
 
)    terminator_error (x, TERM_##z, #z)
#define TERMINATOR_WARNING (   x,
 
)    terminator_warning (x, TERM_##z, #z)
#define YY_ (   Msgid)    Msgid

Referenced by yysyntax_error().

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
#define YY_LOCATION_PRINT (   File,
  Loc 
)    ((void) 0)
#define YY_NULL   0

Referenced by ppinput(), and yysyntax_error().

#define YY_REDUCE_PRINT (   Rule)
#define YY_STACK_PRINT (   Bottom,
  Top 
)
#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

Referenced by yydestruct().

#define YY_YY_PARSER_H_INCLUDED
#define YYABORT   goto yyabortlab
#define YYACCEPT   goto yyacceptlab
#define YYBACKUP (   Token,
  Value 
)
Value:
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
#define YYBISON   1
#define YYBISON_VERSION   "2.6.4"
#define YYCASE_ (   N,
 
)
Value:
case N: \
yyformat = S; \
break

Referenced by yysyntax_error().

#define yyclearin   (yychar = YYEMPTY)
#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (YYID (0))
#define YYCOPY_NEEDED   1
#define YYDEBUG   0
#define YYDPRINTF (   Args)
#define YYEMPTY   (-2)

Referenced by yysyntax_error().

#define YYEOF   0
#define YYERRCODE   256
#define yyerrok   (yyerrstatus = 0)
#define yyerror   cb_error
#define YYERROR   goto yyerrorlab
#define YYERROR_VERBOSE   1
#define YYFAIL   goto yyerrlab
#define YYFINAL   3
#define YYFREE   free
#define YYID (   N)    (N)
#define YYINITDEPTH   200
#define YYLAST   8083

Referenced by yysyntax_error().

#define YYLEX   yylex ()
#define YYLLOC_DEFAULT (   Current,
  Rhs,
 
)
Value:
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#define YYLVAL_INITIALIZE ( )
#define YYMALLOC   malloc
#define YYMAXDEPTH   10000
#define YYMAXUTOK   767
#define YYNNTS   817
#define YYNRULES   1905
#define YYNSTATES   2725
#define YYNTOKENS   513

Referenced by yysyntax_error().

#define YYPACT_NINF   -2357
#define yypact_value_is_default (   Yystate)    (!!((Yystate) == (-2357)))

Referenced by yysyntax_error().

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))
#define YYPULL   1
#define YYPURE   0
#define YYPUSH   0
#define YYRECOVERING ( )    (!!yyerrstatus)
#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
#define YYSIZE_T   unsigned int

Referenced by yystrlen(), yysyntax_error(), and yytnamerr().

#define YYSKELETON_NAME   "yacc.c"
#define YYSTACK_ALLOC   YYMALLOC
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Referenced by yysyntax_error().

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
#define YYSTACK_FREE   YYFREE
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
#define YYTABLE_NINF   -1854
#define yytable_value_is_error (   Yytable_value)    YYID (0)

Referenced by yysyntax_error().

#define YYTERROR   1

Referenced by yysyntax_error().

#define YYTOKENTYPE
#define YYTRANSLATE (   YYX)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
#define YYUNDEFTOK   2
#define YYUSE (   E)    ((void) (E))

Referenced by yydestruct().

Typedef Documentation

typedef short int yytype_int16
typedef short int yytype_int8
typedef unsigned short int yytype_uint16
typedef unsigned char yytype_uint8

Enumeration Type Documentation

Enumerator
TOKEN_EOF 
ACCEPT 
ACCESS 
ADD 
ADDRESS 
ADVANCING 
AFTER 
ALL 
ALLOCATE 
ALPHABET 
ALPHABETIC 
ALPHABETIC_LOWER 
ALPHABETIC_UPPER 
ALPHANUMERIC 
ALPHANUMERIC_EDITED 
ALSO 
ALTER 
ALTERNATE 
AND 
ANY 
ARE 
AREA 
ARGUMENT_NUMBER 
ARGUMENT_VALUE 
AS 
ASCENDING 
ASCII 
ASSIGN 
AT 
ATTRIBUTE 
AUTO 
AUTOMATIC 
AWAY_FROM_ZERO 
BACKGROUND_COLOR 
BASED 
BEFORE 
BELL 
BINARY 
BINARY_C_LONG 
BINARY_CHAR 
BINARY_DOUBLE 
BINARY_LONG 
BINARY_SHORT 
BLANK 
BLINK 
BLOCK 
BOTTOM 
BY 
BYTE_LENGTH 
CALL 
CANCEL 
CAPACITY 
CF 
CH 
CHAINING 
CHARACTER 
CHARACTERS 
CLASS 
CLASSIFICATION 
CLOSE 
CODE 
CODE_SET 
COLLATING 
COL 
COLS 
COLUMN 
COLUMNS 
COMMA 
COMMAND_LINE 
COMMA_DELIM 
COMMIT 
COMMON 
COMP 
COMPUTE 
COMP_1 
COMP_2 
COMP_3 
COMP_4 
COMP_5 
COMP_6 
COMP_X 
CONCATENATE_FUNC 
CONDITION 
CONFIGURATION 
CONSTANT 
CONTAINS 
CONTENT 
CONTINUE 
CONTROL 
CONTROLS 
CONVERSION 
CONVERTING 
COPY 
CORRESPONDING 
COUNT 
CRT 
CRT_UNDER 
CURRENCY 
CURRENT_DATE_FUNC 
CURSOR 
CYCLE 
DATA 
DATE 
DAY 
DAY_OF_WEEK 
DE 
DEBUGGING 
DECIMAL_POINT 
DECLARATIVES 
DEFAULT 
DELETE 
DELIMITED 
DELIMITER 
DEPENDING 
DESCENDING 
DETAIL 
DISC 
DISK 
DISPLAY 
DISPLAY_OF_FUNC 
DIVIDE 
DIVISION 
DOWN 
DUPLICATES 
DYNAMIC 
EBCDIC 
EC 
ELSE 
END 
END_ACCEPT 
END_ADD 
END_CALL 
END_COMPUTE 
END_DELETE 
END_DISPLAY 
END_DIVIDE 
END_EVALUATE 
END_FUNCTION 
END_IF 
END_MULTIPLY 
END_PERFORM 
END_PROGRAM 
END_READ 
END_RETURN 
END_REWRITE 
END_SEARCH 
END_START 
END_STRING 
END_SUBTRACT 
END_UNSTRING 
END_WRITE 
ENTRY 
ENVIRONMENT 
ENVIRONMENT_NAME 
ENVIRONMENT_VALUE 
EOL 
EOP 
EOS 
EQUAL 
ERASE 
ERROR 
ESCAPE 
EVALUATE 
EVENT_STATUS 
EXCEPTION 
EXCEPTION_CONDITION 
EXCLUSIVE 
EXIT 
EXPONENTIATION 
EXTEND 
EXTERNAL 
FD 
FILE_CONTROL 
FILE_ID 
FILLER 
FINAL 
FIRST 
FLOAT_BINARY_128 
FLOAT_BINARY_32 
FLOAT_BINARY_64 
FLOAT_DECIMAL_16 
FLOAT_DECIMAL_34 
FLOAT_DECIMAL_7 
FLOAT_EXTENDED 
FLOAT_LONG 
FLOAT_SHORT 
FOOTING 
FOR 
FOREGROUND_COLOR 
FOREVER 
FORMATTED_DATE_FUNC 
FORMATTED_DATETIME_FUNC 
FORMATTED_TIME_FUNC 
FREE 
FROM 
FROM_CRT 
FULL 
FUNCTION 
FUNCTION_ID 
FUNCTION_NAME 
GENERATE 
GIVING 
GLOBAL 
GO 
GOBACK 
GREATER 
GREATER_OR_EQUAL 
GROUP 
HEADING 
HIGHLIGHT 
HIGH_VALUE 
ID 
IDENTIFICATION 
IF 
IGNORE 
IGNORING 
IN 
INDEX 
INDEXED 
INDICATE 
INITIALIZE 
INITIALIZED 
INITIATE 
INPUT 
INPUT_OUTPUT 
INSPECT 
INTO 
INTRINSIC 
INVALID 
INVALID_KEY 
IS 
I_O 
I_O_CONTROL 
JUSTIFIED 
KEPT 
KEY 
KEYBOARD 
LABEL 
LAST 
LEADING 
LEFT 
LEFTLINE 
LENGTH 
LENGTH_OF 
LESS 
LESS_OR_EQUAL 
LIMIT 
LIMITS 
LINAGE 
LINAGE_COUNTER 
LINE 
LINE_COUNTER 
LINES 
LINKAGE 
LITERAL 
LOCALE 
LOCALE_DATE_FUNC 
LOCALE_TIME_FUNC 
LOCALE_TIME_FROM_FUNC 
LOCAL_STORAGE 
LOCK 
LOWER 
LOWER_CASE_FUNC 
LOWLIGHT 
LOW_VALUE 
MANUAL 
MEMORY 
MERGE 
MINUS 
MNEMONIC_NAME 
MODE 
MOVE 
MULTIPLE 
MULTIPLY 
NAME 
NATIONAL 
NATIONAL_EDITED 
NATIONAL_OF_FUNC 
NATIVE 
NEAREST_AWAY_FROM_ZERO 
NEAREST_EVEN 
NEAREST_TOWARD_ZERO 
NEGATIVE 
NEXT 
NEXT_PAGE 
NO 
NO_ECHO 
NORMAL 
NOT 
NOT_END 
NOT_EOP 
NOT_EQUAL 
NOT_EXCEPTION 
NOT_INVALID_KEY 
NOT_OVERFLOW 
NOT_SIZE_ERROR 
NO_ADVANCING 
NUMBER 
NUMBERS 
NUMERIC 
NUMERIC_EDITED 
NUMVALC_FUNC 
OBJECT_COMPUTER 
OCCURS 
OF 
OFF 
OMITTED 
ON 
ONLY 
OPEN 
OPTIONAL 
OR 
ORDER 
ORGANIZATION 
OTHER 
OUTPUT 
OVERLINE 
PACKED_DECIMAL 
PADDING 
PAGE 
PAGE_COUNTER 
PARAGRAPH 
PERFORM 
PH 
PF 
PICTURE 
PICTURE_SYMBOL 
PLUS 
POINTER 
POSITION 
POSITIVE 
PRESENT 
PREVIOUS 
PRINTER 
PRINTING 
PROCEDURE 
PROCEDURES 
PROCEED 
PROGRAM 
PROGRAM_ID 
PROGRAM_NAME 
PROGRAM_POINTER 
PROHIBITED 
PROMPT 
QUOTE 
RANDOM 
RD 
READ 
READY_TRACE 
RECORD 
RECORDING 
RECORDS 
RECURSIVE 
REDEFINES 
REEL 
REFERENCE 
REFERENCES 
RELATIVE 
RELEASE 
REMAINDER 
REMOVAL 
RENAMES 
REPLACE 
REPLACING 
REPORT 
REPORTING 
REPORTS 
REPOSITORY 
REPO_FUNCTION 
REQUIRED 
RESERVE 
RESET 
RESET_TRACE 
RETURN 
RETURNING 
REVERSE_FUNC 
REVERSE_VIDEO 
REVERSED 
REWIND 
REWRITE 
RF 
RH 
RIGHT 
ROLLBACK 
ROUNDED 
RUN 
SAME 
SCREEN 
SCREEN_CONTROL 
SCROLL 
SD 
SEARCH 
SECTION 
SECURE 
SEGMENT_LIMIT 
SELECT 
SEMI_COLON 
SENTENCE 
SEPARATE 
SEQUENCE 
SEQUENTIAL 
SET 
SHARING 
SIGN 
SIGNED 
SIGNED_INT 
SIGNED_LONG 
SIGNED_SHORT 
SIZE 
SIZE_ERROR 
SORT 
SORT_MERGE 
SOURCE 
SOURCE_COMPUTER 
SPACE 
SPECIAL_NAMES 
STANDARD 
STANDARD_1 
STANDARD_2 
START 
STATIC 
STATUS 
STDCALL 
STEP 
STOP 
STRING 
SUBSTITUTE_FUNC 
SUBSTITUTE_CASE_FUNC 
SUBTRACT 
SUM 
SUPPRESS 
SYMBOLIC 
SYNCHRONIZED 
SYSTEM_DEFAULT 
TAB 
TALLYING 
TAPE 
TERMINATE 
TEST 
THAN 
THEN 
THRU 
TIME 
TIMEOUT 
TIMES 
TO 
TOK_AMPER 
TOK_CLOSE_PAREN 
TOK_COLON 
TOK_DIV 
TOK_DOT 
TOK_EQUAL 
TOK_FALSE 
TOK_FILE 
TOK_GREATER 
TOK_INITIAL 
TOK_LESS 
TOK_MINUS 
TOK_MUL 
TOK_NULL 
TOK_OVERFLOW 
TOK_OPEN_PAREN 
TOK_PLUS 
TOK_TRUE 
TOP 
TOWARD_GREATER 
TOWARD_LESSER 
TRAILING 
TRANSFORM 
TRIM_FUNC 
TRUNCATION 
TYPE 
UNDERLINE 
UNIT 
UNLOCK 
UNSIGNED 
UNSIGNED_INT 
UNSIGNED_LONG 
UNSIGNED_SHORT 
UNSTRING 
UNTIL 
UP 
UPDATE 
UPON 
UPON_ARGUMENT_NUMBER 
UPON_COMMAND_LINE 
UPON_ENVIRONMENT_NAME 
UPON_ENVIRONMENT_VALUE 
UPPER 
UPPER_CASE_FUNC 
USAGE 
USE 
USER 
USER_DEFAULT 
USER_FUNCTION_NAME 
USER_REPO_FUNCTION 
USING 
VALUE 
VARYING 
WAIT 
WHEN 
WHEN_COMPILED_FUNC 
WITH 
WORD 
WORDS 
WORKING_STORAGE 
WRITE 
YYYYDDD 
YYYYMMDD 
ZERO 
SHIFT_PREFER 
TOKEN_EOF 
ACCEPT 
ACCESS 
ADD 
ADDRESS 
ADVANCING 
AFTER 
ALL 
ALLOCATE 
ALPHABET 
ALPHABETIC 
ALPHABETIC_LOWER 
ALPHABETIC_UPPER 
ALPHANUMERIC 
ALPHANUMERIC_EDITED 
ALSO 
ALTER 
ALTERNATE 
AND 
ANY 
ARE 
AREA 
ARGUMENT_NUMBER 
ARGUMENT_VALUE 
AS 
ASCENDING 
ASCII 
ASSIGN 
AT 
ATTRIBUTE 
AUTO 
AUTOMATIC 
AWAY_FROM_ZERO 
BACKGROUND_COLOR 
BASED 
BEFORE 
BELL 
BINARY 
BINARY_C_LONG 
BINARY_CHAR 
BINARY_DOUBLE 
BINARY_LONG 
BINARY_SHORT 
BLANK 
BLINK 
BLOCK 
BOTTOM 
BY 
BYTE_LENGTH 
CALL 
CANCEL 
CAPACITY 
CF 
CH 
CHAINING 
CHARACTER 
CHARACTERS 
CLASS 
CLASSIFICATION 
CLOSE 
CODE 
CODE_SET 
COLLATING 
COL 
COLS 
COLUMN 
COLUMNS 
COMMA 
COMMAND_LINE 
COMMA_DELIM 
COMMIT 
COMMON 
COMP 
COMPUTE 
COMP_1 
COMP_2 
COMP_3 
COMP_4 
COMP_5 
COMP_6 
COMP_X 
CONCATENATE_FUNC 
CONDITION 
CONFIGURATION 
CONSTANT 
CONTAINS 
CONTENT 
CONTINUE 
CONTROL 
CONTROLS 
CONVERSION 
CONVERTING 
COPY 
CORRESPONDING 
COUNT 
CRT 
CRT_UNDER 
CURRENCY 
CURRENT_DATE_FUNC 
CURSOR 
CYCLE 
DATA 
DATE 
DAY 
DAY_OF_WEEK 
DE 
DEBUGGING 
DECIMAL_POINT 
DECLARATIVES 
DEFAULT 
DELETE 
DELIMITED 
DELIMITER 
DEPENDING 
DESCENDING 
DETAIL 
DISC 
DISK 
DISPLAY 
DISPLAY_OF_FUNC 
DIVIDE 
DIVISION 
DOWN 
DUPLICATES 
DYNAMIC 
EBCDIC 
EC 
ELSE 
END 
END_ACCEPT 
END_ADD 
END_CALL 
END_COMPUTE 
END_DELETE 
END_DISPLAY 
END_DIVIDE 
END_EVALUATE 
END_FUNCTION 
END_IF 
END_MULTIPLY 
END_PERFORM 
END_PROGRAM 
END_READ 
END_RETURN 
END_REWRITE 
END_SEARCH 
END_START 
END_STRING 
END_SUBTRACT 
END_UNSTRING 
END_WRITE 
ENTRY 
ENVIRONMENT 
ENVIRONMENT_NAME 
ENVIRONMENT_VALUE 
EOL 
EOP 
EOS 
EQUAL 
ERASE 
ERROR 
ESCAPE 
EVALUATE 
EVENT_STATUS 
EXCEPTION 
EXCEPTION_CONDITION 
EXCLUSIVE 
EXIT 
EXPONENTIATION 
EXTEND 
EXTERNAL 
FD 
FILE_CONTROL 
FILE_ID 
FILLER 
FINAL 
FIRST 
FLOAT_BINARY_128 
FLOAT_BINARY_32 
FLOAT_BINARY_64 
FLOAT_DECIMAL_16 
FLOAT_DECIMAL_34 
FLOAT_DECIMAL_7 
FLOAT_EXTENDED 
FLOAT_LONG 
FLOAT_SHORT 
FOOTING 
FOR 
FOREGROUND_COLOR 
FOREVER 
FORMATTED_DATE_FUNC 
FORMATTED_DATETIME_FUNC 
FORMATTED_TIME_FUNC 
FREE 
FROM 
FROM_CRT 
FULL 
FUNCTION 
FUNCTION_ID 
FUNCTION_NAME 
GENERATE 
GIVING 
GLOBAL 
GO 
GOBACK 
GREATER 
GREATER_OR_EQUAL 
GROUP 
HEADING 
HIGHLIGHT 
HIGH_VALUE 
ID 
IDENTIFICATION 
IF 
IGNORE 
IGNORING 
IN 
INDEX 
INDEXED 
INDICATE 
INITIALIZE 
INITIALIZED 
INITIATE 
INPUT 
INPUT_OUTPUT 
INSPECT 
INTO 
INTRINSIC 
INVALID 
INVALID_KEY 
IS 
I_O 
I_O_CONTROL 
JUSTIFIED 
KEPT 
KEY 
KEYBOARD 
LABEL 
LAST 
LEADING 
LEFT 
LEFTLINE 
LENGTH 
LENGTH_OF 
LESS 
LESS_OR_EQUAL 
LIMIT 
LIMITS 
LINAGE 
LINAGE_COUNTER 
LINE 
LINE_COUNTER 
LINES 
LINKAGE 
LITERAL 
LOCALE 
LOCALE_DATE_FUNC 
LOCALE_TIME_FUNC 
LOCALE_TIME_FROM_FUNC 
LOCAL_STORAGE 
LOCK 
LOWER 
LOWER_CASE_FUNC 
LOWLIGHT 
LOW_VALUE 
MANUAL 
MEMORY 
MERGE 
MINUS 
MNEMONIC_NAME 
MODE 
MOVE 
MULTIPLE 
MULTIPLY 
NAME 
NATIONAL 
NATIONAL_EDITED 
NATIONAL_OF_FUNC 
NATIVE 
NEAREST_AWAY_FROM_ZERO 
NEAREST_EVEN 
NEAREST_TOWARD_ZERO 
NEGATIVE 
NEXT 
NEXT_PAGE 
NO 
NO_ECHO 
NORMAL 
NOT 
NOT_END 
NOT_EOP 
NOT_EQUAL 
NOT_EXCEPTION 
NOT_INVALID_KEY 
NOT_OVERFLOW 
NOT_SIZE_ERROR 
NO_ADVANCING 
NUMBER 
NUMBERS 
NUMERIC 
NUMERIC_EDITED 
NUMVALC_FUNC 
OBJECT_COMPUTER 
OCCURS 
OF 
OFF 
OMITTED 
ON 
ONLY 
OPEN 
OPTIONAL 
OR 
ORDER 
ORGANIZATION 
OTHER 
OUTPUT 
OVERLINE 
PACKED_DECIMAL 
PADDING 
PAGE 
PAGE_COUNTER 
PARAGRAPH 
PERFORM 
PH 
PF 
PICTURE 
PICTURE_SYMBOL 
PLUS 
POINTER 
POSITION 
POSITIVE 
PRESENT 
PREVIOUS 
PRINTER 
PRINTING 
PROCEDURE 
PROCEDURES 
PROCEED 
PROGRAM 
PROGRAM_ID 
PROGRAM_NAME 
PROGRAM_POINTER 
PROHIBITED 
PROMPT 
QUOTE 
RANDOM 
RD 
READ 
READY_TRACE 
RECORD 
RECORDING 
RECORDS 
RECURSIVE 
REDEFINES 
REEL 
REFERENCE 
REFERENCES 
RELATIVE 
RELEASE 
REMAINDER 
REMOVAL 
RENAMES 
REPLACE 
REPLACING 
REPORT 
REPORTING 
REPORTS 
REPOSITORY 
REPO_FUNCTION 
REQUIRED 
RESERVE 
RESET 
RESET_TRACE 
RETURN 
RETURNING 
REVERSE_FUNC 
REVERSE_VIDEO 
REVERSED 
REWIND 
REWRITE 
RF 
RH 
RIGHT 
ROLLBACK 
ROUNDED 
RUN 
SAME 
SCREEN 
SCREEN_CONTROL 
SCROLL 
SD 
SEARCH 
SECTION 
SECURE 
SEGMENT_LIMIT 
SELECT 
SEMI_COLON 
SENTENCE 
SEPARATE 
SEQUENCE 
SEQUENTIAL 
SET 
SHARING 
SIGN 
SIGNED 
SIGNED_INT 
SIGNED_LONG 
SIGNED_SHORT 
SIZE 
SIZE_ERROR 
SORT 
SORT_MERGE 
SOURCE 
SOURCE_COMPUTER 
SPACE 
SPECIAL_NAMES 
STANDARD 
STANDARD_1 
STANDARD_2 
START 
STATIC 
STATUS 
STDCALL 
STEP 
STOP 
STRING 
SUBSTITUTE_FUNC 
SUBSTITUTE_CASE_FUNC 
SUBTRACT 
SUM 
SUPPRESS 
SYMBOLIC 
SYNCHRONIZED 
SYSTEM_DEFAULT 
TAB 
TALLYING 
TAPE 
TERMINATE 
TEST 
THAN 
THEN 
THRU 
TIME 
TIMEOUT 
TIMES 
TO 
TOK_AMPER 
TOK_CLOSE_PAREN 
TOK_COLON 
TOK_DIV 
TOK_DOT 
TOK_EQUAL 
TOK_FALSE 
TOK_FILE 
TOK_GREATER 
TOK_INITIAL 
TOK_LESS 
TOK_MINUS 
TOK_MUL 
TOK_NULL 
TOK_OVERFLOW 
TOK_OPEN_PAREN 
TOK_PLUS 
TOK_TRUE 
TOP 
TOWARD_GREATER 
TOWARD_LESSER 
TRAILING 
TRANSFORM 
TRIM_FUNC 
TRUNCATION 
TYPE 
UNDERLINE 
UNIT 
UNLOCK 
UNSIGNED 
UNSIGNED_INT 
UNSIGNED_LONG 
UNSIGNED_SHORT 
UNSTRING 
UNTIL 
UP 
UPDATE 
UPON 
UPON_ARGUMENT_NUMBER 
UPON_COMMAND_LINE 
UPON_ENVIRONMENT_NAME 
UPON_ENVIRONMENT_VALUE 
UPPER 
UPPER_CASE_FUNC 
USAGE 
USE 
USER 
USER_DEFAULT 
USER_FUNCTION_NAME 
USER_REPO_FUNCTION 
USING 
VALUE 
VARYING 
WAIT 
WHEN 
WHEN_COMPILED_FUNC 
WITH 
WORD 
WORDS 
WORKING_STORAGE 
WRITE 
YYYYDDD 
YYYYMMDD 
ZERO 
SHIFT_PREFER 
TOKEN_EOF 
ALSO 
BY 
COPY 
EQEQ 
IN 
LAST 
LEADING 
OF 
OFF 
PRINTING 
REPLACE 
REPLACING 
SUPPRESS 
TRAILING 
DOT 
GARBAGE 
SOURCE_DIRECTIVE 
FORMAT 
IS 
FIXED 
FREE 
DEFINE_DIRECTIVE 
AS 
PARAMETER 
OVERRIDE 
SET_DIRECTIVE 
CONSTANT 
SOURCEFORMAT 
FOLDCOPYNAME 
NOFOLDCOPYNAME 
IF_DIRECTIVE 
ELSE_DIRECTIVE 
ENDIF_DIRECTIVE 
ELIF_DIRECTIVE 
GE 
LE 
LT 
GT 
EQ 
NE 
NOT 
THAN 
TO 
OR 
EQUAL 
GREATER 
LESS 
SET 
DEFINED 
TURN_DIRECTIVE 
ON 
CHECKING 
WITH 
LOCATION 
TERMINATOR 
TOKEN 
VARIABLE 
LITERAL 
TOKEN_EOF 
ALSO 
BY 
COPY 
EQEQ 
IN 
LAST 
LEADING 
OF 
OFF 
PRINTING 
REPLACE 
REPLACING 
SUPPRESS 
TRAILING 
DOT 
GARBAGE 
SOURCE_DIRECTIVE 
FORMAT 
IS 
FIXED 
FREE 
DEFINE_DIRECTIVE 
AS 
PARAMETER 
OVERRIDE 
SET_DIRECTIVE 
CONSTANT 
SOURCEFORMAT 
FOLDCOPYNAME 
NOFOLDCOPYNAME 
IF_DIRECTIVE 
ELSE_DIRECTIVE 
ENDIF_DIRECTIVE 
ELIF_DIRECTIVE 
GE 
LE 
LT 
GT 
EQ 
NE 
NOT 
THAN 
TO 
OR 
EQUAL 
GREATER 
LESS 
SET 
DEFINED 
TURN_DIRECTIVE 
ON 
CHECKING 
WITH 
LOCATION 
TERMINATOR 
TOKEN 
VARIABLE 
LITERAL 
824  {
825  TOKEN_EOF = 0,
826  ACCEPT = 258,
827  ACCESS = 259,
828  ADD = 260,
829  ADDRESS = 261,
830  ADVANCING = 262,
831  AFTER = 263,
832  ALL = 264,
833  ALLOCATE = 265,
834  ALPHABET = 266,
835  ALPHABETIC = 267,
836  ALPHABETIC_LOWER = 268,
837  ALPHABETIC_UPPER = 269,
838  ALPHANUMERIC = 270,
839  ALPHANUMERIC_EDITED = 271,
840  ALSO = 272,
841  ALTER = 273,
842  ALTERNATE = 274,
843  AND = 275,
844  ANY = 276,
845  ARE = 277,
846  AREA = 278,
847  ARGUMENT_NUMBER = 279,
848  ARGUMENT_VALUE = 280,
849  AS = 281,
850  ASCENDING = 282,
851  ASCII = 283,
852  ASSIGN = 284,
853  AT = 285,
854  ATTRIBUTE = 286,
855  AUTO = 287,
856  AUTOMATIC = 288,
857  AWAY_FROM_ZERO = 289,
858  BACKGROUND_COLOR = 290,
859  BASED = 291,
860  BEFORE = 292,
861  BELL = 293,
862  BINARY = 294,
863  BINARY_C_LONG = 295,
864  BINARY_CHAR = 296,
865  BINARY_DOUBLE = 297,
866  BINARY_LONG = 298,
867  BINARY_SHORT = 299,
868  BLANK = 300,
869  BLINK = 301,
870  BLOCK = 302,
871  BOTTOM = 303,
872  BY = 304,
873  BYTE_LENGTH = 305,
874  CALL = 306,
875  CANCEL = 307,
876  CAPACITY = 308,
877  CF = 309,
878  CH = 310,
879  CHAINING = 311,
880  CHARACTER = 312,
881  CHARACTERS = 313,
882  CLASS = 314,
883  CLASSIFICATION = 315,
884  CLOSE = 316,
885  CODE = 317,
886  CODE_SET = 318,
887  COLLATING = 319,
888  COL = 320,
889  COLS = 321,
890  COLUMN = 322,
891  COLUMNS = 323,
892  COMMA = 324,
893  COMMAND_LINE = 325,
894  COMMA_DELIM = 326,
895  COMMIT = 327,
896  COMMON = 328,
897  COMP = 329,
898  COMPUTE = 330,
899  COMP_1 = 331,
900  COMP_2 = 332,
901  COMP_3 = 333,
902  COMP_4 = 334,
903  COMP_5 = 335,
904  COMP_6 = 336,
905  COMP_X = 337,
906  CONCATENATE_FUNC = 338,
907  CONDITION = 339,
908  CONFIGURATION = 340,
909  CONSTANT = 341,
910  CONTAINS = 342,
911  CONTENT = 343,
912  CONTINUE = 344,
913  CONTROL = 345,
914  CONTROLS = 346,
915  CONVERSION = 347,
916  CONVERTING = 348,
917  COPY = 349,
918  CORRESPONDING = 350,
919  COUNT = 351,
920  CRT = 352,
921  CRT_UNDER = 353,
922  CURRENCY = 354,
923  CURRENT_DATE_FUNC = 355,
924  CURSOR = 356,
925  CYCLE = 357,
926  DATA = 358,
927  DATE = 359,
928  DAY = 360,
929  DAY_OF_WEEK = 361,
930  DE = 362,
931  DEBUGGING = 363,
932  DECIMAL_POINT = 364,
933  DECLARATIVES = 365,
934  DEFAULT = 366,
935  DELETE = 367,
936  DELIMITED = 368,
937  DELIMITER = 369,
938  DEPENDING = 370,
939  DESCENDING = 371,
940  DETAIL = 372,
941  DISC = 373,
942  DISK = 374,
943  DISPLAY = 375,
944  DISPLAY_OF_FUNC = 376,
945  DIVIDE = 377,
946  DIVISION = 378,
947  DOWN = 379,
948  DUPLICATES = 380,
949  DYNAMIC = 381,
950  EBCDIC = 382,
951  EC = 383,
952  ELSE = 384,
953  END = 385,
954  END_ACCEPT = 386,
955  END_ADD = 387,
956  END_CALL = 388,
957  END_COMPUTE = 389,
958  END_DELETE = 390,
959  END_DISPLAY = 391,
960  END_DIVIDE = 392,
961  END_EVALUATE = 393,
962  END_FUNCTION = 394,
963  END_IF = 395,
964  END_MULTIPLY = 396,
965  END_PERFORM = 397,
966  END_PROGRAM = 398,
967  END_READ = 399,
968  END_RETURN = 400,
969  END_REWRITE = 401,
970  END_SEARCH = 402,
971  END_START = 403,
972  END_STRING = 404,
973  END_SUBTRACT = 405,
974  END_UNSTRING = 406,
975  END_WRITE = 407,
976  ENTRY = 408,
977  ENVIRONMENT = 409,
978  ENVIRONMENT_NAME = 410,
979  ENVIRONMENT_VALUE = 411,
980  EOL = 412,
981  EOP = 413,
982  EOS = 414,
983  EQUAL = 415,
984  ERASE = 416,
985  ERROR = 417,
986  ESCAPE = 418,
987  EVALUATE = 419,
988  EVENT_STATUS = 420,
989  EXCEPTION = 421,
990  EXCEPTION_CONDITION = 422,
991  EXCLUSIVE = 423,
992  EXIT = 424,
993  EXPONENTIATION = 425,
994  EXTEND = 426,
995  EXTERNAL = 427,
996  FD = 428,
997  FILE_CONTROL = 429,
998  FILE_ID = 430,
999  FILLER = 431,
1000  FINAL = 432,
1001  FIRST = 433,
1002  FLOAT_BINARY_128 = 434,
1003  FLOAT_BINARY_32 = 435,
1004  FLOAT_BINARY_64 = 436,
1005  FLOAT_DECIMAL_16 = 437,
1006  FLOAT_DECIMAL_34 = 438,
1007  FLOAT_DECIMAL_7 = 439,
1008  FLOAT_EXTENDED = 440,
1009  FLOAT_LONG = 441,
1010  FLOAT_SHORT = 442,
1011  FOOTING = 443,
1012  FOR = 444,
1013  FOREGROUND_COLOR = 445,
1014  FOREVER = 446,
1015  FORMATTED_DATE_FUNC = 447,
1017  FORMATTED_TIME_FUNC = 449,
1018  FREE = 450,
1019  FROM = 451,
1020  FROM_CRT = 452,
1021  FULL = 453,
1022  FUNCTION = 454,
1023  FUNCTION_ID = 455,
1024  FUNCTION_NAME = 456,
1025  GENERATE = 457,
1026  GIVING = 458,
1027  GLOBAL = 459,
1028  GO = 460,
1029  GOBACK = 461,
1030  GREATER = 462,
1031  GREATER_OR_EQUAL = 463,
1032  GROUP = 464,
1033  HEADING = 465,
1034  HIGHLIGHT = 466,
1035  HIGH_VALUE = 467,
1036  ID = 468,
1037  IDENTIFICATION = 469,
1038  IF = 470,
1039  IGNORE = 471,
1040  IGNORING = 472,
1041  IN = 473,
1042  INDEX = 474,
1043  INDEXED = 475,
1044  INDICATE = 476,
1045  INITIALIZE = 477,
1046  INITIALIZED = 478,
1047  INITIATE = 479,
1048  INPUT = 480,
1049  INPUT_OUTPUT = 481,
1050  INSPECT = 482,
1051  INTO = 483,
1052  INTRINSIC = 484,
1053  INVALID = 485,
1054  INVALID_KEY = 486,
1055  IS = 487,
1056  I_O = 488,
1057  I_O_CONTROL = 489,
1058  JUSTIFIED = 490,
1059  KEPT = 491,
1060  KEY = 492,
1061  KEYBOARD = 493,
1062  LABEL = 494,
1063  LAST = 495,
1064  LEADING = 496,
1065  LEFT = 497,
1066  LEFTLINE = 498,
1067  LENGTH = 499,
1068  LENGTH_OF = 500,
1069  LESS = 501,
1070  LESS_OR_EQUAL = 502,
1071  LIMIT = 503,
1072  LIMITS = 504,
1073  LINAGE = 505,
1074  LINAGE_COUNTER = 506,
1075  LINE = 507,
1076  LINE_COUNTER = 508,
1077  LINES = 509,
1078  LINKAGE = 510,
1079  LITERAL = 511,
1080  LOCALE = 512,
1081  LOCALE_DATE_FUNC = 513,
1082  LOCALE_TIME_FUNC = 514,
1083  LOCALE_TIME_FROM_FUNC = 515,
1084  LOCAL_STORAGE = 516,
1085  LOCK = 517,
1086  LOWER = 518,
1087  LOWER_CASE_FUNC = 519,
1088  LOWLIGHT = 520,
1089  LOW_VALUE = 521,
1090  MANUAL = 522,
1091  MEMORY = 523,
1092  MERGE = 524,
1093  MINUS = 525,
1094  MNEMONIC_NAME = 526,
1095  MODE = 527,
1096  MOVE = 528,
1097  MULTIPLE = 529,
1098  MULTIPLY = 530,
1099  NAME = 531,
1100  NATIONAL = 532,
1101  NATIONAL_EDITED = 533,
1102  NATIONAL_OF_FUNC = 534,
1103  NATIVE = 535,
1104  NEAREST_AWAY_FROM_ZERO = 536,
1105  NEAREST_EVEN = 537,
1106  NEAREST_TOWARD_ZERO = 538,
1107  NEGATIVE = 539,
1108  NEXT = 540,
1109  NEXT_PAGE = 541,
1110  NO = 542,
1111  NO_ECHO = 543,
1112  NORMAL = 544,
1113  NOT = 545,
1114  NOT_END = 546,
1115  NOT_EOP = 547,
1116  NOT_EQUAL = 548,
1117  NOT_EXCEPTION = 549,
1118  NOT_INVALID_KEY = 550,
1119  NOT_OVERFLOW = 551,
1120  NOT_SIZE_ERROR = 552,
1121  NO_ADVANCING = 553,
1122  NUMBER = 554,
1123  NUMBERS = 555,
1124  NUMERIC = 556,
1125  NUMERIC_EDITED = 557,
1126  NUMVALC_FUNC = 558,
1127  OBJECT_COMPUTER = 559,
1128  OCCURS = 560,
1129  OF = 561,
1130  OFF = 562,
1131  OMITTED = 563,
1132  ON = 564,
1133  ONLY = 565,
1134  OPEN = 566,
1135  OPTIONAL = 567,
1136  OR = 568,
1137  ORDER = 569,
1138  ORGANIZATION = 570,
1139  OTHER = 571,
1140  OUTPUT = 572,
1141  OVERLINE = 573,
1142  PACKED_DECIMAL = 574,
1143  PADDING = 575,
1144  PAGE = 576,
1145  PAGE_COUNTER = 577,
1146  PARAGRAPH = 578,
1147  PERFORM = 579,
1148  PH = 580,
1149  PF = 581,
1150  PICTURE = 582,
1151  PICTURE_SYMBOL = 583,
1152  PLUS = 584,
1153  POINTER = 585,
1154  POSITION = 586,
1155  POSITIVE = 587,
1156  PRESENT = 588,
1157  PREVIOUS = 589,
1158  PRINTER = 590,
1159  PRINTING = 591,
1160  PROCEDURE = 592,
1161  PROCEDURES = 593,
1162  PROCEED = 594,
1163  PROGRAM = 595,
1164  PROGRAM_ID = 596,
1165  PROGRAM_NAME = 597,
1166  PROGRAM_POINTER = 598,
1167  PROHIBITED = 599,
1168  PROMPT = 600,
1169  QUOTE = 601,
1170  RANDOM = 602,
1171  RD = 603,
1172  READ = 604,
1173  READY_TRACE = 605,
1174  RECORD = 606,
1175  RECORDING = 607,
1176  RECORDS = 608,
1177  RECURSIVE = 609,
1178  REDEFINES = 610,
1179  REEL = 611,
1180  REFERENCE = 612,
1181  REFERENCES = 613,
1182  RELATIVE = 614,
1183  RELEASE = 615,
1184  REMAINDER = 616,
1185  REMOVAL = 617,
1186  RENAMES = 618,
1187  REPLACE = 619,
1188  REPLACING = 620,
1189  REPORT = 621,
1190  REPORTING = 622,
1191  REPORTS = 623,
1192  REPOSITORY = 624,
1193  REPO_FUNCTION = 625,
1194  REQUIRED = 626,
1195  RESERVE = 627,
1196  RESET = 628,
1197  RESET_TRACE = 629,
1198  RETURN = 630,
1199  RETURNING = 631,
1200  REVERSE_FUNC = 632,
1201  REVERSE_VIDEO = 633,
1202  REVERSED = 634,
1203  REWIND = 635,
1204  REWRITE = 636,
1205  RF = 637,
1206  RH = 638,
1207  RIGHT = 639,
1208  ROLLBACK = 640,
1209  ROUNDED = 641,
1210  RUN = 642,
1211  SAME = 643,
1212  SCREEN = 644,
1213  SCREEN_CONTROL = 645,
1214  SCROLL = 646,
1215  SD = 647,
1216  SEARCH = 648,
1217  SECTION = 649,
1218  SECURE = 650,
1219  SEGMENT_LIMIT = 651,
1220  SELECT = 652,
1221  SEMI_COLON = 653,
1222  SENTENCE = 654,
1223  SEPARATE = 655,
1224  SEQUENCE = 656,
1225  SEQUENTIAL = 657,
1226  SET = 658,
1227  SHARING = 659,
1228  SIGN = 660,
1229  SIGNED = 661,
1230  SIGNED_INT = 662,
1231  SIGNED_LONG = 663,
1232  SIGNED_SHORT = 664,
1233  SIZE = 665,
1234  SIZE_ERROR = 666,
1235  SORT = 667,
1236  SORT_MERGE = 668,
1237  SOURCE = 669,
1238  SOURCE_COMPUTER = 670,
1239  SPACE = 671,
1240  SPECIAL_NAMES = 672,
1241  STANDARD = 673,
1242  STANDARD_1 = 674,
1243  STANDARD_2 = 675,
1244  START = 676,
1245  STATIC = 677,
1246  STATUS = 678,
1247  STDCALL = 679,
1248  STEP = 680,
1249  STOP = 681,
1250  STRING = 682,
1251  SUBSTITUTE_FUNC = 683,
1252  SUBSTITUTE_CASE_FUNC = 684,
1253  SUBTRACT = 685,
1254  SUM = 686,
1255  SUPPRESS = 687,
1256  SYMBOLIC = 688,
1257  SYNCHRONIZED = 689,
1258  SYSTEM_DEFAULT = 690,
1259  TAB = 691,
1260  TALLYING = 692,
1261  TAPE = 693,
1262  TERMINATE = 694,
1263  TEST = 695,
1264  THAN = 696,
1265  THEN = 697,
1266  THRU = 698,
1267  TIME = 699,
1268  TIMEOUT = 700,
1269  TIMES = 701,
1270  TO = 702,
1271  TOK_AMPER = 703,
1272  TOK_CLOSE_PAREN = 704,
1273  TOK_COLON = 705,
1274  TOK_DIV = 706,
1275  TOK_DOT = 707,
1276  TOK_EQUAL = 708,
1277  TOK_FALSE = 709,
1278  TOK_FILE = 710,
1279  TOK_GREATER = 711,
1280  TOK_INITIAL = 712,
1281  TOK_LESS = 713,
1282  TOK_MINUS = 714,
1283  TOK_MUL = 715,
1284  TOK_NULL = 716,
1285  TOK_OVERFLOW = 717,
1286  TOK_OPEN_PAREN = 718,
1287  TOK_PLUS = 719,
1288  TOK_TRUE = 720,
1289  TOP = 721,
1290  TOWARD_GREATER = 722,
1291  TOWARD_LESSER = 723,
1292  TRAILING = 724,
1293  TRANSFORM = 725,
1294  TRIM_FUNC = 726,
1295  TRUNCATION = 727,
1296  TYPE = 728,
1297  UNDERLINE = 729,
1298  UNIT = 730,
1299  UNLOCK = 731,
1300  UNSIGNED = 732,
1301  UNSIGNED_INT = 733,
1302  UNSIGNED_LONG = 734,
1303  UNSIGNED_SHORT = 735,
1304  UNSTRING = 736,
1305  UNTIL = 737,
1306  UP = 738,
1307  UPDATE = 739,
1308  UPON = 740,
1309  UPON_ARGUMENT_NUMBER = 741,
1310  UPON_COMMAND_LINE = 742,
1311  UPON_ENVIRONMENT_NAME = 743,
1312  UPON_ENVIRONMENT_VALUE = 744,
1313  UPPER = 745,
1314  UPPER_CASE_FUNC = 746,
1315  USAGE = 747,
1316  USE = 748,
1317  USER = 749,
1318  USER_DEFAULT = 750,
1319  USER_FUNCTION_NAME = 751,
1320  USER_REPO_FUNCTION = 752,
1321  USING = 753,
1322  VALUE = 754,
1323  VARYING = 755,
1324  WAIT = 756,
1325  WHEN = 757,
1326  WHEN_COMPILED_FUNC = 758,
1327  WITH = 759,
1328  WORD = 760,
1329  WORDS = 761,
1330  WORKING_STORAGE = 762,
1331  WRITE = 763,
1332  YYYYDDD = 764,
1333  YYYYMMDD = 765,
1334  ZERO = 766,
1335  SHIFT_PREFER = 767
1336  };

Function Documentation

static void begin_statement ( const char *  name,
const unsigned int  term 
)
static
static void bit_set_attr ( const cb_tree  onoff,
const int  attrval 
)
static

References cb_int1, setattr_val_off, and setattr_val_on.

640 {
641  if (onoff == cb_int1) {
642  setattr_val_on |= attrval;
643  } else {
644  setattr_val_off |= attrval;
645  }
646 }
static void build_nested_special ( const int  ndepth)
static

References cb_build_constant(), cb_build_reference(), CB_CHAIN, cb_define(), cb_name(), CB_PURPOSE, CB_SYSTEM_NAME_P, CB_VALUE, and cb_program::mnemonic_spec_list.

514 {
515  cb_tree x;
516  cb_tree y;
517 
518  if (!ndepth) {
519  return;
520  }
521 
522  /* Inherit special name mnemonics from parent */
523  for (x = current_program->mnemonic_spec_list; x; x = CB_CHAIN (x)) {
525  if (CB_SYSTEM_NAME_P (CB_VALUE(x))) {
526  cb_define (y, CB_VALUE(x));
527  } else {
528  cb_build_constant (y, CB_VALUE(x));
529  }
530  }
531 }
static void check_attribs ( cb_tree  fgc,
cb_tree  bgc,
cb_tree  scroll,
cb_tree  timeout,
cb_tree  prompt,
int  attrib 
)
static

References cb_statement::attr_ptr, cb_attr_struct::bgc, cobc_parse_malloc(), cb_attr_struct::dispattrs, cb_attr_struct::fgc, cb_attr_struct::prompt, cb_attr_struct::scroll, and cb_attr_struct::timeout.

651 {
652  /* Attach attribute to current_statement */
653  if (!current_statement->attr_ptr) {
655  cobc_parse_malloc (sizeof(struct cb_attr_struct));
656  }
657  if (fgc) {
659  }
660  if (bgc) {
662  }
663  if (scroll) {
664  current_statement->attr_ptr->scroll = scroll;
665  }
666  if (timeout) {
667  current_statement->attr_ptr->timeout = timeout;
668  }
669  if (prompt) {
670  current_statement->attr_ptr->prompt = prompt;
671  }
673 }
static void check_comp_repeated ( const char *  clause,
const unsigned int  bitval 
)
static

References _, cb_error(), cb_warning(), and check_comp_duplicate.

612 {
613  if (check_comp_duplicate & bitval) {
614  if (cb_relaxed_syntax_check) {
615  cb_warning (_("Duplicate %s clause"), clause);
616  } else {
617  cb_error (_("Duplicate %s clause"), clause);
618  }
619  } else {
620  check_comp_duplicate |= bitval;
621  }
622 }
static void check_headers_present ( const unsigned int  lev1,
const unsigned int  lev2,
const unsigned int  lev3,
const unsigned int  lev4 
)
static

References check_relaxed_syntax(), and header_check.

760 {
761  /* Lev1 is always present and checked */
762  /* Lev2/3/4, if non-zero (forced) may be present */
763  if (!(header_check & lev1)) {
764  header_check |= lev1;
765  check_relaxed_syntax (lev1);
766  }
767  if (lev2) {
768  if (!(header_check & lev2)) {
769  header_check |= lev2;
770  check_relaxed_syntax (lev2);
771  }
772  }
773  if (lev3) {
774  if (!(header_check & lev3)) {
775  header_check |= lev3;
776  check_relaxed_syntax (lev3);
777  }
778  }
779  if (lev4) {
780  if (!(header_check & lev4)) {
781  header_check |= lev4;
782  check_relaxed_syntax (lev4);
783  }
784  }
785 }
static void check_pic_repeated ( const char *  clause,
const unsigned int  bitval 
)
static

References _, cb_error(), cb_warning(), and check_pic_duplicate.

Referenced by check_set_usage().

598 {
599  if (check_pic_duplicate & bitval) {
600  if (cb_relaxed_syntax_check) {
601  cb_warning (_("Duplicate %s clause"), clause);
602  } else {
603  cb_error (_("Duplicate %s clause"), clause);
604  }
605  } else {
606  check_pic_duplicate |= bitval;
607  }
608 }
static void check_relaxed_syntax ( const unsigned int  lev)
static

References _, cb_error(), cb_warning(), COBC_HD_COMMUNICATIONS_SECTION, COBC_HD_CONFIGURATION_SECTION, COBC_HD_DATA_DIVISION, COBC_HD_ENVIRONMENT_DIVISION, COBC_HD_FILE_CONTROL, COBC_HD_FILE_SECTION, COBC_HD_I_O_CONTROL, COBC_HD_INPUT_OUTPUT_SECTION, COBC_HD_LINKAGE_SECTION, COBC_HD_LOCAL_STORAGE_SECTION, COBC_HD_PROCEDURE_DIVISION, COBC_HD_PROGRAM_ID, COBC_HD_REPORT_SECTION, COBC_HD_SCREEN_SECTION, COBC_HD_SPECIAL_NAMES, and COBC_HD_WORKING_STORAGE_SECTION.

Referenced by check_headers_present().

694 {
695  const char *s;
696 
697  switch (lev) {
699  s = "ENVIRONMENT DIVISION";
700  break;
702  s = "CONFIGURATION SECTION";
703  break;
705  s = "SPECIAL-NAMES";
706  break;
708  s = "INPUT-OUTPUT SECTION";
709  break;
711  s = "FILE-CONTROL";
712  break;
713  case COBC_HD_I_O_CONTROL:
714  s = "I-O-CONTROL";
715  break;
717  s = "DATA DIVISION";
718  break;
720  s = "FILE SECTION";
721  break;
723  s = "WORKING-STORAGE SECTION";
724  break;
726  s = "LOCAL-STORAGE SECTION";
727  break;
729  s = "LINKAGE SECTION";
730  break;
732  s = "COMMUNICATIONS SECTION";
733  break;
735  s = "REPORT SECTION";
736  break;
738  s = "SCREEN SECTION";
739  break;
741  s = "PROCEDURE DIVISION";
742  break;
743  case COBC_HD_PROGRAM_ID:
744  s = "PROGRAM-ID";
745  break;
746  default:
747  s = "Unknown";
748  break;
749  }
750  if (cb_relaxed_syntax_check) {
751  cb_warning (_("%s header missing - assumed"), s);
752  } else {
753  cb_error (_("%s header missing"), s);
754  }
755 }
static void check_repeated ( const char *  clause,
const unsigned int  bitval 
)
static

References _, cb_error(), cb_warning(), and check_duplicate.

584 {
585  if (check_duplicate & bitval) {
586  if (cb_relaxed_syntax_check) {
587  cb_warning (_("Duplicate %s clause"), clause);
588  } else {
589  cb_error (_("Duplicate %s clause"), clause);
590  }
591  } else {
592  check_duplicate |= bitval;
593  }
594 }
static void check_screen_attr ( const char *  clause,
const int  bitval 
)
static

References _, cb_error(), cb_warning(), and cb_field::screen_flag.

626 {
627  if (current_field->screen_flag & bitval) {
628  if (cb_relaxed_syntax_check) {
629  cb_warning (_("Duplicate %s clause"), clause);
630  } else {
631  cb_error (_("Duplicate %s clause"), clause);
632  }
633  } else {
634  current_field->screen_flag |= bitval;
635  }
636 }
static void check_set_usage ( const enum cb_usage  usage)
static

References check_pic_repeated(), SYN_CLAUSE_5, and cb_field::usage.

687 {
688  check_pic_repeated ("USAGE", SYN_CLAUSE_5);
690 }
static void clear_initial_values ( void  )
static

References CB_STORAGE_WORKING, check_comp_duplicate, check_duplicate, check_pic_duplicate, check_unreached, cobc_force_literal, cobc_free(), cobc_glob_line, cobc_in_procedure, cobc_in_repository, current_linage, current_storage, env_div_seen, eval_inc, eval_inc2, eval_level, header_check, in_debugging, in_declaratives, inspect_keyword, needs_debug_item, needs_field_debug, next_label_id, non_const_word, NULL, report_count, samearea, save_debug, setattr_val_off, setattr_val_on, skip_statements, start_debug, term_array, and use_global_ind.

535 {
539  qualifier = NULL;
540  in_declaratives = 0;
541  in_debugging = 0;
542  use_global_ind = 0;
543  check_duplicate = 0;
546  skip_statements = 0;
547  start_debug = 0;
548  save_debug = 0;
549  needs_field_debug = 0;
550  needs_debug_item = 0;
551  env_div_seen = 0;
552  header_check = 0;
553  next_label_id = 0;
554  current_linage = 0;
555  setattr_val_on = 0;
556  setattr_val_off = 0;
557  report_count = 0;
559  eval_level = 0;
560  eval_inc = 0;
561  eval_inc2 = 0;
562  inspect_keyword = 0;
563  check_unreached = 0;
564  cobc_in_procedure = 0;
565  cobc_in_repository = 0;
566  cobc_force_literal = 0;
567  non_const_word = 0;
568  samearea = 1;
569  memset ((void *)eval_check, 0, sizeof(eval_check));
570  memset ((void *)term_array, 0, sizeof(term_array));
571  linage_file = NULL;
572  current_file = NULL;
576  if (cobc_glob_line) {
579  }
580 }
static void emit_entry ( const char *  name,
const int  encode,
cb_tree  using_list 
)
static

References _, cb_build_debug(), cb_build_label(), CB_BUILD_PAIR, cb_build_reference(), CB_CHAIN, cb_debug_contents, cb_encode_program_id(), cb_error_node, cb_error_x(), CB_FIELD, CB_FUNCTION_TYPE, CB_LABEL, cb_list_append(), cb_name(), CB_PURPOSE, cb_ref(), cb_source_file, cb_source_line, CB_STORAGE_LINKAGE, CB_STORAGE_WORKING, CB_TREE, CB_VALID_TREE, CB_VALUE, cb_warning(), COB_MINI_BUFF, COB_MINI_MAX, emit_statement, cb_program::entry_list, cb_field::flag_chained, cb_program::flag_chained, cb_program::flag_debugging, cb_field::flag_external, cb_field::flag_is_pdiv_parm, cb_field::flag_item_based, cb_field::level, cb_program::linkage_storage, cb_field::name, NULL, cb_program::orig_program_id, cb_field::param_num, cb_program::prog_type, cb_field::redefines, cb_program::returning, cb_field::sister, cb_tree_common::source_file, cb_tree_common::source_line, and cb_field::storage.

304 {
305  cb_tree l;
306  cb_tree label;
307  cb_tree x;
308  struct cb_field *f;
309  int parmnum;
310  char buff[COB_MINI_BUFF];
311 
312  snprintf (buff, (size_t)COB_MINI_MAX, "E$%s", name);
313  label = cb_build_label (cb_build_reference (buff), NULL);
314  if (encode) {
315  CB_LABEL (label)->name = cb_encode_program_id (name);
316  CB_LABEL (label)->orig_name = name;
317  } else {
318  CB_LABEL (label)->name = name;
319  CB_LABEL (label)->orig_name = current_program->orig_program_id;
320  }
321  CB_LABEL (label)->flag_begin = 1;
322  CB_LABEL (label)->flag_entry = 1;
323  label->source_file = cb_source_file;
324  label->source_line = cb_source_line;
325  emit_statement (label);
326 
329  "START PROGRAM", NULL));
330  }
331 
332  parmnum = 1;
333  for (l = using_list; l; l = CB_CHAIN (l)) {
334  x = CB_VALUE (l);
335  if (CB_VALID_TREE (x) && cb_ref (x) != cb_error_node) {
336  f = CB_FIELD (cb_ref (x));
337  if (f->level != 01 && f->level != 77) {
338  cb_error_x (x, _("'%s' not level 01 or 77"), cb_name (x));
339  }
341  if (f->storage != CB_STORAGE_LINKAGE) {
342  cb_error_x (x, _("'%s' is not in LINKAGE SECTION"), cb_name (x));
343  }
344  if (f->flag_item_based || f->flag_external) {
345  cb_error_x (x, _("'%s' can not be BASED/EXTERNAL"), cb_name (x));
346  }
347  f->flag_is_pdiv_parm = 1;
348  } else {
349  if (f->storage != CB_STORAGE_WORKING) {
350  cb_error_x (x, _("'%s' is not in WORKING-STORAGE SECTION"), cb_name (x));
351  }
352  f->flag_chained = 1;
353  f->param_num = parmnum;
354  parmnum++;
355  }
356  if (f->redefines) {
357  cb_error_x (x, _("'%s' REDEFINES field not allowed here"), cb_name (x));
358  }
359  }
360  }
361 
362  /* Check dangling LINKAGE items */
363  if (cb_warn_linkage) {
364  for (f = current_program->linkage_storage; f; f = f->sister) {
365  if (current_program->returning) {
367  if (f == CB_FIELD (cb_ref (current_program->returning))) {
368  continue;
369  }
370  }
371  }
372  for (l = using_list; l; l = CB_CHAIN (l)) {
373  x = CB_VALUE (l);
374  if (CB_VALID_TREE (x) && cb_ref (x) != cb_error_node) {
375  if (f == CB_FIELD (cb_ref (x))) {
376  break;
377  }
378  }
379  }
380  if (!l && !f->redefines) {
381  cb_warning (_("LINKAGE item '%s' is not a PROCEDURE USING parameter"), f->name);
382  }
383  }
384  }
385 
386  /* Check returning item against using items when FUNCTION */
387  if (current_program->prog_type == CB_FUNCTION_TYPE) {
388  for (l = using_list; l; l = CB_CHAIN (l)) {
389  x = CB_VALUE (l);
390  if (CB_VALID_TREE (x) && current_program->returning &&
392  cb_error_x (x, _("'%s' USING item duplicates RETURNING item"), cb_name (x));
393  }
394  }
395  }
396 
397  for (l = current_program->entry_list; l; l = CB_CHAIN (l)) {
398  if (strcmp ((const char *)name,
399  (const char *)(CB_LABEL(CB_PURPOSE(l))->name)) == 0) {
400  cb_error_x (CB_TREE (current_statement),
401  _("ENTRY '%s' duplicated"), name);
402  }
403  }
404 
407  CB_BUILD_PAIR (label, using_list));
408 }
static size_t increment_depth ( void  )
static

References _, cb_error(), depth, and PROG_DEPTH.

412 {
413  if (++depth >= PROG_DEPTH) {
414  cb_error (_("Maximum nested program depth exceeded (%d)"),
415  PROG_DEPTH);
416  return 1;
417  }
418  return 0;
419 }
static int literal_value ( cb_tree  x)
static

References CB_CLASS_NUMERIC, cb_get_int(), cb_high, CB_LITERAL, cb_low, cb_null, cb_quote, cb_space, CB_TREE_CLASS, and cb_zero.

465 {
466  if (x == cb_space) {
467  return ' ';
468  } else if (x == cb_zero) {
469  return '0';
470  } else if (x == cb_quote) {
471  return cb_flag_apostrophe ? '\'' : '"';
472  } else if (x == cb_null) {
473  return 0;
474  } else if (x == cb_low) {
475  return 0;
476  } else if (x == cb_high) {
477  return 255;
478  } else if (CB_TREE_CLASS (x) == CB_CLASS_NUMERIC) {
479  return cb_get_int (x);
480  } else {
481  return CB_LITERAL (x)->data[0];
482  }
483 }
static void remove_attrib ( int  attrib)
static

References cb_statement::attr_ptr, and cb_attr_struct::dispattrs.

677 {
678  /* Remove attribute from current_statement */
679  if (!current_statement->attr_ptr) {
680  return;
681  }
683 }
static void setup_use_file ( struct cb_file fileptr)
static

References _, cb_error(), cb_list_add(), CB_TREE, COB_ORG_SORT, cobc_parse_malloc(), current_program, current_section, cb_file::flag_global, cb_program::global_file_list, cb_file::handler, cb_file::handler_prog, cb_program::local_file_list, cb_file::organization, and use_global_ind.

487 {
488  struct cb_file *newptr;
489 
490  if (fileptr->organization == COB_ORG_SORT) {
491  cb_error (_("USE statement invalid for SORT file"));
492  }
493  if (fileptr->flag_global) {
494  newptr = cobc_parse_malloc (sizeof(struct cb_file));
495  *newptr = *fileptr;
496  newptr->handler = current_section;
497  newptr->handler_prog = current_program;
498  if (!use_global_ind) {
501  CB_TREE (newptr));
502  } else {
505  CB_TREE (newptr));
506  }
507  } else {
508  fileptr->handler = current_section;
509  }
510 }
static void terminator_clear ( cb_tree  stmt,
const unsigned int  termid 
)
static

References check_unreached, cobc_parse_free(), and term_array.

454 {
455  check_unreached = 0;
456  if (term_array[termid]) {
457  term_array[termid]--;
458  }
459  /* Free tree assocated with terminator */
460  cobc_parse_free (stmt);
461 }
static void terminator_error ( cb_tree  stmt,
const unsigned int  termid,
const char *  name 
)
static

References _, cb_error_x(), CB_TREE, check_unreached, cobc_parse_free(), and term_array.

440 {
441  check_unreached = 0;
442  cb_error_x (CB_TREE (current_statement),
443  _("%s statement not terminated by END-%s"),
444  name, name);
445  if (term_array[termid]) {
446  term_array[termid]--;
447  }
448  /* Free tree assocated with terminator */
449  cobc_parse_free (stmt);
450 }
static void terminator_warning ( cb_tree  stmt,
const unsigned int  termid,
const char *  name 
)
static

References _, cb_warning_x(), check_unreached, cobc_parse_free(), and term_array.

424 {
425  check_unreached = 0;
426  if (term_array[termid]) {
427  term_array[termid]--;
428  if (cb_warn_terminator) {
429  cb_warning_x (stmt,
430  _("%s statement not terminated by END-%s"),
431  name, name);
432  }
433  }
434  /* Free tree assocated with terminator */
435  cobc_parse_free (stmt);
436 }
static void yydestruct ( char *  yymsg,
int  yytype,
YYSTYPE yyvaluep 
) const
static

References YY_SYMBOL_PRINT, and YYUSE.

6536 {
6537  YYUSE (yyvaluep);
6538 
6539  if (!yymsg)
6540  yymsg = "Deleting";
6541  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
6542 
6543  switch (yytype)
6544  {
6545 
6546  default:
6547  break;
6548  }
6549 }
int yyparse ( void  )
static char* yystpcpy ( char *  yydest,
const char *  yysrc 
)
static

Referenced by yytnamerr().

6323 {
6324  char *yyd = yydest;
6325  const char *yys = yysrc;
6326 
6327  while ((*yyd++ = *yys++) != '\0')
6328  continue;
6329 
6330  return yyd - 1;
6331 }
static YYSIZE_T yystrlen ( char *  yystr) const
static

References YYSIZE_T.

Referenced by yysyntax_error(), and yytnamerr().

6298 {
6299  YYSIZE_T yylen;
6300  for (yylen = 0; yystr[yylen]; yylen++)
6301  continue;
6302  return yylen;
6303 }
static int yysyntax_error ( YYSIZE_T yymsg_alloc,
char **  yymsg,
yytype_int16 yyssp,
int  yytoken 
)
static

References YY_, YY_NULL, YYCASE_, YYEMPTY, YYLAST, YYNTOKENS, yypact_value_is_default, YYSIZE_T, YYSTACK_ALLOC_MAXIMUM, yystrlen(), yytable_value_is_error, YYTERROR, and yytnamerr().

6394 {
6395  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
6396  YYSIZE_T yysize = yysize0;
6397  YYSIZE_T yysize1;
6398  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6399  /* Internationalized format string. */
6400  const char *yyformat = YY_NULL;
6401  /* Arguments of yyformat. */
6402  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6403  /* Number of reported tokens (one for the "unexpected", one per
6404  "expected"). */
6405  int yycount = 0;
6406 
6407  /* There are many possibilities here to consider:
6408  - Assume YYFAIL is not used. It's too flawed to consider. See
6409  <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
6410  for details. YYERROR is fine as it does not invoke this
6411  function.
6412  - If this state is a consistent state with a default action, then
6413  the only way this function was invoked is if the default action
6414  is an error action. In that case, don't check for expected
6415  tokens because there are none.
6416  - The only way there can be no lookahead present (in yychar) is if
6417  this state is a consistent state with a default action. Thus,
6418  detecting the absence of a lookahead is sufficient to determine
6419  that there is no unexpected or expected token to report. In that
6420  case, just report a simple "syntax error".
6421  - Don't assume there isn't a lookahead just because this state is a
6422  consistent state with a default action. There might have been a
6423  previous inconsistent state, consistent state with a non-default
6424  action, or user semantic action that manipulated yychar.
6425  - Of course, the expected token list depends on states to have
6426  correct lookahead information, and it depends on the parser not
6427  to perform extra reductions after fetching a lookahead from the
6428  scanner and before detecting a syntax error. Thus, state merging
6429  (from LALR or IELR) and default reductions corrupt the expected
6430  token list. However, the list is correct for canonical LR with
6431  one exception: it will still contain any token that will not be
6432  accepted due to an error action in a later state.
6433  */
6434  if (yytoken != YYEMPTY)
6435  {
6436  int yyn = yypact[*yyssp];
6437  yyarg[yycount++] = yytname[yytoken];
6438  if (!yypact_value_is_default (yyn))
6439  {
6440  /* Start YYX at -YYN if negative to avoid negative indexes in
6441  YYCHECK. In other words, skip the first -YYN actions for
6442  this state because they are default actions. */
6443  int yyxbegin = yyn < 0 ? -yyn : 0;
6444  /* Stay within bounds of both yycheck and yytname. */
6445  int yychecklim = YYLAST - yyn + 1;
6446  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6447  int yyx;
6448 
6449  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6450  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6451  && !yytable_value_is_error (yytable[yyx + yyn]))
6452  {
6453  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
6454  {
6455  yycount = 1;
6456  yysize = yysize0;
6457  break;
6458  }
6459  yyarg[yycount++] = yytname[yyx];
6460  yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
6461  if (! (yysize <= yysize1
6462  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6463  return 2;
6464  yysize = yysize1;
6465  }
6466  }
6467  }
6468 
6469  switch (yycount)
6470  {
6471 # define YYCASE_(N, S) \
6472  case N: \
6473  yyformat = S; \
6474  break
6475  YYCASE_(0, YY_("syntax error"));
6476  YYCASE_(1, YY_("syntax error, unexpected %s"));
6477  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6478  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6479  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6480  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6481 # undef YYCASE_
6482  }
6483 
6484  yysize1 = yysize + yystrlen (yyformat);
6485  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6486  return 2;
6487  yysize = yysize1;
6488 
6489  if (*yymsg_alloc < yysize)
6490  {
6491  *yymsg_alloc = 2 * yysize;
6492  if (! (yysize <= *yymsg_alloc
6493  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
6494  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
6495  return 1;
6496  }
6497 
6498  /* Avoid sprintf, as that infringes on the user's name space.
6499  Don't have undefined behavior even if the translation
6500  produced a string with the wrong number of "%s"s. */
6501  {
6502  char *yyp = *yymsg;
6503  int yyi = 0;
6504  while ((*yyp = *yyformat) != '\0')
6505  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
6506  {
6507  yyp += yytnamerr (yyp, yyarg[yyi++]);
6508  yyformat += 2;
6509  }
6510  else
6511  {
6512  yyp++;
6513  yyformat++;
6514  }
6515  }
6516  return 0;
6517 }
static YYSIZE_T yytnamerr ( char *  yyres,
const char *  yystr 
)
static

References YYSIZE_T, yystpcpy(), and yystrlen().

Referenced by yysyntax_error().

6345 {
6346  if (*yystr == '"')
6347  {
6348  YYSIZE_T yyn = 0;
6349  char const *yyp = yystr;
6350 
6351  for (;;)
6352  switch (*++yyp)
6353  {
6354  case '\'':
6355  case ',':
6356  goto do_not_strip_quotes;
6357 
6358  case '\\':
6359  if (*++yyp != '\\')
6360  goto do_not_strip_quotes;
6361  /* Fall through. */
6362  default:
6363  if (yyres)
6364  yyres[yyn] = *yyp;
6365  yyn++;
6366  break;
6367 
6368  case '"':
6369  if (yyres)
6370  yyres[yyn] = '\0';
6371  return yyn;
6372  }
6373  do_not_strip_quotes: ;
6374  }
6375 
6376  if (! yyres)
6377  return yystrlen (yystr);
6378 
6379  return yystpcpy (yyres, yystr) - yyres;
6380 }

Variable Documentation

int call_mode
static
unsigned int check_comp_duplicate
static
unsigned int check_duplicate
static
unsigned int check_pic_duplicate
static
unsigned int check_unreached
static
unsigned int cobc_cs_check = 0
unsigned int cobc_force_literal = 0
char* cobc_glob_line = NULL
unsigned int cobc_in_procedure = 0
unsigned int cobc_in_repository = 0
cb_tree cobc_printer_node = NULL
cb_tree current_expr
static
struct cb_field* current_field
static
struct cb_file* current_file
static
unsigned int current_linage
static

Referenced by clear_initial_values().

struct cb_label* current_paragraph = NULL
struct cb_program* current_program = NULL
struct cb_report* current_report
static
struct cb_label* current_section = NULL
struct cb_statement* current_statement = NULL
enum cb_storage current_storage
static

Referenced by clear_initial_values().

int depth
static

Referenced by increment_depth().

struct cb_field* description_field
static
unsigned int env_div_seen
static

Referenced by clear_initial_values().

cb_tree eval_check[EVAL_DEPTH][EVAL_DEPTH]
static
int eval_inc
static

Referenced by clear_initial_values().

int eval_inc2
static

Referenced by clear_initial_values().

int eval_level
static

Referenced by clear_initial_values().

int functions_are_all = 0
unsigned int header_check
static
unsigned int in_debugging
static
unsigned int in_declaratives
static

Referenced by clear_initial_values().

unsigned int inspect_keyword
static

Referenced by clear_initial_values().

struct cb_file* linage_file
static
unsigned int main_flag_set
static
struct cb_statement* main_statement
static
unsigned int needs_debug_item
static

Referenced by clear_initial_values().

unsigned int needs_field_debug
static

Referenced by clear_initial_values().

int next_label_id
static

Referenced by clear_initial_values().

cb_tree next_label_list
static
int non_const_word = 0

Referenced by clear_initial_values(), and while().

cb_tree perform_stack
static
unsigned int prog_end
static
cb_tree qualifier
static
unsigned int report_count
static

Referenced by clear_initial_values().

struct cb_report* report_instance
static
unsigned int samearea
static

Referenced by clear_initial_values().

unsigned int save_debug
static

Referenced by clear_initial_values().

cb_tree save_tree
static
int setattr_val_off
static
int setattr_val_on
static
int size_mode
static
unsigned int skip_statements
static

Referenced by clear_initial_values().

char* stack_progid[PROG_DEPTH]
static
unsigned int start_debug
static

Referenced by clear_initial_values().

cb_tree start_tree
static
unsigned int use_global_ind
static
int yychar
const yytype_int16 yycheck[]
static
const yytype_uint16 yydefact[]
static
const yytype_int16 yydefgoto[]
static
YYSTYPE yylval
int yynerrs
const yytype_int16 yypact[]
static
const yytype_int16 yypgoto[]
static
const yytype_uint16 yyr1[]
static
const yytype_uint8 yyr2[]
static
const yytype_uint16 yystos[]
static
const yytype_int16 yytable[]
static
const char* const yytname[]
static
const yytype_uint16 yytranslate[]
static